11 #ifndef RV_VKFramebuffer_h 
   12 #define RV_VKFramebuffer_h 
   36 class rv_VKAttachment;
 
   77         return !(*
this == other);
 
   98     virtual bool beginRendering(
 
  104     virtual void endRendering(
 
  112     int        getMaxLayers() 
const;
 
  118                             myWidth = 
w; myHeight = 
h;
 
  123     void        setSampleCount(
int samples);
 
  136     int         getNumColorImages() 
const;
 
  146     static const int ALL_LAYERS = -1;
 
  152                             int buffer_target = 0,
 
  159                             int buffer_target = 0);
 
  161     void        detachColorImage(
RV_Render *
r, 
int buffer_target = 0);
 
  169                              bool depth_too = 
false);
 
  175                     { 
return myColorAttachments; }
 
  177                     { 
return myDepthAttachment; }
 
  179     virtual void attachmentsChanged();
 
  182     uint32_t myWidth = 0;
 
  183     uint32_t myHeight = 0;
 
  185     uint32_t mySamples = 1;
 
  192     bool myIsMultiview = 
false;
 
  193     bool myIsReadOnlyDepth = 
false;
 
  250     bool                            myIsDirty = 
false;
 
  254     bool                            myLastMultiview = 
false;
 
  266         : myInst(inst), myVkFramebuffer(vk_handle)
 
  270             : myInst(other.myInst), myVkFramebuffer(other.myVkFramebuffer)
 
  272                 other.myInst = 
nullptr;
 
  273                 other.myVkFramebuffer = 0;
 
  285                             myInst->
getDevice(), myVkFramebuffer, 
nullptr);
 
  292     VkFramebuffer myVkFramebuffer = 0;
 
  306             : myInst(inst), myVkRenderPass(vk_handle)
 
  310             : myInst(other.myInst), myVkRenderPass(other.myVkRenderPass)
 
  312                 other.myInst = 
nullptr;
 
  313                 other.myVkRenderPass = 0;
 
  325                             myInst->
getDevice(), myVkRenderPass, 
nullptr);
 
  332     VkRenderPass myVkRenderPass = 0;
 
void setSize(int w, int h)
 
void setClearColor(UT_Vector4F c)
 
RV_VKFramebuffer(RV_VKFramebuffer &&other)
 
virtual ~RV_VKFramebuffer()
 
UT_UniquePtr< RV_VKImage > RV_VKImagePtr
 
VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks *pAllocator)
 
bool getMultiview() const 
 
const UT_Array< rv_VKAttachmentPtr > & colorAttachments() const 
 
GLenum GLuint GLint GLint layer
 
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects. 
 
rv_VKAttachmentPtr myDepthAttachment
 
UT_Vector4T< int32 > UT_Vector4i
 
GLint GLint GLsizei GLint GLenum GLenum type
 
std::array< T, N > UT_FixedArray
 
VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks *pAllocator)
 
UT_Array< rv_VKAttachmentPtr > myColorAttachments
 
UT_Vector4i getClearInt() const 
 
void setClearInt(UT_Vector4i i)
 
virtual ~RV_VKRenderPass()
 
GLuint const GLchar * name
 
virtual bool fillPipelineInfo(RV_RenderPassFormatInfo &info)=0
 
VkRenderPass getVkRenderPass() const 
 
Handle to the main interface of Vulkan. 
 
RV_VKRenderPass(RV_Instance *inst, VkRenderPass vk_handle)
 
void setReadOnlyDepth(bool enable)
 
const rv_VKAttachmentPtr & depthAttachment() const 
 
GLfloat GLfloat GLfloat GLfloat h
 
bool getReadOnlyDepth() const 
 
void setClearDepth(fpreal32 d)
 
RV_VKFramebuffer(RV_Instance *inst, VkFramebuffer vk_handle)
 
UT_Vector4T< fpreal32 > UT_Vector4F
 
virtual void attachmentsChanged()
 
void setMultiview(bool enable)
 
VkDevice getDevice()
Get the raw vulkan device assocated with this instance. 
 
GLubyte GLubyte GLubyte GLubyte w
 
static UT_UniquePtr< RV_VKRenderPass > create(RV_Instance *inst, const RV_RenderPassFormatInfo &pass_info, RV_ImageOp load_op)
 
RV_VKFramebuffer & operator=(RV_VKFramebuffer &&rhs) noexcept=delete
 
virtual bool beginRendering(RV_Instance *inst, RV_VKCommandBuffer *cb, RV_ImageOp img_op=RV_IMAGE_LOAD, RV_RenderPassType type=RV_PASS_WHOLE)=0
 
RV_VKRenderPass(RV_VKRenderPass &&other)
 
UT_Vector4F getClearColor() const 
 
fpreal32 getClearDepth() const 
 
const UT_StringHolder & name() const 
 
RV_VKRenderPass & operator=(RV_VKRenderPass &&rhs) noexcept=delete
 
VkFramebuffer getVkFramebuffer() const 
 
virtual void endRendering(RV_Instance *inst, RV_VKCommandBuffer *cb)=0
 
RAII wrapper class for VkImageView. 
 
UT_UniquePtr< rv_VKAttachment > rv_VKAttachmentPtr