internal: expose more RenderableManager/LightManager bindings
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
|
||||
#include <filament/MaterialInstance.h>
|
||||
#include <filament/RenderableManager.h>
|
||||
#include <utils/Entity.h>
|
||||
@@ -8,7 +7,6 @@
|
||||
|
||||
namespace thermion
|
||||
{
|
||||
|
||||
extern "C"
|
||||
{
|
||||
using namespace filament;
|
||||
@@ -47,5 +45,56 @@ namespace thermion
|
||||
auto renderableInstance = renderableManager->getInstance(entity);
|
||||
return renderableInstance.isValid();
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE bool RenderableManager_hasComponent(TRenderableManager *tRenderableManager, EntityId entityId) {
|
||||
auto *renderableManager = reinterpret_cast<filament::RenderableManager *>(tRenderableManager);
|
||||
const auto &entity = utils::Entity::import(entityId);
|
||||
return renderableManager->hasComponent(entity);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE bool RenderableManager_empty(TRenderableManager *tRenderableManager) {
|
||||
auto *renderableManager = reinterpret_cast<filament::RenderableManager *>(tRenderableManager);
|
||||
return renderableManager->empty();
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE bool RenderableManager_getLightChannel(TRenderableManager *tRenderableManager, EntityId entityId, unsigned int channel) {
|
||||
auto *renderableManager = reinterpret_cast<filament::RenderableManager *>(tRenderableManager);
|
||||
const auto &entity = utils::Entity::import(entityId);
|
||||
auto renderableInstance = renderableManager->getInstance(entity);
|
||||
if (!renderableInstance.isValid()) {
|
||||
return false;
|
||||
}
|
||||
return renderableManager->getLightChannel(renderableInstance, channel);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE bool RenderableManager_isShadowCaster(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()) {
|
||||
return false;
|
||||
}
|
||||
return renderableManager->isShadowCaster(renderableInstance);
|
||||
}
|
||||
|
||||
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()) {
|
||||
return false;
|
||||
}
|
||||
return renderableManager->isShadowReceiver(renderableInstance);
|
||||
}
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE bool RenderableManager_getFogEnabled(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()) {
|
||||
return false;
|
||||
}
|
||||
return renderableManager->getFogEnabled(renderableInstance);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user