#include #include #include #include #include "Log.hpp" #include "TMaterialInstance.h" #ifdef __cplusplus namespace thermion { extern "C" { #endif EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthWrite(TMaterialInstance *materialInstance, bool enabled) { reinterpret_cast<::filament::MaterialInstance *>(materialInstance)->setDepthWrite(enabled); } EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthCulling(TMaterialInstance *materialInstance, bool enabled) { reinterpret_cast<::filament::MaterialInstance *>(materialInstance)->setDepthCulling(enabled); } EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat4(TMaterialInstance *tMaterialInstance, const char *propertyName, double x, double y, double z, double w) { auto *materialInstance = reinterpret_cast<::filament::MaterialInstance *>(tMaterialInstance); filament::math::float4 data{static_cast(x), static_cast(y), static_cast(z), static_cast(w)}; materialInstance->setParameter(propertyName, data); } EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat2(TMaterialInstance *materialInstance, const char *propertyName, double x, double y) { filament::math::float2 data{static_cast(x), static_cast(y)}; reinterpret_cast<::filament::MaterialInstance *>(materialInstance)->setParameter(propertyName, data); } EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterFloat(TMaterialInstance *materialInstance, const char *propertyName, double value) { reinterpret_cast<::filament::MaterialInstance *>(materialInstance)->setParameter(propertyName, static_cast(value)); } EMSCRIPTEN_KEEPALIVE void MaterialInstance_setParameterInt(TMaterialInstance *materialInstance, const char *propertyName, int value) { reinterpret_cast<::filament::MaterialInstance *>(materialInstance)->setParameter(propertyName, value); } EMSCRIPTEN_KEEPALIVE void MaterialInstance_setDepthFunc(TMaterialInstance *tMaterialInstance, TDepthFunc tDepthFunc) { auto *materialInstance = reinterpret_cast<::filament::MaterialInstance *>(tMaterialInstance); auto depthFunc = static_cast(tDepthFunc); materialInstance->setDepthFunc(depthFunc); } #ifdef __cplusplus } } #endif