HDK
|
#include <RV_VKImage.h>
Public Member Functions | |
const RV_VKImageCreateInfo & | getInfo () const |
The image properties. More... | |
VkImage | getVkImage () |
RV_VKMemory & | getMemory () |
RV_VKSampler * | getSampler () |
VkImageLayout | getLayout () const |
exint | getID () const |
RV_VKImageView & | getFullView () |
RV_VKImageView & | getPrimaryView () |
RV_VKImageView | createView () |
Create new VkImageView for whole VkImage range. More... | |
RV_VKImageView | createView (const VkImageSubresourceRange &subres) |
Create new VkImageView for specific VkImage subresource range. More... | |
RV_VKImageView | createView (const VkImageSubresourceRange &subres, VkImageViewType type) |
Create new VkImageView for specific VkImage subresource range, with type. More... | |
RV_VKImageView | createView (VkImageViewType type) |
Create new VkImageView for specific type, trying to use full subresource range. More... | |
void | transitionImage (RV_VKCommandBuffer *cb, VkImageLayout new_layout, VkImageUsageFlags new_usage, bool keep_data=true, VkImageSubresourceRange subres=VkImageSubresourceRange{}) |
Record a command to transition image into new layout. More... | |
void | transitionToSampling (RV_VKCommandBuffer *cb) |
Record a command to transition the image for sampling in a shader. More... | |
template<typename T , typename std::enable_if<!std::is_pointer< T >::value, int >::type = 0> | |
bool | uploadData (RV_Render *r, const T &data, int level=0, int index=0) |
Upload data to the image. Must be in a state for upload. More... | |
bool | uploadData (RV_Render *r, const void *data, exint data_size, int level=0, int index=0) |
bool | uploadData (RV_Instance *inst, RV_VKCommandBuffer *cb, const void *data, exint data_size, int level=0, int index=0) |
bool | uploadData (RV_Render *r, RV_VKBuffer *buf, int level=0, int index=0) |
Copy image data to this image from buffer . More... | |
bool | uploadData (RV_Instance *inst, RV_VKCommandBuffer *cb, RV_VKBuffer *buf, int level=0, int index=0) |
bool | copyData (RV_Render *r, RV_VKImage *other) |
Copy image data from this image to other . More... | |
void | generateMipmaps (RV_Render *r) |
Generate higher mipmap levels from the base level. More... | |
bool | downloadData (RV_Render *r, void *data, exint data_size, int level=0, int index=0, bool primary_aspect=true) |
Download image data into data . More... | |
virtual | ~RV_VKImage () |
void | print () const |
Debug print out of image properties (not image data). More... | |
Static Public Member Functions | |
static RV_VKImagePtr | allocateImage (RV_Instance *inst, RV_VKImageCreateInfo *info, const char *name=nullptr) |
Creates new Image based on create info. More... | |
static UT_UniquePtr< RV_VKSampler > | allocateSampler (RV_Instance *inst, const RV_VKImageCreateInfo *img_info) |
static bool | queryIsUsable (RV_Instance *inst, RV_VKImageCreateInfo *info) |
Public Attributes | |
UT_StringHolder | myName |
VkImageLayout | myLastLayout = VK_IMAGE_LAYOUT_UNDEFINED |
VkAccessFlags | myLastAccess = 0 |
VkImageUsageFlags | myLastUsage = 0 |
VkPipelineStageFlags | myLastStage = 0 |
uint32_t | myLastQueueFam = 0 |
RV_StageGroup | myWaitingBarrierStage = RV_STAGE_NONE |
Protected Member Functions | |
RV_VKImage (RV_Instance *inst, const RV_VKImageCreateInfo *img_info, VkImage vk_img, RV_VKMemoryPtr mem, RV_VKImageViewPtr view, RV_VKImageViewPtr primary_view, RV_VKSamplerPtr sampler) | |
Static Protected Member Functions | |
static void | deleteImage (RV_Instance *inst, VkImage *img, VkDeviceMemory *mem) |
Protected Attributes | |
RV_Instance * | myInst = nullptr |
VkImage | myVkImg = VK_NULL_HANDLE |
exint | myId = 0 |
UT_UniquePtr< const RV_VKImageCreateInfo > | myCreateInfo |
UT_UniquePtr< RV_VKImageView > | myView |
UT_UniquePtr< RV_VKImageView > | myPrimaryView |
UT_UniquePtr< RV_VKMemory > | myMemory |
UT_UniquePtr< RV_VKSampler > | mySampler |
Friends | |
class | RV_VKImageCreateInfo |
Class hodling VkImage handle and bound Memory allocation cleans up resources on destruction
Definition at line 381 of file RV_VKImage.h.
|
virtual |
|
protected |
|
static |
Creates new Image based on create info.
|
static |
Allocate a new Image Sampler using parameters from img_info, ignoring non-sampler parameters
bool RV_VKImage::copyData | ( | RV_Render * | r, |
RV_VKImage * | other | ||
) |
Copy image data from this image to other
.
RV_VKImageView RV_VKImage::createView | ( | ) |
Create new VkImageView for whole VkImage range.
RV_VKImageView RV_VKImage::createView | ( | const VkImageSubresourceRange & | subres | ) |
Create new VkImageView for specific VkImage subresource range.
RV_VKImageView RV_VKImage::createView | ( | const VkImageSubresourceRange & | subres, |
VkImageViewType | type | ||
) |
Create new VkImageView for specific VkImage subresource range, with type.
RV_VKImageView RV_VKImage::createView | ( | VkImageViewType | type | ) |
Create new VkImageView for specific type, trying to use full subresource range.
|
staticprotected |
bool RV_VKImage::downloadData | ( | RV_Render * | r, |
void * | data, | ||
exint | data_size, | ||
int | level = 0 , |
||
int | index = 0 , |
||
bool | primary_aspect = true |
||
) |
Download image data into data
.
Generate higher mipmap levels from the base level.
|
inline |
Definition at line 412 of file RV_VKImage.h.
|
inline |
Definition at line 410 of file RV_VKImage.h.
|
inline |
The image properties.
Definition at line 403 of file RV_VKImage.h.
|
inline |
Definition at line 409 of file RV_VKImage.h.
|
inline |
Definition at line 407 of file RV_VKImage.h.
|
inline |
Definition at line 413 of file RV_VKImage.h.
|
inline |
Definition at line 408 of file RV_VKImage.h.
|
inline |
Definition at line 406 of file RV_VKImage.h.
void RV_VKImage::print | ( | ) | const |
Debug print out of image properties (not image data).
|
static |
check whether the format info in pInfo can create a valid Vulkan image
void RV_VKImage::transitionImage | ( | RV_VKCommandBuffer * | cb, |
VkImageLayout | new_layout, | ||
VkImageUsageFlags | new_usage, | ||
bool | keep_data = true , |
||
VkImageSubresourceRange | subres = VkImageSubresourceRange{} |
||
) |
Record a command to transition image into new layout.
|
inline |
Record a command to transition the image for sampling in a shader.
Definition at line 438 of file RV_VKImage.h.
|
inline |
Upload data to the image. Must be in a state for upload.
Definition at line 446 of file RV_VKImage.h.
bool RV_VKImage::uploadData | ( | RV_Render * | r, |
const void * | data, | ||
exint | data_size, | ||
int | level = 0 , |
||
int | index = 0 |
||
) |
bool RV_VKImage::uploadData | ( | RV_Instance * | inst, |
RV_VKCommandBuffer * | cb, | ||
const void * | data, | ||
exint | data_size, | ||
int | level = 0 , |
||
int | index = 0 |
||
) |
bool RV_VKImage::uploadData | ( | RV_Render * | r, |
RV_VKBuffer * | buf, | ||
int | level = 0 , |
||
int | index = 0 |
||
) |
Copy image data to this image from buffer
.
bool RV_VKImage::uploadData | ( | RV_Instance * | inst, |
RV_VKCommandBuffer * | cb, | ||
RV_VKBuffer * | buf, | ||
int | level = 0 , |
||
int | index = 0 |
||
) |
|
friend |
Definition at line 542 of file RV_VKImage.h.
|
protected |
Definition at line 523 of file RV_VKImage.h.
|
protected |
Definition at line 522 of file RV_VKImage.h.
|
protected |
Definition at line 520 of file RV_VKImage.h.
VkAccessFlags RV_VKImage::myLastAccess = 0 |
Definition at line 535 of file RV_VKImage.h.
VkImageLayout RV_VKImage::myLastLayout = VK_IMAGE_LAYOUT_UNDEFINED |
Definition at line 534 of file RV_VKImage.h.
uint32_t RV_VKImage::myLastQueueFam = 0 |
Definition at line 538 of file RV_VKImage.h.
VkPipelineStageFlags RV_VKImage::myLastStage = 0 |
Definition at line 537 of file RV_VKImage.h.
VkImageUsageFlags RV_VKImage::myLastUsage = 0 |
Definition at line 536 of file RV_VKImage.h.
|
protected |
Definition at line 527 of file RV_VKImage.h.
UT_StringHolder RV_VKImage::myName |
Definition at line 531 of file RV_VKImage.h.
|
protected |
Definition at line 526 of file RV_VKImage.h.
|
protected |
Definition at line 528 of file RV_VKImage.h.
|
protected |
Definition at line 525 of file RV_VKImage.h.
|
protected |
Definition at line 521 of file RV_VKImage.h.
RV_StageGroup RV_VKImage::myWaitingBarrierStage = RV_STAGE_NONE |
Definition at line 540 of file RV_VKImage.h.