HDK
|
#include <RV_OGLInteropTextureBase.h>
Classes | |
struct | SemaphoreSet |
Public Types | |
enum | RV_OGLInteropOwner { RV_VULKAN, RV_OPENGL } |
Public Member Functions | |
RV_OGLInteropTextureBase () | |
virtual | ~RV_OGLInteropTextureBase () |
void | setCurrentState (RV_OGLInteropOwner owner) |
RV_VKImage * | getRvImage () |
virtual RE_Texture * | getRe ()=0 |
RV_OGLInteropOwner | getCurrentRenderType () const |
RE_TextureID | getGLID () |
SemaphoreSet | getGLToVkSemaphore () |
SemaphoreSet | getVkToGLSemaphore () |
bool | beginTransferToVk (RE_Render *r) |
bool | finishTransferToVk (RV_Instance *r, RV_VKCommandBuffer *cb) |
bool | beginTransferToGL (RV_Instance *r, RV_VKCommandBuffer *cb) |
bool | finishTransferToGL (RE_Render *r) |
bool | submitTransferToGL (RE_RenderContext r) |
bool | submitTransferToVk (RE_RenderContext r) |
bool | 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) |
bool | 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 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 83 of file RV_OGLInteropTextureBase.h.
Enumerator | |
---|---|
RV_VULKAN | |
RV_OPENGL |
Definition at line 93 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 118 of file RV_OGLInteropTextureBase.h.
RE_TextureID RV_OGLInteropTextureBase::getGLID | ( | ) |
|
inline |
Definition at line 122 of file RV_OGLInteropTextureBase.h.
|
pure virtual |
|
inline |
Definition at line 110 of file RV_OGLInteropTextureBase.h.
|
inline |
Definition at line 131 of file RV_OGLInteropTextureBase.h.
|
protected |
|
protected |
|
staticprotected |
|
inline |
Definition at line 107 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 198 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 191 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 190 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 192 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 187 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 186 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 230 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 229 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 224 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 223 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 216 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 182 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 183 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 226 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 220 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 219 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 188 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 185 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 211 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 210 of file RV_OGLInteropTextureBase.h.