#include <GaussianSplatVulkanInteropContext.h>
Describes a single GPU image that is owned by Vulkan but visible to OpenGL via the EXT_memory_object mechanism.
Lifetimesemantics:
- CreateSharedColorImage() / CreateSharedDepthImage() allocates the Vulkan image with a dedicated exportable allocation and simultaneously imports it into OpenGL, returning a fully-initialised SharedImageDesc.
- The gl_texture name (uint32_t) is passed to FilamentResourceManager::CreateImportedTexture() exactly as today.
- DestroySharedImage() first deletes the GL memory-object and texture, then the Vulkan image and memory.
◆ IsValid()
| bool open3d::visualization::rendering::SharedImageDesc::IsValid |
( |
| ) |
const |
|
inline |
◆ current_layout
| VkImageLayout open3d::visualization::rendering::SharedImageDesc::current_layout = VK_IMAGE_LAYOUT_UNDEFINED |
Vulkan image layout currently assumed by the Vulkan side. Updated after each VkImageMemoryBarrier.
◆ format
◆ gl_memory_object
| std::uint32_t open3d::visualization::rendering::SharedImageDesc::gl_memory_object = 0 |
glCreateMemoryObjectsEXT result
OpenGL objects wrapping the exported memory. These have a lifetime equal to vk_memory; destroy them before vkFreeMemory.
◆ gl_texture
| std::uint32_t open3d::visualization::rendering::SharedImageDesc::gl_texture = 0 |
GL texture name; pass to Filament.
◆ height
| std::uint32_t open3d::visualization::rendering::SharedImageDesc::height = 0 |
◆ vk_image
| VkImage open3d::visualization::rendering::SharedImageDesc::vk_image = VK_NULL_HANDLE |
◆ vk_memory
| VkDeviceMemory open3d::visualization::rendering::SharedImageDesc::vk_memory = VK_NULL_HANDLE |
Dedicated exportable alloc.
◆ width
| std::uint32_t open3d::visualization::rendering::SharedImageDesc::width = 0 |
Dimensions and format (stored for resize/recreate checks).
The documentation for this struct was generated from the following file: