add helper method to convert between TStencilFace and MaterialInstance::StencilFace (not strictly necessary, but will help if something upstream changes in future
This commit is contained in:
@@ -176,13 +176,25 @@ namespace thermion
|
|||||||
materialInstance->setStencilOpDepthStencilPass(op, face);
|
materialInstance->setStencilOpDepthStencilPass(op, face);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
filament::MaterialInstance::StencilFace toStencilFace(TStencilFace tface) {
|
||||||
|
switch(tface) {
|
||||||
|
case STENCIL_FACE_FRONT: return filament::MaterialInstance::StencilFace::FRONT;
|
||||||
|
case STENCIL_FACE_BACK: return filament::MaterialInstance::StencilFace::BACK;
|
||||||
|
case STENCIL_FACE_FRONT_AND_BACK: return filament::MaterialInstance::StencilFace::FRONT_AND_BACK;
|
||||||
|
default: throw std::invalid_argument("Invalid TStencilFace value");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setStencilCompareFunction(TMaterialInstance *tMaterialInstance,
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setStencilCompareFunction(TMaterialInstance *tMaterialInstance,
|
||||||
TSamplerCompareFunc tFunc, TStencilFace tFace)
|
TSamplerCompareFunc tFunc, TStencilFace tFace)
|
||||||
{
|
{
|
||||||
auto *materialInstance = reinterpret_cast<::filament::MaterialInstance *>(tMaterialInstance);
|
auto *materialInstance = reinterpret_cast<::filament::MaterialInstance *>(tMaterialInstance);
|
||||||
auto func = static_cast<filament::MaterialInstance::StencilCompareFunc>(tFunc);
|
auto func = static_cast<filament::MaterialInstance::StencilCompareFunc>(tFunc);
|
||||||
auto face = static_cast<filament::MaterialInstance::StencilFace>(tFace);
|
auto face = toStencilFace(tFace);
|
||||||
materialInstance->setStencilCompareFunction(func, face);
|
|
||||||
|
materialInstance->setStencilCompareFunction(
|
||||||
|
func,
|
||||||
|
face);
|
||||||
}
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setStencilReferenceValue(TMaterialInstance *tMaterialInstance,
|
EMSCRIPTEN_KEEPALIVE void MaterialInstance_setStencilReferenceValue(TMaterialInstance *tMaterialInstance,
|
||||||
|
|||||||
Reference in New Issue
Block a user