expose Engine->getSupportedFeatureLevel()

This commit is contained in:
Nick Fisher
2025-07-01 10:07:10 +08:00
parent b3b0e2bae1
commit 0b18caf4ff
4 changed files with 37 additions and 1 deletions

View File

@@ -7,6 +7,7 @@
#include "c_api/TEngine.h"
#include <filament/Camera.h>
#include <filament/backend/DriverEnums.h>
#include <filament/Engine.h>
#include <filament/Fence.h>
#include <filament/IndirectLight.h>
@@ -74,6 +75,21 @@ namespace thermion
return reinterpret_cast<TEngine *>(engine);
}
EMSCRIPTEN_KEEPALIVE TFeatureLevel Engine_getSupportedFeatureLevel(TEngine *tEngine) {
auto *engine = reinterpret_cast<Engine *>(tEngine);
auto featureLevel = engine->getSupportedFeatureLevel();
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 void Engine_destroy(TEngine *tEngine) {
auto *engine = reinterpret_cast<Engine *>(tEngine);
Engine::destroy(engine);