diff --git a/android/filament-android/src/main/cpp/Scene.cpp b/android/filament-android/src/main/cpp/Scene.cpp index 43e03b8d7d..7cabac6ac4 100644 --- a/android/filament-android/src/main/cpp/Scene.cpp +++ b/android/filament-android/src/main/cpp/Scene.cpp @@ -24,8 +24,8 @@ using namespace utils; extern "C" JNIEXPORT void JNICALL Java_com_google_android_filament_Scene_nSetSkybox(JNIEnv *env, jclass type, jlong nativeScene, jlong nativeSkybox) { - Scene *scene = (Scene *) nativeScene; - Skybox *skybox = (Skybox *) nativeSkybox; + Scene* scene = (Scene*) nativeScene; + Skybox* skybox = (Skybox*) nativeSkybox; scene->setSkybox(skybox); } @@ -33,33 +33,33 @@ extern "C" JNIEXPORT void JNICALL Java_com_google_android_filament_Scene_nSetIndirectLight(JNIEnv *env, jclass type, jlong nativeScene, jlong nativeIndirectLight) { Scene *scene = (Scene *) nativeScene; - IndirectLight *indirectLight = (IndirectLight *) nativeIndirectLight; + IndirectLight* indirectLight = (IndirectLight*) nativeIndirectLight; scene->setIndirectLight(indirectLight); } extern "C" JNIEXPORT void JNICALL Java_com_google_android_filament_Scene_nAddEntity(JNIEnv *env, jclass type, jlong nativeScene, jint entity) { - Scene *scene = (Scene *) nativeScene; - scene->addEntity((Entity &) entity); + Scene* scene = (Scene*) nativeScene; + scene->addEntity((Entity&) entity); } extern "C" JNIEXPORT void JNICALL Java_com_google_android_filament_Scene_nRemove(JNIEnv *env, jclass type, jlong nativeScene, jint entity) { - Scene *scene = (Scene *) nativeScene; - scene->remove((Entity &) entity); + Scene* scene = (Scene*) nativeScene; + scene->remove((Entity&) entity); } extern "C" JNIEXPORT jint JNICALL Java_com_google_android_filament_Scene_nGetRenderableCount(JNIEnv *env, jclass type, jlong nativeScene) { - Scene *scene = (Scene *) nativeScene; + Scene* scene = (Scene*) nativeScene; return (jint) scene->getRenderableCount(); } extern "C" JNIEXPORT jint JNICALL Java_com_google_android_filament_Scene_nGetLightCount(JNIEnv *env, jclass type, jlong nativeScene) { - Scene *scene = (Scene *) nativeScene; + Scene* scene = (Scene*) nativeScene; return (jint) scene->getLightCount(); } diff --git a/android/filament-android/src/main/java/com/google/android/filament/Scene.java b/android/filament-android/src/main/java/com/google/android/filament/Scene.java index 109c7e4fbb..6652008b4a 100644 --- a/android/filament-android/src/main/java/com/google/android/filament/Scene.java +++ b/android/filament-android/src/main/java/com/google/android/filament/Scene.java @@ -16,31 +16,53 @@ package com.google.android.filament; -import android.support.annotation.NonNull; +import android.support.annotation.Nullable; public class Scene { private long mNativeObject; + private @Nullable Skybox mSkybox; + private @Nullable IndirectLight mIndirectLight; Scene(long nativeScene) { mNativeObject = nativeScene; } - public void setSkybox(@NonNull Skybox skybox) { - nSetSkybox(getNativeObject(), skybox.getNativeObject()); + @Nullable + public Skybox getSkybox() { + return mSkybox; } - public void setIndirectLight(@NonNull IndirectLight ibl) { - nSetIndirectLight(getNativeObject(), ibl.getNativeObject()); + public void setSkybox(@Nullable Skybox skybox) { + mSkybox = skybox; + nSetSkybox(getNativeObject(), mSkybox != null ? mSkybox.getNativeObject() : 0); + } + + @Nullable + public IndirectLight getIndirectLight() { + return mIndirectLight; + } + + public void setIndirectLight(@Nullable IndirectLight ibl) { + mIndirectLight = ibl; + nSetIndirectLight(getNativeObject(), + mIndirectLight != null ? mIndirectLight.getNativeObject() : 0); } public void addEntity(@Entity int entity) { nAddEntity(getNativeObject(), entity); } - public void remove(@Entity int entity) { + public void removeEntity(@Entity int entity) { nRemove(getNativeObject(), entity); } + /** + * @deprecated See {@link #removeEntity(int)} + */ + public void remove(@Entity int entity) { + removeEntity(entity); + } + public int getRenderableCount() { return nGetRenderableCount(getNativeObject()); } diff --git a/android/samples/image-based-lighting/app/src/main/java/com/google/android/filament/ibl/MainActivity.kt b/android/samples/image-based-lighting/app/src/main/java/com/google/android/filament/ibl/MainActivity.kt index 466e3036e6..ff88ea7acb 100644 --- a/android/samples/image-based-lighting/app/src/main/java/com/google/android/filament/ibl/MainActivity.kt +++ b/android/samples/image-based-lighting/app/src/main/java/com/google/android/filament/ibl/MainActivity.kt @@ -132,8 +132,8 @@ class MainActivity : Activity() { setupMaterial() loadImageBasedLight() - scene.setSkybox(ibl.skybox) - scene.setIndirectLight(ibl.indirectLight) + scene.skybox = ibl.skybox + scene.indirectLight = ibl.indirectLight // This map can contain named materials that will map to the material names // loaded from the filamesh file. The material called "DefaultMaterial" is