13 #pragma warning(disable : 4068)
16 #include <filament/Engine.h>
29 namespace visualization {
33 static std::shared_ptr<EngineInstance> g_instance =
nullptr;
37 bool EngineInstance::is_headless_ =
false;
38 std::string EngineInstance::resource_path_ =
"";
45 resource_path_ = resource_path;
48 (
"Can't find resource directory: " + resource_path_).c_str());
57 return *Get().resource_manager_;
62 delete resource_manager_;
63 resource_manager_ =
nullptr;
65 filament::Engine::destroy(engine_);
71 g_instance = std::shared_ptr<EngineInstance>(
new EngineInstance());
82 EngineInstance::EngineInstance() {
83 filament::backend::Backend backend = filament::backend::Backend::DEFAULT;
86 backend = filament::backend::Backend::DEFAULT;
89 backend = filament::backend::Backend::OPENGL;
92 backend = filament::backend::Backend::VULKAN;
95 backend = filament::backend::Backend::METAL;
99 filament::backend::Platform* custom_platform =
nullptr;
109 engine_ = filament::Engine::create(backend, custom_platform);
110 resource_manager_ =
new FilamentResourceManager(*engine_);
static filament::Engine & GetInstance()
static void SelectBackend(RenderingType type)
static const std::string & GetResourcePath()
static FilamentResourceManager & GetResourceManager()
static void EnableHeadless()
static void DestroyInstance()
static void SetResourcePath(const std::string &resource_path)
bool DirectoryExists(const std::string &directory)
filament::backend::Platform * CreateEGLHeadlessPlatform()
Generic file read and write utility for python interface.