diff --git a/thermion_dart/native/src/ThermionDartApi.cpp b/thermion_dart/native/src/ThermionDartApi.cpp index 14e5e5fb..2eb7cb25 100644 --- a/thermion_dart/native/src/ThermionDartApi.cpp +++ b/thermion_dart/native/src/ThermionDartApi.cpp @@ -962,9 +962,19 @@ extern "C" ((SceneManager *)sceneManager)->setMaterialProperty(entity, materialIndex, property, value); } - EMSCRIPTEN_KEEPALIVE void set_material_property_float4(void *const sceneManager, EntityId entity, int materialIndex, const char *property, float4 value) + EMSCRIPTEN_KEEPALIVE void set_material_property_int(void *const sceneManager, EntityId entity, int materialIndex, const char *property, int32_t value) { - filament::math::float4 filamentValue{value.x, value.y, value.z, value.w}; + + ((SceneManager *)sceneManager)->setMaterialProperty(entity, materialIndex, property, value); + } + + EMSCRIPTEN_KEEPALIVE void set_material_property_float4(void *const sceneManager, EntityId entity, int materialIndex, const char *property, double4 value) + { + filament::math::float4 filamentValue; + filamentValue.x = static_cast(value.x); + filamentValue.y = static_cast(value.y); + filamentValue.z = static_cast(value.z); + filamentValue.w = static_cast(value.w); ((SceneManager *)sceneManager)->setMaterialProperty(entity, materialIndex, property, filamentValue); } @@ -1023,6 +1033,11 @@ extern "C" return reinterpret_cast(materialInstance); } +EMSCRIPTEN_KEEPALIVE TMaterialInstance *create_unlit_material_instance(void *const sceneManager) { + auto * instance = ((SceneManager*)sceneManager)->createUnlitMaterialInstance(); + return reinterpret_cast(instance); +} + EMSCRIPTEN_KEEPALIVE void destroy_material_instance(void *const sceneManager, TMaterialInstance *instance) { ((SceneManager *)sceneManager)->destroy(reinterpret_cast(instance)); }