expose Engine->getSupportedFeatureLevel()
This commit is contained in:
@@ -25,4 +25,14 @@ enum Backend {
|
|||||||
4 => NOOP,
|
4 => NOOP,
|
||||||
_ => throw ArgumentError("Unknown value for TBackend: $value"),
|
_ => 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;
|
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 {
|
enum TPrimitiveType {
|
||||||
// don't change the enums values (made to match GL)
|
// don't change the enums values (made to match GL)
|
||||||
PRIMITIVETYPE_POINTS = 0, //!< points
|
PRIMITIVETYPE_POINTS = 0, //!< points
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ EMSCRIPTEN_KEEPALIVE TEngine *Engine_create(
|
|||||||
bool disableHandleUseAfterFreeCheck
|
bool disableHandleUseAfterFreeCheck
|
||||||
);
|
);
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE TFeatureLevel Engine_getSupportedFeatureLevel(TEngine *tEngine);
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void Engine_destroy(TEngine *tEngine);
|
EMSCRIPTEN_KEEPALIVE void Engine_destroy(TEngine *tEngine);
|
||||||
EMSCRIPTEN_KEEPALIVE TRenderer *Engine_createRenderer(TEngine *tEngine);
|
EMSCRIPTEN_KEEPALIVE TRenderer *Engine_createRenderer(TEngine *tEngine);
|
||||||
EMSCRIPTEN_KEEPALIVE TSwapChain *Engine_createSwapChain(TEngine *tEngine, void *window, uint64_t flags);
|
EMSCRIPTEN_KEEPALIVE TSwapChain *Engine_createSwapChain(TEngine *tEngine, void *window, uint64_t flags);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include "c_api/TEngine.h"
|
#include "c_api/TEngine.h"
|
||||||
|
|
||||||
#include <filament/Camera.h>
|
#include <filament/Camera.h>
|
||||||
|
#include <filament/backend/DriverEnums.h>
|
||||||
#include <filament/Engine.h>
|
#include <filament/Engine.h>
|
||||||
#include <filament/Fence.h>
|
#include <filament/Fence.h>
|
||||||
#include <filament/IndirectLight.h>
|
#include <filament/IndirectLight.h>
|
||||||
@@ -74,6 +75,21 @@ namespace thermion
|
|||||||
return reinterpret_cast<TEngine *>(engine);
|
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) {
|
EMSCRIPTEN_KEEPALIVE void Engine_destroy(TEngine *tEngine) {
|
||||||
auto *engine = reinterpret_cast<Engine *>(tEngine);
|
auto *engine = reinterpret_cast<Engine *>(tEngine);
|
||||||
Engine::destroy(engine);
|
Engine::destroy(engine);
|
||||||
|
|||||||
Reference in New Issue
Block a user