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, RV_VKMemory *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) |
Static Protected Member Functions | |
static bool | queryMemoryHandleValid (RV_Instance *inst, RV_VKInteropImageCreateInfo *info) |
Protected Attributes | |
UT_UniquePtr< RV_VKImage > | myRvImg |
RV_VKMemory * | 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 81 of file RV_OGLInteropTextureBase.h.
Enumerator | |
---|---|
RV_VULKAN | |
RV_OPENGL |
Definition at line 91 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 |
bool RV_OGLInteropTextureBase::finishTransferToGL | ( | RE_Render * | r | ) |
bool RV_OGLInteropTextureBase::finishTransferToVk | ( | RV_Instance * | r, |
RV_VKCommandBuffer * | cb | ||
) |
|
inline |
Definition at line 116 of file RV_OGLInteropTextureBase.h.
RE_TextureID RV_OGLInteropTextureBase::getGLID | ( | ) |
|
inline |
Definition at line 120 of file RV_OGLInteropTextureBase.h.
|
pure virtual |
|
inline |
Definition at line 108 of file RV_OGLInteropTextureBase.h.
|
inline |
Definition at line 129 of file RV_OGLInteropTextureBase.h.
|
protected |
|
protected |
|
staticprotected |
|
inline |
Definition at line 105 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 196 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 189 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 188 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 190 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 185 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 184 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 222 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 221 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 214 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 180 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 181 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 224 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 218 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 217 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 186 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 183 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 209 of file RV_OGLInteropTextureBase.h.
|
protected |
Definition at line 208 of file RV_OGLInteropTextureBase.h.