expose Material->getFeautureLevel

This commit is contained in:
Nick Fisher
2025-07-01 10:07:35 +08:00
parent 0b18caf4ff
commit 506d2fb562
2 changed files with 16 additions and 0 deletions

View File

@@ -73,6 +73,7 @@ extern "C"
typedef enum TTransparencyMode TTransparencyMode;
EMSCRIPTEN_KEEPALIVE TMaterialInstance *Material_createInstance(TMaterial *tMaterial);
EMSCRIPTEN_KEEPALIVE TFeatureLevel Material_getFeatureLevel(TMaterial *tMaterial);
EMSCRIPTEN_KEEPALIVE TMaterial *Material_createImageMaterial(TEngine *tEngine);
EMSCRIPTEN_KEEPALIVE TMaterial *Material_createGridMaterial(TEngine *tEngine);
EMSCRIPTEN_KEEPALIVE TMaterial *Material_createGizmoMaterial(TEngine *tEngine);

View File

@@ -34,6 +34,21 @@ namespace thermion
return reinterpret_cast<TMaterialInstance *>(instance);
}
EMSCRIPTEN_KEEPALIVE TFeatureLevel Material_getFeatureLevel(TMaterial *tMaterial) {
auto *material = reinterpret_cast<filament::Material *>(tMaterial);
auto featureLevel = material->getFeatureLevel();
switch(featureLevel) {
case filament::backend::FeatureLevel::FEATURE_LEVEL_0:
return FEATURE_LEVEL_0;
case filament::backend::FeatureLevel::FEATURE_LEVEL_1:
return FEATURE_LEVEL_1;
case filament::backend::FeatureLevel::FEATURE_LEVEL_2:
return FEATURE_LEVEL_2;
case filament::backend::FeatureLevel::FEATURE_LEVEL_3:
return FEATURE_LEVEL_3;
}
}
EMSCRIPTEN_KEEPALIVE TMaterial *Material_createImageMaterial(TEngine *tEngine) {
auto *engine = reinterpret_cast<filament::Engine *>(tEngine);
auto *material = filament::Material::Builder()