feat: expose API methods for create_ibl, pick/set gizmo visibility

This commit is contained in:
Nick Fisher
2024-08-27 21:45:49 +08:00
parent a3f7b98bf7
commit 78dcbc8bb9
2 changed files with 20 additions and 1 deletions

View File

@@ -69,6 +69,7 @@ extern "C"
EMSCRIPTEN_KEEPALIVE void set_bloom(const void *const viewer, float strength); EMSCRIPTEN_KEEPALIVE void set_bloom(const void *const viewer, float strength);
EMSCRIPTEN_KEEPALIVE void load_skybox(const void *const viewer, const char *skyboxPath); EMSCRIPTEN_KEEPALIVE void load_skybox(const void *const viewer, const char *skyboxPath);
EMSCRIPTEN_KEEPALIVE void load_ibl(const void *const viewer, const char *iblPath, float intensity); EMSCRIPTEN_KEEPALIVE void load_ibl(const void *const viewer, const char *iblPath, float intensity);
EMSCRIPTEN_KEEPALIVE void create_ibl(const void *const viewer, float r, float g, float b, float intensity);
EMSCRIPTEN_KEEPALIVE void rotate_ibl(const void *const viewer, float *rotationMatrix); EMSCRIPTEN_KEEPALIVE void rotate_ibl(const void *const viewer, float *rotationMatrix);
EMSCRIPTEN_KEEPALIVE void remove_skybox(const void *const viewer); EMSCRIPTEN_KEEPALIVE void remove_skybox(const void *const viewer);
EMSCRIPTEN_KEEPALIVE void remove_ibl(const void *const viewer); EMSCRIPTEN_KEEPALIVE void remove_ibl(const void *const viewer);
@@ -254,6 +255,8 @@ extern "C"
EMSCRIPTEN_KEEPALIVE Aabb2 get_bounding_box(void *const sceneManager, EntityId entity); EMSCRIPTEN_KEEPALIVE Aabb2 get_bounding_box(void *const sceneManager, EntityId entity);
EMSCRIPTEN_KEEPALIVE void get_bounding_box_to_out(void *const sceneManager, EntityId entity, float* minX, float* minY, float* maxX, float* maxY); EMSCRIPTEN_KEEPALIVE void get_bounding_box_to_out(void *const sceneManager, EntityId entity, float* minX, float* minY, float* maxX, float* maxY);
EMSCRIPTEN_KEEPALIVE void set_layer_enabled(void *const sceneManager, int layer, bool enabled); EMSCRIPTEN_KEEPALIVE void set_layer_enabled(void *const sceneManager, int layer, bool enabled);
EMSCRIPTEN_KEEPALIVE void pick_gizmo(void *const sceneManager, int x, int y, void (*callback)(EntityId entityId, int x, int y));
EMSCRIPTEN_KEEPALIVE void set_gizmo_visibility(void *const sceneManager, bool visible);
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@@ -69,7 +69,6 @@ extern "C"
EMSCRIPTEN_KEEPALIVE void set_bloom(const void *const viewer, float strength) EMSCRIPTEN_KEEPALIVE void set_bloom(const void *const viewer, float strength)
{ {
Log("Setting bloom to %f", strength);
((FilamentViewer *)viewer)->setBloom(strength); ((FilamentViewer *)viewer)->setBloom(strength);
} }
@@ -78,6 +77,10 @@ extern "C"
((FilamentViewer *)viewer)->loadSkybox(skyboxPath); ((FilamentViewer *)viewer)->loadSkybox(skyboxPath);
} }
EMSCRIPTEN_KEEPALIVE void create_ibl(const void *const viewer, float r, float g, float b, float intensity) {
((FilamentViewer*)viewer)->createIbl(r, g, b, intensity);
}
EMSCRIPTEN_KEEPALIVE void load_ibl(const void *const viewer, const char *iblPath, float intensity) EMSCRIPTEN_KEEPALIVE void load_ibl(const void *const viewer, const char *iblPath, float intensity)
{ {
((FilamentViewer *)viewer)->loadIbl(iblPath, intensity); ((FilamentViewer *)viewer)->loadIbl(iblPath, intensity);
@@ -870,6 +873,19 @@ extern "C"
((SceneManager*)sceneManager)->setLayerEnabled(layer, enabled); ((SceneManager*)sceneManager)->setLayerEnabled(layer, enabled);
} }
EMSCRIPTEN_KEEPALIVE void thermion_flutter_free(void* ptr) {
free(ptr);
}
EMSCRIPTEN_KEEPALIVE void pick_gizmo(void *const sceneManager, int x, int y, void (*callback)(EntityId entityId, int x, int y)) {
((SceneManager*)sceneManager)->gizmo->pick(x, y, callback);
}
EMSCRIPTEN_KEEPALIVE void set_gizmo_visibility(void *const sceneManager, bool visible) {
((SceneManager*)sceneManager)->gizmo->setVisibility(visible);
}
} }