HDK
|
#include <RV_OGLInteropTextureBase.h>
Classes | |
struct | SemaphoreSet |
Public Types | |
enum | RV_OGLInteropOwner { RV_VULKAN, RV_OPENGL } |
Static Public Member Functions | |
static RV_OGLInteropTexturePtr | create (RE_TextureDimension dim) |
Public Attributes | |
enum RV_OGLInteropTextureBase::RV_OGLInteropOwner | myCurOwner |
Protected Member Functions | |
bool | assignMemory (RV_Instance *inst, VE_Memory *mem) |
void | deleteImage (RV_Instance *inst) |
bool | allocateSemaphores (RV_Instance *inst) |
void | deleteSemaphores (RV_Instance *inst) |
bool | importMemory (RE_Render *r) |
bool | importOglSemaphores (RE_Render *r) |
void | deleteMemory (RE_Render *r) |
void | deleteOglSemaphores (RE_Render *r) |
void | deleteMemoryHandle () |
void | deleteSemaphoreHandles () |
Static Protected Member Functions | |
static bool | queryMemoryHandleValid (RV_Instance *inst, RV_VKInteropImageCreateInfo *info) |
Protected Attributes | |
UT_UniquePtr< RV_VKImage > | myRvImg |
VE_Memory * | myRvMem |
VkDeviceMemory | myVkMem = VK_NULL_HANDLE |
VkDeviceSize | myMemSize = 0 |
VkDeviceSize | myMemOffset = 0 |
VkImage | myVkImg = VK_NULL_HANDLE |
VkImageLayout | myLastLayout = VK_IMAGE_LAYOUT_UNDEFINED |
VkAccessFlags | myLastAccess = 0 |
VkPipelineStageFlags | myLastStage = 0 |
std::atomic_bool | myIsTransferToGLWaiting = false |
VkSemaphore | myVkSemVkToGL = VK_NULL_HANDLE |
VkSemaphore | myVkSemGLToVk = VK_NULL_HANDLE |
int | myRERenderID = -1 |
handle | myShareSemVkToGL = 0 |
handle | myShareSemGLToVk = 0 |
GLuint | myOglSemVkToGL = 0 |
GLuint | myOglSemGLToVk = 0 |
handle | myShareMem = 0 |
GLuint | myOglMem = 0 |
GLuint | myOglID = 0 |
Set of resources needed to share a texture between OpenGL and Vulkan. Can create a vulkan image, or recieve an alloacted memory. Creates semaphores for sync, and exports the handles for the memory and semaphores then imports them into an openGL context.
Definition at line 88 of file RV_OGLInteropTextureBase.h.
Enumerator | |
---|---|
RV_VULKAN | |
RV_OPENGL |
Definition at line 98 of file RV_OGLInteropTextureBase.h.
RV_OGLInteropTextureBase::RV_OGLInteropTextureBase | ( | ) |
|
virtual |
bool RV_OGLInteropTextureBase::allocateImage | ( | RV_Instance * | inst, |
RV_ImageDim | image_type, | ||
VkFormat | format, | ||
size_t | width, | ||
size_t | height, | ||
size_t | depth = 1 , |
||
int | levels = 1 , |
||
int | layers = 1 , |
||
int | samples = 1 |
||
) |
|
protected |
|
protected |
bool RV_OGLInteropTextureBase::beginTransferToGL | ( | RV_Instance * | r, |
RV_VKCommandBuffer * | cb | ||
) |
bool RV_OGLInteropTextureBase::beginTransferToVk | ( | RE_Render * | r | ) |
bool RV_OGLInteropTextureBase::checkImageParams | ( | RV_Instance * | inst, |
RV_ImageDim | image_type, | ||
VkFormat | format, | ||
size_t | width, | ||
size_t | height, | ||
size_t | depth = 1 , |
||
int | levels = 1 , |
||
int | layers = 1 , |
||
int | samples = 1 |
||
) |
|
static |
|
protected |
|
protected |
|
protected |
|
protected |
bool RV_OGLInteropTextureBase::finishTransferToGL | ( | RE_Render * | r | ) |
bool RV_OGLInteropTextureBase::finishTransferToVk | ( | RV_Instance * | r, |
RV_VKCommandBuffer * | cb | ||
) |
|
inline |
Definition at line 127 of file RV_OGLInteropTextureBase.h.
RE_TextureID RV_OGLInteropTextureBase::getGLID | ( | ) |
|
inline |
Definition at line 131 of file RV_OGLInteropTextureBase.h.
|
pure virtual |
|
inline |
Definition at line 115 of file RV_OGLInteropTextureBase.h.
|
inline |
Definition at line 120 of file RV_OGLInteropTextureBase.h.
|
inline |
Definition at line 140 of file RV_OGLInteropTextureBase.h.
|
protected |
|
protected |
|
inline |
Definition at line 129 of file RV_OGLInteropTextureBase.h.
|
staticprotected |
|
inline |
Definition at line 112 of file RV_OGLInteropTextureBase.h.
bool RV_OGLInteropTextureBase::submitTransferToGL | ( | RE_RenderContext | r | ) |
bool RV_OGLInteropTextureBase::submitTransferToVk | ( | RE_RenderContext | r | ) |
enum RV_OGLInteropTextureBase::RV_OGLInteropOwner RV_OGLInteropTextureBase::myCurOwner |
|
protected |
Definition at line 206 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 199 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 198 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 200 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 195 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 194 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 238 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 237 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 232 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 231 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 224 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 190 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 191 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 234 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 228 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 227 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 196 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 193 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 219 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 218 of file RV_OGLInteropTextureBase.h.