13 #ifndef RV_VKPipeline_h 
   14 #define RV_VKPipeline_h 
   62         {(uint32_t)rect.
width(),
 
  101     UT_ASSERT(
false && 
"Unrecognized Topology Type used for Pipeline");
 
  182                 myRenderPassInfo = info;
 
  206     bool myIsVertexInputDynamic = 
false;
 
  213     bool            myIsTopologyDynamic = 
false;
 
  216     bool            myIsPrimRestartDynamic = 
false;
 
  217     bool            myPrimitiveRestartEnable =
 
  220 #else // keep enabled on MacOS, doesn't support disabling 
  225     bool            myHasTesselation    = 
false;
 
  226     bool            myIsControlPointsDynamic = 
false;
 
  227     uint32_t        myTessControlPoints = 4;
 
  234     bool            myIsViewportDynamic = 
false;
 
  238     bool            myIsScissorDynamic = 
false;
 
  246     bool            myDepthClamp        = 
false;
 
  249     bool            myIsRasterDiscardDynamic = 
false;
 
  250     bool            myRasterDiscard     = 
false;
 
  252     bool            myIsCullModeDynamic = 
false;
 
  255     bool            myIsFrontFaceDynamic= 
false;
 
  258     bool            myIsBiasDynamic     = 
false;
 
  259     bool            myDepthBiasEnable   = 
false;
 
  261     bool            myIsBiasParamDynamic= 
false;
 
  262     float           myBiasConst         = 0.f;
 
  263     float           myBiasClamp         = 0.f;
 
  264     float           myBiasSlope         = 0.f;
 
  266     bool            myIslineWidthDynamic = 
false;
 
  267     float           myLineWidth = 1.f;
 
  270     int             mySampleCount = -1;
 
  278     bool            myIsDepthTestDynamic = 
false;
 
  279     bool            myDepthTest = 
true;
 
  281     bool            myIsDepthWriteDynamic = 
false;
 
  282     bool            myDepthWrite = 
true;
 
  284     bool            myIsDepthOpDynamic = 
false;
 
  287     bool            myIsDepthBoundsEnableDynamic = 
false;
 
  288     bool            myDepthBoundsTest = 
false;
 
  290     bool            myIsDepthBoundsDynamic = 
false;
 
  291     float           myMinDepth = 0.f;
 
  292     float           myMaxDepth = 1.f;
 
  294     bool            myIsStencilTestDynamic = 
false;
 
  295     bool            myStencilTest = 
false;
 
  297     bool            myIsStencilOpDynamic = 
false;
 
  298     bool            myIsStencilWriteMaskDynamic = 
false;
 
  299     bool            myIsStencilCompMaskDynamic = 
false;
 
  300     bool            myIsStencilRefDynamic = 
false;
 
  327     bool myLogicOpEnable = 
false;
 
  344     bool myIsBlendConstDynamic = 
false;
 
  345     float myBlendConst[4] = {0.f, 0.f, 0.f, 0.f};
 
  398                     { binding, 
stride, input_rate};
 
  409                 used_bindings.insert(attr.binding);
 
  413         for (uint32_t binding : used_bindings)
 
  463         : myInst(inst), myVkPipeline(vk_pipeline)
 
  472         : myInst(other.myInst), myVkPipeline(other.myVkPipeline)
 
  474         other.myInst = 
nullptr;
 
  502         const char* filenames,
 
RV_VKPipeline & operator=(RV_VKPipeline &)=delete
 
VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks *pAllocator)
 
static RV_VKPipelinePtr createCompute(RV_Instance *inst, const RV_VKPipelineLayout &layout)
 
static RV_VKPipelinePtr create(RV_Instance *inst, const RV_VKPipelineLayout &layout_info, const RV_VKPipelineStateInfo &state_info, const RV_VKPipelineInputInfo &input_info)
 
RV_VKPipeline(RV_VKPipeline &&other) noexcept
 
void setCapacity(exint new_capacity)
 
std::pair< float, float > RV_DepthRange
 
void setSize(exint newsize)
 
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
 
void setRenderRegion(const UT_DimRect ®ion)
 
RAII wrapper class for VkPipeline. 
 
GLint GLint GLsizei GLint GLenum format
 
GLint GLenum GLboolean GLsizei stride
 
void setRenderPassInfo(const RV_RenderPassFormatInfo &info)
 
int x() const 
Get lower-left corner. 
 
exint removeIf(IsEqual is_equal)
 
Handle to the main interface of Vulkan. 
 
int width() const 
Get width/height dimensions. 
 
VkPipeline getVkPipeline()
 
RAII wrapper class for Vk Shader Module. 
 
IMATH_NAMESPACE::V2f IMATH_NAMESPACE::Box2i std::string this attribute is obsolete as of OpenEXR v3 float
 
RV_RenderPassFormatInfo myRenderPassInfo
 
RV_VKPipeline(RV_Instance *inst, VkPipeline vk_pipeline)
 
RV_TopologyClass RVgetTopologyClass(VkPrimitiveTopology t)
 
LeafData & operator=(const LeafData &)=delete
 
VkRect2D RVmakeVkRect(const UT_DimRect &rect)
 
RV_API void RVloadSpirvFiles(RV_Instance *inst, const UT_StringArray &filenames, UT_Array< RV_VKShaderModuleInfoPtr > &shader_modules)
 
int y() const 
Get lower-left corner. 
 
VkDevice getDevice()
Get the raw vulkan device assocated with this instance. 
 
int height() const 
Get width/height dimensions. 
 
UT_UniquePtr< RV_VKPipeline > RV_VKPipelinePtr
 
bool RVisSameTopologyClass(VkPrimitiveTopology lhs, VkPrimitiveTopology rhs)
 
void clear()
Resets list to an empty list. 
 
VkViewport RVmakeViewport(const UT_DimRect &view_rect, RV_DepthRange depth_range={0.f, 1.f})