11 #include <unordered_map>
12 #include <unordered_set>
44 namespace visualization {
106 #if defined(__APPLE__)
108 TextureHandle CreateImportedMTLTexture(std::uintptr_t mtl_texture,
124 const std::shared_ptr<geometry::Image>
image,
140 size_t index_stride);
161 template <
class ResourceType>
163 std::shared_ptr<ResourceType>
ptr;
173 filament::Engine& engine_;
175 template <
class ResourceType>
176 using ResourcesContainer =
177 std::unordered_map<REHandle_abstract, BoxedResource<ResourceType>>;
179 ResourcesContainer<filament::MaterialInstance> material_instances_;
180 ResourcesContainer<filament::Material> materials_;
181 ResourcesContainer<filament::Texture> textures_;
182 ResourcesContainer<filament::RenderTarget> render_targets_;
183 ResourcesContainer<filament::IndirectLight> ibls_;
184 ResourcesContainer<filament::Skybox> skyboxes_;
185 ResourcesContainer<filament::VertexBuffer> vertex_buffers_;
186 ResourcesContainer<filament::IndexBuffer> index_buffers_;
192 std::unordered_map<REHandle_abstract, std::unordered_set<REHandle_abstract>>
196 std::unordered_map<uint64_t, TextureHandle> texture_cache_;
198 filament::Texture* LoadTextureFromImage(
199 const std::shared_ptr<geometry::Image>&
image,
bool srgb);
202 filament::Texture* LoadFilledTexture(
const Eigen::Vector3f&
color,
std::shared_ptr< core::Tensor > image
Definition: FilamentRenderer.cpp:302
filament::Texture::InternalFormat format
Definition: FilamentResourceManager.cpp:202
math::float4 color
Definition: LineSetBuffers.cpp:45
double t
Definition: SurfaceReconstructionPoisson.cpp:172
std::vector< UVAtlasVertex > vb
Definition: UVUnwrapping.cpp:27
The Image class stores image with customizable width, height, num of channels and bytes per channel.
Definition: Image.h:34
The Image class stores image with customizable rows, cols, channels, dtype and device.
Definition: Image.h:29
Definition: FilamentResourceManager.h:50
std::weak_ptr< filament::RenderTarget > GetRenderTarget(const RenderTargetHandle &id)
Definition: FilamentResourceManager.cpp:819
static const MaterialInstanceHandle kNormalsMaterial
Definition: FilamentResourceManager.h:67
void DestroyAll()
Definition: FilamentResourceManager.cpp:844
RenderTargetHandle CreateColorOnlyRenderTarget(TextureHandle color)
Definition: FilamentResourceManager.cpp:633
static const MaterialHandle kInfinitePlaneShader
Definition: FilamentResourceManager.h:63
std::weak_ptr< filament::IndexBuffer > GetIndexBuffer(const IndexBufferHandle &id)
Definition: FilamentResourceManager.cpp:839
static const TextureHandle kDefaultColorMap
Definition: FilamentResourceManager.h:70
VertexBufferHandle AddVertexBuffer(filament::VertexBuffer *vertex_buffer)
Definition: FilamentResourceManager.cpp:768
SkyboxHandle CreateColorSkybox(const Eigen::Vector3f &color)
Definition: FilamentResourceManager.cpp:709
static const TextureHandle kDefaultNormalMap
Definition: FilamentResourceManager.h:71
RenderTargetHandle CreateRenderTarget(TextureHandle color, TextureHandle depth)
Definition: FilamentResourceManager.cpp:609
~FilamentResourceManager()
Definition: FilamentResourceManager.cpp:390
std::weak_ptr< filament::Material > GetMaterial(const MaterialHandle &id)
Definition: FilamentResourceManager.cpp:804
IndirectLightHandle CreateIndirectLight(const ResourceLoadRequest &request)
Definition: FilamentResourceManager.cpp:654
TextureHandle CreateImportedTexture(std::uint32_t gl_handle, int width, int height, int format, int usage)
Definition: FilamentResourceManager.cpp:593
std::weak_ptr< filament::Skybox > GetSkybox(const SkyboxHandle &id)
Definition: FilamentResourceManager.cpp:829
FilamentResourceManager(filament::Engine &engine)
Definition: FilamentResourceManager.cpp:385
static const MaterialHandle kDefaultLineShader
Definition: FilamentResourceManager.h:64
static const MaterialHandle kDefaultUnlitBackgroundShader
Definition: FilamentResourceManager.h:62
static const MaterialHandle kDefaultDepthShader
Definition: FilamentResourceManager.h:58
static const MaterialHandle kDefaultUnlit
Definition: FilamentResourceManager.h:55
static const MaterialHandle kDefaultUnlitSolidColorShader
Definition: FilamentResourceManager.h:61
static const MaterialHandle kDefaultUnlitGradientShader
Definition: FilamentResourceManager.h:60
TextureHandle CreateColorAttachmentTexture(int width, int height)
Definition: FilamentResourceManager.cpp:561
static const MaterialHandle kDefaultUnlitPolygonOffsetShader
Definition: FilamentResourceManager.h:65
IndexBufferHandle CreateIndexBuffer(size_t indices_count, size_t index_stride)
Definition: FilamentResourceManager.cpp:783
void ReuseVertexBuffer(VertexBufferHandle vb)
Definition: FilamentResourceManager.cpp:774
TextureHandle CreateDepthAttachmentTexture(int width, int height)
Definition: FilamentResourceManager.cpp:578
std::weak_ptr< filament::MaterialInstance > GetMaterialInstance(const MaterialInstanceHandle &id)
Definition: FilamentResourceManager.cpp:810
static const MaterialHandle kDefaultDepthValueShader
Definition: FilamentResourceManager.h:59
MaterialInstanceHandle CreateMaterialInstance(const MaterialHandle &id)
Definition: FilamentResourceManager.cpp:435
static const MaterialHandle kDefaultUnlitWithTransparency
Definition: FilamentResourceManager.h:56
TextureHandle CreateTexture(const char *path, bool srgb)
Definition: FilamentResourceManager.cpp:448
static const MaterialHandle kDefaultNormalShader
Definition: FilamentResourceManager.h:57
static const MaterialHandle kDefaultLitSSR
Definition: FilamentResourceManager.h:54
static const MaterialInstanceHandle kColorMapMaterial
Definition: FilamentResourceManager.h:68
static const MaterialInstanceHandle kDepthMaterial
Definition: FilamentResourceManager.h:66
SkyboxHandle CreateSkybox(const ResourceLoadRequest &request)
Definition: FilamentResourceManager.cpp:723
std::weak_ptr< filament::Texture > GetTexture(const TextureHandle &id)
Definition: FilamentResourceManager.cpp:814
MaterialHandle CreateMaterial(const void *material_data, size_t data_size)
Definition: FilamentResourceManager.cpp:392
static const TextureHandle kDefaultTexture
Definition: FilamentResourceManager.h:69
TextureHandle CreateTextureFilled(const Eigen::Vector3f &color, size_t dimension)
Definition: FilamentResourceManager.cpp:511
bool UpdateTexture(TextureHandle texture, const std::shared_ptr< geometry::Image > image, bool srgb)
Definition: FilamentResourceManager.cpp:520
void Destroy(const REHandle_abstract &id)
Definition: FilamentResourceManager.cpp:862
static const MaterialHandle kDefaultLitWithTransparency
Definition: FilamentResourceManager.h:53
std::weak_ptr< filament::VertexBuffer > GetVertexBuffer(const VertexBufferHandle &id)
Definition: FilamentResourceManager.cpp:834
std::weak_ptr< filament::IndirectLight > GetIndirectLight(const IndirectLightHandle &id)
Definition: FilamentResourceManager.cpp:825
static const MaterialHandle kDefaultLit
Definition: FilamentResourceManager.h:52
Definition: Renderer.h:38
Definition: FilamentEngine.h:15
const char const char value recording_handle imu_sample recording_handle uint8_t size_t data_size k4a_record_configuration_t config target_format k4a_capture_t capture_handle k4a_imu_sample_t imu_sample playback_handle k4a_logging_message_cb_t void min_level device_handle k4a_imu_sample_t timeout_in_ms capture_handle capture_handle capture_handle image_handle temperature_c k4a_image_t image_handle uint8_t image_handle image_handle image_handle image_handle uint32_t
Definition: K4aPlugin.cpp:548
Definition: PinholeCameraIntrinsic.cpp:16
Definition: FilamentResourceManager.h:162
std::shared_ptr< ResourceType > operator->()
Definition: FilamentResourceManager.h:169
size_t use_count
Definition: FilamentResourceManager.h:164
BoxedResource()
Definition: FilamentResourceManager.h:166
std::shared_ptr< ResourceType > ptr
Definition: FilamentResourceManager.h:163
BoxedResource(std::shared_ptr< ResourceType > p)
Definition: FilamentResourceManager.h:167
Definition: RendererHandle.h:47
Definition: RendererHandle.h:90