separate IBL from skybox and add setBackgroundImage method
This commit is contained in:
@@ -14,7 +14,43 @@ add_library(
|
||||
src/main/cpp/StbProvider.cpp
|
||||
src/main/cpp/JobSystem.cpp
|
||||
../ios/src/FilamentViewer.cpp
|
||||
../ios/src/streambuf.cpp
|
||||
../ios/src/imagematerial.c
|
||||
)
|
||||
|
||||
target_link_libraries(filament_interop -landroid -llog -lfilament -lbackend -lfilameshio -lviewer -lfilamat -lgeometry -lutils -lfilabridge -lgltfio_core -lfilament-iblprefilter -limage -lcamutils -lfilaflat -ldracodec -libl -lktxreader -lstb -lEGL -lGLESv3 -lbluevk -lvkshaders -luberzlib -lsmol-v -luberarchive -lzstd)
|
||||
target_link_libraries(
|
||||
filament_interop
|
||||
-landroid
|
||||
-llog
|
||||
-lfilament
|
||||
-lbackend
|
||||
-lfilameshio
|
||||
-lviewer
|
||||
-lfilamat
|
||||
-lgeometry
|
||||
-lutils
|
||||
-lfilabridge
|
||||
-lgltfio_core
|
||||
-lfilament-iblprefilter
|
||||
-limage
|
||||
-lcamutils
|
||||
-lfilaflat
|
||||
-ldracodec
|
||||
-libl
|
||||
-lktxreader
|
||||
-limageio
|
||||
-lpng
|
||||
-ltinyexr
|
||||
-lz
|
||||
-lstb
|
||||
-lEGL
|
||||
-lGLESv3
|
||||
-lbluevk
|
||||
-lvkshaders
|
||||
-luberzlib
|
||||
-lsmol-v
|
||||
-luberarchive
|
||||
-lzstd
|
||||
|
||||
)
|
||||
|
||||
|
||||
@@ -47,14 +47,27 @@ static void freeResource(ResourceBuffer rb) {
|
||||
|
||||
extern "C" {
|
||||
|
||||
void load_skybox(void* viewer, const char* skyboxPath, const char* iblPath) {
|
||||
((FilamentViewer*)viewer)->loadSkybox(skyboxPath, iblPath);
|
||||
void set_background_image(void* viewer, const char* path) {
|
||||
((FilamentViewer*)viewer)->setBackgroundImage(path);
|
||||
}
|
||||
|
||||
void load_skybox(void* viewer, const char* skyboxPath) {
|
||||
((FilamentViewer*)viewer)->loadSkybox(skyboxPath);
|
||||
}
|
||||
|
||||
void load_ibl(void* viewer, const char* iblPath) {
|
||||
((FilamentViewer*)viewer)->loadIbl(iblPath);
|
||||
}
|
||||
|
||||
void remove_skybox(void* viewer) {
|
||||
((FilamentViewer*)viewer)->removeSkybox();
|
||||
}
|
||||
|
||||
|
||||
void remove_ibl(void* viewer) {
|
||||
((FilamentViewer*)viewer)->removeIbl();
|
||||
}
|
||||
|
||||
void load_glb(void* viewer, const char* assetPath) {
|
||||
((FilamentViewer*)viewer)->loadGlb(assetPath);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,9 @@ interface FilamentInterop : Library {
|
||||
am:AssetManager
|
||||
) : Pointer;
|
||||
|
||||
fun load_skybox(viewer:Pointer, skyboxPath:String, iblPath:String) : Pointer;
|
||||
fun load_skybox(viewer:Pointer, skyboxPath:String) : Pointer;
|
||||
|
||||
fun load_ibl(viewer:Pointer, skyboxPath:String) : Pointer;
|
||||
|
||||
fun load_glb(viewer:Pointer, uri:String) : Pointer;
|
||||
|
||||
@@ -66,5 +68,7 @@ interface FilamentInterop : Library {
|
||||
|
||||
fun remove_skybox(viewer:Pointer);
|
||||
|
||||
fun remove_ibl(viewer:Pointer);
|
||||
|
||||
fun set_background_image(viewer:Pointer, path:String);
|
||||
}
|
||||
|
||||
@@ -94,6 +94,7 @@ PlatformView {
|
||||
|
||||
private lateinit var assetManager : AssetManager
|
||||
|
||||
|
||||
init {
|
||||
MethodChannel(binaryMessenger, PolyvoxFilamentPlugin.VIEW_TYPE + '_' + viewId).also {
|
||||
_methodChannel = it
|
||||
@@ -157,12 +158,29 @@ PlatformView {
|
||||
// val flutterJNI = FlutterJNI.Factory.provideFlutterJNI()
|
||||
// flutterJNI.updateJavaAssetManager(assetManager, flutterApplicationInfo.flutterAssetsDir)
|
||||
}
|
||||
"loadSkybox" -> {
|
||||
val args = call.arguments as ArrayList<Any?>
|
||||
"setBackgroundImage" -> {
|
||||
val args = call.arguments as String
|
||||
val loader = FlutterInjector.instance().flutterLoader()
|
||||
_lib.load_skybox(_viewer!!, loader.getLookupKeyForAsset(args[0] as String), loader.getLookupKeyForAsset(args[1] as String))
|
||||
_lib.set_background_image(_viewer!!, loader.getLookupKeyForAsset(args))
|
||||
result.success("OK");
|
||||
}
|
||||
"loadSkybox" -> {
|
||||
val args = call.arguments as String
|
||||
val loader = FlutterInjector.instance().flutterLoader()
|
||||
_lib.load_skybox(_viewer!!, loader.getLookupKeyForAsset(args))
|
||||
result.success("OK");
|
||||
}
|
||||
"loadIbl" -> {
|
||||
val args = call.arguments as String
|
||||
val loader = FlutterInjector.instance().flutterLoader()
|
||||
|
||||
_lib.load_ibl(_viewer!!, loader.getLookupKeyForAsset(args))
|
||||
result.success("OK");
|
||||
}
|
||||
"removeIbl" -> {
|
||||
_lib.remove_ibl(_viewer!!)
|
||||
result.success(true);
|
||||
}
|
||||
"removeSkybox" -> {
|
||||
_lib.remove_skybox(_viewer!!)
|
||||
result.success(true);
|
||||
|
||||
Reference in New Issue
Block a user