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 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 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 remove_skybox(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 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 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
}

View File

@@ -69,7 +69,6 @@ extern "C"
EMSCRIPTEN_KEEPALIVE void set_bloom(const void *const viewer, float strength)
{
Log("Setting bloom to %f", strength);
((FilamentViewer *)viewer)->setBloom(strength);
}
@@ -78,6 +77,10 @@ extern "C"
((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)
{
((FilamentViewer *)viewer)->loadIbl(iblPath, intensity);
@@ -870,6 +873,19 @@ extern "C"
((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);
}
}