11 #include <unordered_map>
12 #include <unordered_set>
27 namespace visualization {
30 class FilamentMaterialModifier;
31 class FilamentRenderToBuffer;
32 class FilamentResourceManager;
39 void* native_drawable,
60 std::function<
void(std::shared_ptr<core::Tensor>)>
74 bool srgb =
false)
override;
76 bool srgb =
false)
override;
78 bool srgb =
false)
override;
80 const std::shared_ptr<geometry::Image>
image,
94 std::shared_ptr<visualization::rendering::RenderToBuffer>
107 filament::Engine& engine_;
108 filament::Renderer* renderer_ =
nullptr;
109 filament::SwapChain* swap_chain_ =
nullptr;
110 filament::SwapChain* swap_chain_cached_ =
nullptr;
112 std::unordered_map<REHandle_abstract, std::unique_ptr<FilamentScene>>
114 std::unique_ptr<FilamentScene> gui_scene_;
116 std::unique_ptr<FilamentMaterialModifier> materials_modifier_;
119 std::unordered_set<std::shared_ptr<FilamentRenderToBuffer>>
122 bool frame_started_ =
false;
123 std::function<void()> on_after_draw_;
124 bool needs_wait_after_draw_ =
false;
std::shared_ptr< core::Tensor > image
std::function< void(std::shared_ptr< core::Tensor >)> callback
The Image class stores image with customizable rows, cols, channels, dtype and device.
std::shared_ptr< visualization::rendering::RenderToBuffer > CreateBufferRenderer() override
MaterialInstanceHandle AddMaterialInstance(const MaterialHandle &material) override
IndirectLightHandle AddIndirectLight(const ResourceLoadRequest &request) override
void ConvertToGuiScene(const SceneHandle &id)
virtual void SetClearColor(const Eigen::Vector4f &color) override
SceneHandle CreateScene() override
filament::Renderer * GetNative()
FilamentRenderer(filament::Engine &engine, void *native_drawable, FilamentResourceManager &resource_mgr)
void RemoveMaterialInstance(const MaterialInstanceHandle &id) override
void RemoveIndirectLight(const IndirectLightHandle &id) override
void RemoveTexture(const TextureHandle &id) override
bool UpdateTexture(TextureHandle texture, const std::shared_ptr< geometry::Image > image, bool srgb) override
~FilamentRenderer() override
void RemoveSkybox(const SkyboxHandle &id) override
void UpdateSwapChain() override
void DestroyScene(const SceneHandle &id) override
Scene * GetScene(const SceneHandle &id) const override
TextureHandle AddTexture(const ResourceLoadRequest &request, bool srgb=false) override
SkyboxHandle AddSkybox(const ResourceLoadRequest &request) override
void SetOnAfterDraw(std::function< void()> callback) override
MaterialModifier & ModifyMaterial(const MaterialHandle &id) override
void BeginFrame() override
MaterialHandle AddMaterial(const ResourceLoadRequest &request) override
void RequestReadPixels(int width, int height, std::function< void(std::shared_ptr< core::Tensor >)> callback) override
FilamentScene * GetGuiScene() const
void UpdateBitmapSwapChain(int width, int height) override
Generic file read and write utility for python interface.