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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jme3-testdata/build.gradle b/jme3-testdata/build.gradle index aad9f2ae9..f0f070fbc 100644 --- a/jme3-testdata/build.gradle +++ b/jme3-testdata/build.gradle @@ -10,4 +10,5 @@ repositories { dependencies { compile 'lessvoid:nifty-examples:1.4.1' + runtime 'com.github.nifty-gui:nifty-style-black:1.4.3' }