expose Engine->getSupportedFeatureLevel()
This commit is contained in:
@@ -25,4 +25,14 @@ enum Backend {
|
||||
4 => NOOP,
|
||||
_ => throw ArgumentError("Unknown value for TBackend: $value"),
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
enum FeatureLevel {
|
||||
FeatureLevel0(0),
|
||||
FeatureLevel1(1),
|
||||
FeatureLevel2(2),
|
||||
FeatureLevel3(3);
|
||||
|
||||
final int value;
|
||||
const FeatureLevel(this.value);
|
||||
}
|
||||
|
||||
@@ -100,6 +100,14 @@ extern "C"
|
||||
};
|
||||
typedef enum TGizmoType TGizmoType;
|
||||
|
||||
enum TFeatureLevel {
|
||||
FEATURE_LEVEL_0 = 0,
|
||||
FEATURE_LEVEL_1 = 1,
|
||||
FEATURE_LEVEL_2 = 2,
|
||||
FEATURE_LEVEL_3 = 3
|
||||
};
|
||||
typedef enum TFeatureLevel TFeatureLevel;
|
||||
|
||||
enum TPrimitiveType {
|
||||
// don't change the enums values (made to match GL)
|
||||
PRIMITIVETYPE_POINTS = 0, //!< points
|
||||
|
||||
@@ -28,6 +28,8 @@ EMSCRIPTEN_KEEPALIVE TEngine *Engine_create(
|
||||
bool disableHandleUseAfterFreeCheck
|
||||
);
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE TFeatureLevel Engine_getSupportedFeatureLevel(TEngine *tEngine);
|
||||
|
||||
EMSCRIPTEN_KEEPALIVE void Engine_destroy(TEngine *tEngine);
|
||||
EMSCRIPTEN_KEEPALIVE TRenderer *Engine_createRenderer(TEngine *tEngine);
|
||||
EMSCRIPTEN_KEEPALIVE TSwapChain *Engine_createSwapChain(TEngine *tEngine, void *window, uint64_t flags);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user