Skip to content

Commit 74a1d8b

Browse files
committed
Merge branch 'master' into experimental
Conflicts: jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java jme3-core/src/main/java/com/jme3/scene/Node.java jme3-core/src/main/java/com/jme3/scene/Spatial.java jme3-core/src/main/java/com/jme3/shader/ShaderGenerator.java
2 parents 3bb01d6 + ec9f810 commit 74a1d8b

File tree

9 files changed

+46
-180
lines changed

9 files changed

+46
-180
lines changed

.gitignore

Lines changed: 13 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,22 @@
1+
**/nbproject/private/
12
/.gradle/
2-
/.nb-gradle/private/
3-
/.nb-gradle/profiles/private/
3+
/.nb-gradle/
44
/.idea/
55
/dist/
66
/build/
7+
/bin/
78
/netbeans/
8-
/sdk/jdks/local/
9-
/jme3-core/build/
9+
/.classpath
10+
/.project
11+
/.settings
12+
*.dll
13+
*.so
14+
*.jnilib
15+
*.dylib
16+
*.iml
17+
.DS_Store
1018
/jme3-core/src/main/resources/com/jme3/system/version.properties
11-
/jme3-plugins/build/
12-
/jme3-desktop/build/
13-
/jme3-android-native/build/
14-
/jme3-android/build/
15-
/jme3-android-examples/build/
16-
/jme3-blender/build/
17-
/jme3-effects/build/
18-
/jme3-bullet/build/
19-
/jme3-terrain/build/
20-
/jme3-bullet-native/build/
21-
/jme3-bullet-native-android/build/
22-
/jme3-jogg/build/
23-
/jme3-jbullet/build/
24-
/jme3-lwjgl/build/
25-
/jme3-networking/build/
26-
/jme3-niftygui/build/
27-
/jme3-testdata/build/
28-
/jme3-examples/build/
29-
/jme3-jogl/build/
30-
/jme3-ios/build/
31-
/jme3-gl-autogen/build/
19+
/jme3-*/build/
3220
/jme3-bullet-native/bullet.zip
3321
/jme3-bullet-native/bullet-2.82-r2704/
3422
/jme3-android-native/openal-soft/
@@ -38,113 +26,9 @@
3826
/jme3-android-native/src/native/jme_decode/com_jme3_audio_plugins_NativeVorbisFile.h
3927
/jme3-android-native/src/native/jme_decode/com_jme3_texture_plugins_AndroidNativeImageLoader.h
4028
/jme3-android-native/stb_image.h
41-
/sdk/jme3-tests-template/src/com/jme3/gde/templates/tests/JmeTestsProject.zip
42-
/sdk/jme3-tests-template/src/com/jme3/gde/templates/tests/JME3TestsAndroidProject.zip
43-
/sdk/jme3-project-testdata/release/
44-
/sdk/JME3TestsTemplateAndroid/src/jme3test/
45-
/sdk/JME3TestsTemplate/src/jme3test/
46-
/sdk/build/
47-
/sdk/jme3-core-baselibs/release/
48-
/sdk/jme3-core-libraries/release/
49-
/sdk/jme3-project-baselibs/release/
50-
/sdk/jme3-project-libraries/release/
51-
/sdk/jme3-codepalette/build/
52-
/sdk/jme3-core-libraries/build/
53-
/sdk/jme3-code-check/build/
54-
/sdk/jme3-core-baselibs/build/
55-
/sdk/jme3-documentation/build/
56-
/sdk/jme3-core-updatecenters/build/
57-
/sdk/jme3-project-testdata/build/
58-
/sdk/jme3-project-libraries/build/
59-
/sdk/jme3-project-baselibs/build/
60-
/sdk/jme3-templates/build/
61-
/sdk/jme3-texture-editor/build/
62-
/sdk/jme3-tests-template/build/
63-
/sdk/jme3-upgrader/build/
64-
/sdk/jme3-core/build/
65-
/sdk/jme3-obfuscate/build/
66-
/sdk/jme3-gui/build/
67-
/sdk/jme3-cinematics/build/
68-
/sdk/jme3-terrain-editor/build/
69-
/sdk/jme3-lwjgl-applet/build/
70-
/sdk/jme3-blender/build/
71-
/sdk/jme3-navmesh-gen/build/
72-
/sdk/jme3-angelfont/build/
73-
/sdk/jme3-materialeditor/build/
74-
/sdk/jme3-android/build/
75-
/sdk/jme3-desktop-executables/build/
76-
/sdk/jme3-ogrexml/build/
77-
/sdk/jme3-ogretools/build/
78-
/sdk/jme3-scenecomposer/build/
79-
/sdk/jme3-assetpack-support/build/
80-
/sdk/jme3-model-importer/build/
81-
/sdk/jme3-wavefront/build/
82-
/sdk/jme3-vehicle-creator/build/
83-
/sdk/jme3-welcome-screen/build/
84-
/sdk/jme3-glsl-support/build/
85-
/sdk/jme3-dark-laf/build/
86-
/sdk/nbproject/private/
87-
/sdk/jme3-scenecomposer/nbproject/private/
88-
/sdk/jme3-core/nbproject/private/
89-
/sdk/jme3-core-baselibs/nbproject/private/
90-
/sdk/jme3-welcome-screen/nbproject/private/
91-
/sdk/jme3-lwjgl-applet/nbproject/private/
92-
/sdk/jme3-ogrexml/nbproject/private/
93-
/sdk/jme3-upgrader/nbproject/private/
94-
/sdk/jme3-obfuscate/nbproject/private/
95-
/sdk/jme3-navmesh-gen/nbproject/private/
96-
/sdk/jme3-wavefront/nbproject/private/
97-
/sdk/jme3-project-libraries/nbproject/private/
98-
/sdk/jme3-ogretools/nbproject/private/
99-
/sdk/jme3-assetpack-support/nbproject/private/
100-
/sdk/jme3-cinematics/nbproject/private/
101-
/sdk/jme3-model-importer/nbproject/private/
102-
/sdk/jme3-desktop-executables/nbproject/private/
103-
/sdk/jme3-glsl-support/nbproject/private/
104-
/sdk/jme3-android/nbproject/private/
105-
/sdk/jme3-angelfont/nbproject/private/
106-
/sdk/jme3-codepalette/nbproject/private/
107-
/sdk/jme3-documentation/nbproject/private/
108-
/sdk/jme3-vehicle-creator/nbproject/private/
109-
/sdk/jme3-code-check/nbproject/private/
110-
/sdk/jme3-blender/nbproject/private/
111-
/sdk/jme3-core-libraries/nbproject/private/
112-
/sdk/jme3-core-updatecenters/nbproject/private/
113-
/sdk/jme3-gui/nbproject/private/
114-
/sdk/jme3-materialeditor/nbproject/private/
115-
/sdk/jme3-project-baselibs/nbproject/private/
116-
/sdk/jme3-project-testdata/nbproject/private/
117-
/sdk/jme3-templates/nbproject/private/
118-
/sdk/jme3-terrain-editor/nbproject/private/
119-
/sdk/jme3-tests-template/nbproject/private/
120-
/sdk/jme3-texture-editor/nbproject/private/
121-
/sdk/JME3TestsTemplate/nbproject/private/
122-
/sdk/JME3TestsTemplateAndroid/nbproject/private/
123-
/bin
124-
/.classpath
125-
/.project
126-
/.settings
127-
*.dll
128-
*.so
129-
*.jnilib
130-
*.dylib
131-
*.iml
132-
.DS_Store
133-
/sdk/dist/
13429
!/jme3-bullet-native/libs/native/windows/x86_64/bulletjme.dll
13530
!/jme3-bullet-native/libs/native/windows/x86/bulletjme.dll
13631
!/jme3-bullet-native/libs/native/osx/x86/libbulletjme.dylib
13732
!/jme3-bullet-native/libs/native/osx/x86_64/libbulletjme.dylib
13833
!/jme3-bullet-native/libs/native/linux/x86/libbulletjme.so
13934
!/jme3-bullet-native/libs/native/linux/x86_64/libbulletjme.so
140-
/.nb-gradle/
141-
/sdk/ant-jme/nbproject/private/
142-
/sdk/nbi/stub/ext/engine/nbproject/private/
143-
/sdk/nbi/stub/ext/components/products/jdk/nbproject/private/
144-
/sdk/nbi/stub/ext/components/products/blender/nbproject/private/
145-
/sdk/nbi/stub/ext/components/products/helloworld/nbproject/private/
146-
/sdk/BasicGameTemplate/nbproject/private/
147-
/sdk/nbi/stub/ext/components/products/jdk/build/
148-
/sdk/nbi/stub/ext/components/products/jdk/dist/
149-
/sdk/jme3-dark-laf/nbproject/private/
150-
jme3-lwjgl3/build/

