diff --git a/.gitignore b/.gitignore index 9ef0e72b2..f897a1fb4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,48 +1,49 @@ -**/nbproject/private/ -**/.classpath -**/.settings -**/.project -**/.vscode -**/out/ -/.gradle/ -/.nb-gradle/ -/.idea/ -/dist/ -/build/ -/bin/ -/netbeans/ -/.classpath -/.project -/.settings -*.dll -*.so -*.jnilib -*.dylib -*.iml -.gradletasknamecache -.DS_Store -/jme3-core/src/main/resources/com/jme3/system/version.properties -/jme3-*/build/ -/jme3-*/bin/ -/jme3-bullet-native/bullet3.zip -/jme3-bullet-native/bullet3-*/ -/jme3-bullet-native/src/native/cpp/com_jme3_bullet_*.h -/jme3-android-native/openal-soft/ -/jme3-android-native/OpenALSoft.zip -/jme3-android-native/src/native/jme_decode/STBI/ -/jme3-android-native/src/native/jme_decode/Tremor/ -/jme3-android-native/src/native/jme_decode/com_jme3_audio_plugins_NativeVorbisFile.h -/jme3-android-native/src/native/jme_decode/com_jme3_texture_plugins_AndroidNativeImageLoader.h -/jme3-android-native/stb_image.h -!/jme3-bullet-native/libs/native/windows/x86_64/bulletjme.dll -!/jme3-bullet-native/libs/native/windows/x86/bulletjme.dll -!/jme3-bullet-native/libs/native/osx/x86/libbulletjme.dylib -!/jme3-bullet-native/libs/native/osx/x86_64/libbulletjme.dylib -!/jme3-bullet-native/libs/native/linux/x86/libbulletjme.so -!/jme3-bullet-native/libs/native/linux/x86_64/libbulletjme.so -!/jme3-vr/src/main/resources/**/*.dylib -!/jme3-vr/src/main/resources/**/*.so -!/jme3-vr/src/main/resources/**/*.so.dbg -!/jme3-vr/src/main/resources/**/*.dll -!/jme3-vr/src/main/resources/**/*.pdb -/buildMaven.bat +**/nbproject/private/ +**/.classpath +**/.settings +**/.project +**/.vscode +**/out/ +/.gradle/ +/.nb-gradle/ +/.idea/ +/dist/ +/build/ +/bin/ +/netbeans/ +/.classpath +/.project +/.settings +*.dll +*.so +*.jnilib +*.dylib +*.iml +.gradletasknamecache +.DS_Store +/jme3-core/src/main/resources/com/jme3/system/version.properties +/jme3-*/build/ +/jme3-*/bin/ +/jme3-bullet-native/bullet3.zip +/jme3-bullet-native/bullet3-*/ +/jme3-bullet-native/src/native/cpp/com_jme3_bullet_*.h +/jme3-android-native/openal-soft/ +/jme3-android-native/OpenALSoft.zip +/jme3-android-native/src/native/jme_decode/STBI/ +/jme3-android-native/src/native/jme_decode/Tremor/ +/jme3-android-native/src/native/jme_decode/com_jme3_audio_plugins_NativeVorbisFile.h +/jme3-android-native/src/native/jme_decode/com_jme3_texture_plugins_AndroidNativeImageLoader.h +/jme3-android-native/stb_image.h +!/jme3-bullet-native/libs/native/windows/x86_64/bulletjme.dll +!/jme3-bullet-native/libs/native/windows/x86/bulletjme.dll +!/jme3-bullet-native/libs/native/osx/x86/libbulletjme.dylib +!/jme3-bullet-native/libs/native/osx/x86_64/libbulletjme.dylib +!/jme3-bullet-native/libs/native/linux/x86/libbulletjme.so +!/jme3-bullet-native/libs/native/linux/x86_64/libbulletjme.so +/jme3-examples/private/ +!/jme3-vr/src/main/resources/**/*.dylib +!/jme3-vr/src/main/resources/**/*.so +!/jme3-vr/src/main/resources/**/*.so.dbg +!/jme3-vr/src/main/resources/**/*.dll +!/jme3-vr/src/main/resources/**/*.pdb +/buildMaven.bat \ No newline at end of file diff --git a/jme3-examples/src/main/java/jme3test/niftygui/TestIssue99.java b/jme3-examples/src/main/java/jme3test/niftygui/TestIssue99.java new file mode 100644 index 000000000..e19c681ce --- /dev/null +++ b/jme3-examples/src/main/java/jme3test/niftygui/TestIssue99.java @@ -0,0 +1,104 @@ +/* + * Copyright (c) 2019 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 jme3test.niftygui; + +import com.jme3.app.SimpleApplication; +import com.jme3.niftygui.NiftyJmeDisplay; +import de.lessvoid.nifty.Nifty; +import de.lessvoid.nifty.screen.Screen; +import de.lessvoid.nifty.screen.ScreenController; + +/** + * Test case for JME issue #99: blendMode="multiply" in Nifty renders + * incorrectly. + *
+ * If successful, two text labels will be visible. If unsuccessful, only the top
+ * one will be visible.
+ *
+ * @author Stephen Gold sgold@sonic.net
+ */
+public class TestIssue99
+ extends SimpleApplication
+ implements ScreenController {
+
+ public static void main(String[] args) {
+ TestIssue99 app = new TestIssue99();
+ app.start();
+ }
+
+ @Override
+ public void simpleInitApp() {
+ /*
+ * GUI requires a cursor; prevent flyCam from hiding it.
+ */
+ flyCam.setDragToRotate(true);
+ /*
+ * Start NiftyGUI without the batched renderer.
+ */
+ NiftyJmeDisplay niftyDisplay = new NiftyJmeDisplay(
+ assetManager, inputManager, audioRenderer, guiViewPort);
+ guiViewPort.addProcessor(niftyDisplay);
+ /*
+ * Load GUI controls, styles, and layout from XML assets.
+ */
+ Nifty nifty = niftyDisplay.getNifty();
+ nifty.loadControlFile("nifty-default-controls.xml");
+ nifty.loadStyleFile("nifty-default-styles.xml");
+ nifty.fromXml("Interface/Nifty/test-issue-99.xml",
+ "test-issue-99", this);
+ }
+
+ /**
+ * A callback from Nifty, invoked when the screen gets enabled for the first
+ * time.
+ *
+ * @param nifty (not null)
+ * @param screen (not null)
+ */
+ @Override
+ public void bind(Nifty nifty, Screen screen) {
+ }
+
+ /**
+ * A callback from Nifty, invoked each time the screen shuts down.
+ */
+ @Override
+ public void onEndScreen() {
+ }
+
+ /**
+ * A callback from Nifty, invoked each time the screen starts up.
+ */
+ @Override
+ public void onStartScreen() {
+ }
+}
diff --git a/jme3-examples/src/main/resources/Interface/Nifty/test-issue-99.xml b/jme3-examples/src/main/resources/Interface/Nifty/test-issue-99.xml
new file mode 100644
index 000000000..fdd699ae4
--- /dev/null
+++ b/jme3-examples/src/main/resources/Interface/Nifty/test-issue-99.xml
@@ -0,0 +1,41 @@
+
+
+