feat: expose setCastShadows/setReceiveShadows

This commit is contained in:
Nick Fisher committed 2025-03-05 14:47:55 +08:00
1 parent cca9fba79f
commit 593bca3365
7 files changed
+206 -39

No files matched your search

@@ -72,21 +72,45 @@ namespace thermion
const auto &entity = utils::Entity::import(entityId);
auto renderableInstance = renderableManager->getInstance(entity);
if (!renderableInstance.isValid()) {
Log("Error: invalid renderable");
return false;
}
return renderableManager->isShadowCaster(renderableInstance);
}
EMSCRIPTEN_KEEPALIVE void RenderableManager_setCastShadows(TRenderableManager *tRenderableManager, EntityId entityId, bool enabled) {
auto *renderableManager = reinterpret_cast<filament::RenderableManager *>(tRenderableManager);
const auto &entity = utils::Entity::import(entityId);
auto renderableInstance = renderableManager->getInstance(entity);
if (!renderableInstance.isValid()) {
Log("Error: invalid renderable");
return;
}
return renderableManager->setCastShadows(renderableInstance, enabled);
}
EMSCRIPTEN_KEEPALIVE bool RenderableManager_isShadowReceiver(TRenderableManager *tRenderableManager, EntityId entityId) {
auto *renderableManager = reinterpret_cast<filament::RenderableManager *>(tRenderableManager);
const auto &entity = utils::Entity::import(entityId);
auto renderableInstance = renderableManager->getInstance(entity);
if (!renderableInstance.isValid()) {
Log("Error: invalid renderable");
return false;
}
return renderableManager->isShadowReceiver(renderableInstance);
}
EMSCRIPTEN_KEEPALIVE void RenderableManager_setReceiveShadows(TRenderableManager *tRenderableManager, EntityId entityId, bool enabled) {
auto *renderableManager = reinterpret_cast<filament::RenderableManager *>(tRenderableManager);
const auto &entity = utils::Entity::import(entityId);
auto renderableInstance = renderableManager->getInstance(entity);
if (!renderableInstance.isValid()) {
Log("Error: invalid renderable");
return;
}
return renderableManager->setReceiveShadows(renderableInstance, enabled);
}
EMSCRIPTEN_KEEPALIVE bool RenderableManager_getFogEnabled(TRenderableManager *tRenderableManager, EntityId entityId) {
auto *renderableManager = reinterpret_cast<filament::RenderableManager *>(tRenderableManager);
const auto &entity = utils::Entity::import(entityId);