jme3-core/src/main/java/com/jme3/material/RenderState.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,9 @@ public void setAlphaFunc(TestFunction alphaFunc) {
822822
* @param lineWidth the line width.
823823
*/
824824
public void setLineWidth(float lineWidth) {
825+
if (lineWidth < 1f) {
826+
throw new IllegalArgumentException("lineWidth must be greater than or equal to 1.0");
827+
}
825828
this.lineWidth = lineWidth;
826829
this.applyLineWidth = true;
827830
cachedHashCode = -1;

jme3-core/src/main/java/com/jme3/renderer/RenderManager.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,9 @@ public void preloadScene(Spatial scene) {
616616

617617
gm.getMaterial().preload(this);
618618
Mesh mesh = gm.getMesh();
619-
if (mesh != null) {
619+
if (mesh != null
620+
&& mesh.getVertexCount() != 0
621+
&& mesh.getTriangleCount() != 0) {
620622
for (VertexBuffer vb : mesh.getBufferList().getArray()) {
621623
if (vb.getData() != null && vb.getUsage() != VertexBuffer.Usage.CpuOnly) {
622624
renderer.updateBufferData(vb);
@@ -641,8 +643,10 @@ public void preloadScene(Spatial scene) {
641643
* <p>
642644
* In addition to enqueuing the visible geometries, this method
643645
* also scenes which cast or receive shadows, by putting them into the
644-
* RenderQueue's {@link RenderQueue#renderShadowQueue(GeometryList, RenderManager, Camera, boolean) shadow queue}.
645-
* Each Spatial which has its {@link Spatial#setShadowMode(com.jme3.renderer.queue.RenderQueue.ShadowMode) shadow mode}
646+
* RenderQueue's
647+
* {@link RenderQueue#addToShadowQueue(com.jme3.scene.Geometry, com.jme3.renderer.queue.RenderQueue.ShadowMode)
648+
* shadow queue}. Each Spatial which has its
649+
* {@link Spatial#setShadowMode(com.jme3.renderer.queue.RenderQueue.ShadowMode) shadow mode}
646650
* set to not off, will be put into the appropriate shadow queue, note that
647651
* this process does not check for frustum culling on any
648652
* {@link ShadowMode#Cast shadow casters}, as they don't have to be
@@ -989,7 +993,8 @@ public void renderViewPortRaw(ViewPort vp) {
989993
* (see {@link #renderTranslucentQueue(com.jme3.renderer.ViewPort) })</li>
990994
* <li>If any objects remained in the render queue, they are removed
991995
* from the queue. This is generally objects added to the
992-
* {@link RenderQueue#renderShadowQueue(GeometryList, RenderManager, Camera, boolean) shadow queue}
996+
* {@link RenderQueue#renderShadowQueue(com.jme3.renderer.queue.RenderQueue.ShadowMode, com.jme3.renderer.RenderManager, com.jme3.renderer.Camera, boolean)
997+
* shadow queue}
993998
* which were not rendered because of a missing shadow renderer.</li>
994999
* </ul>
9951000
*

jme3-core/src/main/java/com/jme3/renderer/opengl/GLRenderer.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -474,14 +474,13 @@ private void loadCapabilitiesCommon() {
474474
});
475475

476476
// Print capabilities (if fine logging is enabled)
477-
if (logger.isLoggable(Level.INFO)) {
477+
if (logger.isLoggable(Level.FINE)) {
478478
StringBuilder sb = new StringBuilder();
479479
sb.append("Supported capabilities: \n");
480480
for (Caps cap : caps)
481481
{
482482
sb.append("\t").append(cap.toString()).append("\n");
483483
}
484-
485484
sb.append("\nHardware limits: \n");
486485
for (Limits limit : Limits.values()) {
487486
Integer value = limits.get(limit);
@@ -492,7 +491,7 @@ private void loadCapabilitiesCommon() {
492491
.append(value).append("\n");
493492
}
494493

495-
logger.log(Level.INFO, sb.toString());
494+
logger.log(Level.FINE, sb.toString());
496495
}
497496

498497
texUtil.initialize(caps);
@@ -1536,7 +1535,6 @@ public void updateFrameBuffer(FrameBuffer fb) {
15361535
FrameBuffer.RenderBuffer colorBuf = fb.getColorBuffer(i);
15371536
updateFrameBufferAttachment(fb, colorBuf);
15381537
}
1539-
15401538
FrameBuffer.RenderBuffer depthBuf = fb.getDepthBuffer();
15411539
if (depthBuf != null) {
15421540
updateFrameBufferAttachment(fb, depthBuf);
@@ -2568,7 +2566,6 @@ public void setVertexAttribVAO(VertexBuffer vb, VertexBuffer idb) {
25682566
}
25692567
}
25702568
}
2571-
25722569
public void setVertexAttrib(VertexBuffer vb) {
25732570
setVertexAttrib(vb, null);
25742571
}
@@ -2619,6 +2616,7 @@ public void drawTriangleList(VertexBuffer indexBuf, Mesh mesh, int count) {
26192616

26202617
int vertCount = mesh.getVertexCount();
26212618
boolean useInstancing = count > 1 && caps.contains(Caps.MeshInstancing);
2619+
26222620
if (useInstancing) {
26232621
glext.glDrawElementsInstancedARB(convertElementMode(mesh.getMode()),
26242622
indexBuf.getData().limit(),
@@ -2717,7 +2715,6 @@ private void setupVertexBuffers(Mesh mesh, VertexBuffer[] instanceData) {
27172715
setVertexAttribVAO(vb, interleavedData);
27182716
}
27192717
}
2720-
27212718
mesh.clearUpdateNeeded();
27222719
}
27232720

@@ -2819,13 +2816,11 @@ private void renderMeshLegacy(Mesh mesh, int lod, int count, VertexBuffer[] inst
28192816
VertexBuffer indices = getIndexBuffer(mesh, lod);
28202817

28212818
clearVertexAttribs();
2822-
28232819
if (indices != null) {
28242820
drawTriangleList(indices, mesh, count);
28252821
} else {
28262822
drawTriangleArray(mesh.getMode(), count, mesh.getVertexCount());
28272823
}
2828-
28292824
}
28302825

28312826
public void renderMesh(Mesh mesh, int lod, int count, VertexBuffer[] instanceData) {
@@ -2836,19 +2831,16 @@ public void renderMesh(Mesh mesh, int lod, int count, VertexBuffer[] instanceDat
28362831
if (count > 1 && !caps.contains(Caps.MeshInstancing)) {
28372832
throw new RendererException("Mesh instancing is not supported by the video hardware");
28382833
}
2839-
28402834
//this is kept for backward compatibility.
2841-
if (mesh.getLineWidth() != -1 && context.lineWidth != mesh.getLineWidth()) {
2835+
if (mesh.getLineWidth() != 1f && context.lineWidth != mesh.getLineWidth()) {
28422836
gl.glLineWidth(mesh.getLineWidth());
28432837
context.lineWidth = mesh.getLineWidth();
28442838
}
28452839

28462840
if (gl4 != null && mesh.getMode().equals(Mode.Patch)) {
28472841
gl4.glPatchParameter(mesh.getPatchVertexCount());
28482842
}
2849-
28502843
statistics.onMeshDrawn(mesh, lod, count);
2851-
28522844
// Here while count is still passed in. Can be removed when/if
28532845
// the method is collapsed again. -pspeed
28542846
count = Math.max(mesh.getInstanceCount(), count);

jme3-core/src/main/java/com/jme3/scene/Mesh.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ public boolean isListMode(){
171171
private IntMap<VertexBuffer> buffers = new IntMap<VertexBuffer>();
172172
private VertexBuffer[] lodLevels;
173173
private float pointSize = 1;
174-
private float lineWidth = -1;
174+
private float lineWidth = 1;
175175

176176
private transient int vertexArrayID = -1;
177177

@@ -578,6 +578,9 @@ public float getLineWidth() {
578578
*/
579579
@Deprecated
580580
public void setLineWidth(float lineWidth) {
581+
if (lineWidth < 1f) {
582+
throw new IllegalArgumentException("lineWidth must be greater than or equal to 1.0");
583+
}
581584
this.lineWidth = lineWidth;
582585
}
583586

jme3-core/src/main/java/com/jme3/scene/Node.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,6 @@ public void updateGeometricState(){
259259
if ((refreshFlags & RF_MATPARAM_OVERRIDE) != 0) {
260260
updateMatParamOverrides();
261261
}
262-
263262
if ((refreshFlags & RF_TRANSFORM) != 0){
264263
// combine with parent transforms- same for all spatial
265264
// subclasses.
@@ -450,6 +449,7 @@ public Spatial detachChildAt(int index) {
450449
child.setTransformRefresh();
451450
// lights are also inherited from parent
452451
child.setLightListRefresh();
452+
453453
child.setMatParamOverrideRefresh();
454454

455455
invalidateUpdateList();

0 commit comments

Comments
 (0)