Merge branch 'master' into PBRisComing
This commit is contained in:
		
						commit
						f70151f2c7
					
				| @ -85,7 +85,9 @@ task copyPreCompiledLibs(type: Copy) { | |||||||
|     into outputDir |     into outputDir | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| if (rootProject.ndkExists && rootProject.buildNativeProjects) { | // ndkExists is a boolean from the build.gradle in the root project | ||||||
|  | // buildNativeProjects is a string set to "true" | ||||||
|  | if (ndkExists && buildNativeProjects == "true") { | ||||||
|     // build native libs and update stored pre-compiled libs to commit |     // build native libs and update stored pre-compiled libs to commit | ||||||
|     compileJava.dependsOn { updatePreCompiledLibs } |     compileJava.dependsOn { updatePreCompiledLibs } | ||||||
| } else { | } else { | ||||||
|  | |||||||
| @ -111,7 +111,9 @@ task copyPreCompiledOpenAlSoftLibs(type: Copy) { | |||||||
|     into outputDir |     into outputDir | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| if (rootProject.ndkExists && rootProject.buildNativeProjects) { | // ndkExists is a boolean from the build.gradle in the root project | ||||||
|  | // buildNativeProjects is a string set to "true" | ||||||
|  | if (ndkExists && buildNativeProjects == "true") { | ||||||
|     // build native libs and update stored pre-compiled libs to commit |     // build native libs and update stored pre-compiled libs to commit | ||||||
|     compileJava.dependsOn { updatePreCompiledOpenAlSoftLibs } |     compileJava.dependsOn { updatePreCompiledOpenAlSoftLibs } | ||||||
| } else { | } else { | ||||||
|  | |||||||
| @ -186,7 +186,9 @@ task copyPreCompiledBulletLibs(type: Copy) { | |||||||
|     into outputDir |     into outputDir | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| if (rootProject.ndkExists) { | // ndkExists is a boolean from the build.gradle in the root project | ||||||
|  | // buildNativeProjects is a string set to "true" | ||||||
|  | if (ndkExists && buildNativeProjects == "true") { | ||||||
|     // build native libs and update stored pre-compiled libs to commit |     // build native libs and update stored pre-compiled libs to commit | ||||||
|     compileJava.dependsOn { updatePreCompiledBulletLibs } |     compileJava.dependsOn { updatePreCompiledBulletLibs } | ||||||
| } else { | } else { | ||||||
|  | |||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -995,7 +995,7 @@ public class PhysicsSpace { | |||||||
|         return solverNumIterations; |         return solverNumIterations; | ||||||
|     } |     } | ||||||
|      |      | ||||||
|     private static native void setSolverNumIterations(long physicsSpaceId, int numIterations); |     private native void setSolverNumIterations(long physicsSpaceId, int numIterations); | ||||||
|      |      | ||||||
|     public static native void initNativePhysics(); |     public static native void initNativePhysics(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -633,9 +633,7 @@ public class J3MLoader implements AssetLoader { | |||||||
|             // Not sure if this is needed anymore, since shader caching |             // Not sure if this is needed anymore, since shader caching | ||||||
|             // is now done by TechniqueDef. |             // is now done by TechniqueDef. | ||||||
|             technique.setShaderFile(technique.hashCode() + "", technique.hashCode() + "", "GLSL100", "GLSL100"); |             technique.setShaderFile(technique.hashCode() + "", technique.hashCode() + "", "GLSL100", "GLSL100"); | ||||||
|         } |         }else if (shaderNames.containsKey(Shader.ShaderType.Vertex) && shaderNames.containsKey(Shader.ShaderType.Fragment)) { | ||||||
| 
 |  | ||||||
|         if (shaderNames.containsKey(Shader.ShaderType.Vertex) && shaderNames.containsKey(Shader.ShaderType.Fragment)) { |  | ||||||
|             technique.setShaderFile(shaderNames, shaderLanguages); |             technique.setShaderFile(shaderNames, shaderLanguages); | ||||||
|         } else { |         } else { | ||||||
|             technique = null; |             technique = null; | ||||||
|  | |||||||
| @ -0,0 +1,100 @@ | |||||||
|  | /* | ||||||
|  |  * Copyright (c) 2009-2016 jMonkeyEngine | ||||||
|  |  * All rights reserved. | ||||||
|  |  * | ||||||
|  |  * Redistribution and use in source and binary forms, with or without | ||||||
|  |  * modification, are permitted provided that the following conditions are | ||||||
|  |  * met: | ||||||
|  |  * | ||||||
|  |  * * Redistributions of source code must retain the above copyright | ||||||
|  |  *   notice, this list of conditions and the following disclaimer. | ||||||
|  |  * | ||||||
|  |  * * Redistributions in binary form must reproduce the above copyright | ||||||
|  |  *   notice, this list of conditions and the following disclaimer in the | ||||||
|  |  *   documentation and/or other materials provided with the distribution. | ||||||
|  |  * | ||||||
|  |  * * Neither the name of 'jMonkeyEngine' nor the names of its contributors | ||||||
|  |  *   may be used to endorse or promote products derived from this software | ||||||
|  |  *   without specific prior written permission. | ||||||
|  |  * | ||||||
|  |  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||||
|  |  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | ||||||
|  |  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||||||
|  |  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR | ||||||
|  |  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||||||
|  |  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | ||||||
|  |  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||||||
|  |  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||||||
|  |  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||||||
|  |  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||||||
|  |  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||||
|  |  */ | ||||||
|  | package com.jme3.material.plugins; | ||||||
|  | 
 | ||||||
|  | import com.jme3.asset.AssetManager; | ||||||
|  | import com.jme3.material.*; | ||||||
|  | import com.jme3.renderer.*; | ||||||
|  | import com.jme3.scene.Geometry; | ||||||
|  | import com.jme3.scene.shape.Box; | ||||||
|  | import com.jme3.shader.Shader; | ||||||
|  | import com.jme3.system.*; | ||||||
|  | import org.junit.Test; | ||||||
|  | import org.junit.runner.RunWith; | ||||||
|  | import org.mockito.runners.MockitoJUnitRunner; | ||||||
|  | 
 | ||||||
|  | import java.util.*; | ||||||
|  | 
 | ||||||
|  | import static org.junit.Assert.assertEquals; | ||||||
|  | 
 | ||||||
|  | @RunWith(MockitoJUnitRunner.class) | ||||||
|  | public class LoadJ3mdTest { | ||||||
|  | 
 | ||||||
|  |     private Material material; | ||||||
|  |     private final Geometry geometry = new Geometry("Geometry", new Box(1, 1, 1)); | ||||||
|  |     private final EnumSet<Caps> myCaps = EnumSet.noneOf(Caps.class); | ||||||
|  |     private final RenderManager renderManager = new RenderManager(new NullRenderer() { | ||||||
|  |         @Override | ||||||
|  |         public EnumSet<Caps> getCaps() { | ||||||
|  |             return LoadJ3mdTest.this.myCaps; | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  | 
 | ||||||
|  |     @Test | ||||||
|  |     public void testShaderNodesMaterialDefLoading() { | ||||||
|  |         supportGlsl(100); | ||||||
|  |         material("testMatDef.j3md"); | ||||||
|  |         material.selectTechnique("Default", renderManager); | ||||||
|  | 
 | ||||||
|  |         assertEquals(material.getActiveTechnique().getDef().getShaderNodes().size(), 2); | ||||||
|  |         Shader s = material.getActiveTechnique().getDef().getShader(TestUtil.createAssetManager(), myCaps,  material.getActiveTechnique().getDynamicDefines()); | ||||||
|  |         assertEquals(s.getSources().size(), 2); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void supportGlsl(int version) { | ||||||
|  |         switch (version) { | ||||||
|  |             case 150: | ||||||
|  |                 myCaps.add(Caps.GLSL150); | ||||||
|  |             case 140: | ||||||
|  |                 myCaps.add(Caps.GLSL140); | ||||||
|  |             case 130: | ||||||
|  |                 myCaps.add(Caps.GLSL130); | ||||||
|  |             case 120: | ||||||
|  |                 myCaps.add(Caps.GLSL120); | ||||||
|  |             case 110: | ||||||
|  |                 myCaps.add(Caps.GLSL110); | ||||||
|  |             case 100: | ||||||
|  |                 myCaps.add(Caps.GLSL100); | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |     private void caps(Caps... caps) { | ||||||
|  |         myCaps.addAll(Arrays.asList(caps)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void material(String path) { | ||||||
|  |         AssetManager assetManager = TestUtil.createAssetManager(); | ||||||
|  |         material = new Material(assetManager, path); | ||||||
|  |         geometry.setMaterial(material); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
							
								
								
									
										34
									
								
								jme3-core/src/test/resources/testMatDef.j3md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								jme3-core/src/test/resources/testMatDef.j3md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | |||||||
|  | MaterialDef Simple { | ||||||
|  |     MaterialParameters { | ||||||
|  |         Color Color | ||||||
|  |     } | ||||||
|  |     Technique { | ||||||
|  |         WorldParameters { | ||||||
|  |             WorldViewProjectionMatrix | ||||||
|  |         } | ||||||
|  |         VertexShaderNodes { | ||||||
|  |             ShaderNode CommonVert { | ||||||
|  |                 Definition : CommonVert : Common/MatDefs/ShaderNodes/Common/CommonVert.j3sn | ||||||
|  |                 InputMappings { | ||||||
|  |                     worldViewProjectionMatrix = WorldParam.WorldViewProjectionMatrix | ||||||
|  |                     modelPosition = Global.position.xyz | ||||||
|  |                 } | ||||||
|  |                 OutputMappings { | ||||||
|  |                     Global.position = projPosition | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         FragmentShaderNodes { | ||||||
|  |             ShaderNode ColorMult { | ||||||
|  |                 Definition : ColorMult : Common/MatDefs/ShaderNodes/Basic/ColorMult.j3sn | ||||||
|  |                 InputMappings { | ||||||
|  |                     color1 = MatParam.Color | ||||||
|  |                     color2 = Global.color | ||||||
|  |                 } | ||||||
|  |                 OutputMappings { | ||||||
|  |                     Global.color = outColor | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user