Ream v0.1.0-1
C++ graphics library for Linux
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
RVKPipeline Class Referencefinal

Device-owned cache of Vulkan render passes, pipelines, layouts, and samplers used by RVKPainter. Shared across all passes on the device. More...

#include <RVKPipeline.h>

+ Inheritance diagram for RVKPipeline:

Public Member Functions

 ~RVKPipeline () noexcept
 Destroys all cached pipelines, render passes, samplers, layouts and shader modules.
 
VkPipeline colorPipeline (VkRenderPass rp, VkFormat format, const RVKBlend &blend) noexcept
 Returns (creating and caching if needed) the drawColor pipeline for the given render pass/format and blend state.
 
VkPipeline imagePipeline (VkRenderPass rp, VkFormat format, const RVKBlend &blend, const RVKImageSpec &spec) noexcept
 Returns (creating and caching if needed) the drawImage pipeline for the given render pass/format, blend state, and fragment specialization (spec).
 
VkSampler sampler (RImageFilter min, RImageFilter mag, RImageWrap wrapS, RImageWrap wrapT) noexcept
 Returns (creating and caching if needed) a sampler for the given filter/wrap modes.
 
VkPipelineLayout colorLayout () const noexcept
 Pipeline layout for the color pipeline (push constants only).
 
VkPipelineLayout imageLayout () const noexcept
 Pipeline layout for the image/effect pipelines (image+mask sampler set + push constants).
 
VkDescriptorSetLayout imageSetLayout () const noexcept
 Descriptor set layout of the image+mask combined image samplers.
 
- Public Member Functions inherited from RObject
 RObject ()=default
 Constructs a default RObject.
 

Static Public Member Functions

static std::unique_ptr< RVKPipelineMake (RVKDevice *device) noexcept
 Creates the pipeline cache for device (loads shader modules, layouts). Returns nullptr on failure.
 

Detailed Description

Device-owned cache of Vulkan render passes, pipelines, layouts, and samplers used by RVKPainter. Shared across all passes on the device.

Constructor & Destructor Documentation

◆ ~RVKPipeline()

~RVKPipeline ( )
noexcept

Destroys all cached pipelines, render passes, samplers, layouts and shader modules.

Member Function Documentation

◆ Make()

static std::unique_ptr< RVKPipeline > Make ( RVKDevice device)
staticnoexcept

Creates the pipeline cache for device (loads shader modules, layouts). Returns nullptr on failure.

◆ colorPipeline()

VkPipeline colorPipeline ( VkRenderPass  rp,
VkFormat  format,
const RVKBlend &  blend 
)
noexcept

Returns (creating and caching if needed) the drawColor pipeline for the given render pass/format and blend state.

◆ imagePipeline()

VkPipeline imagePipeline ( VkRenderPass  rp,
VkFormat  format,
const RVKBlend &  blend,
const RVKImageSpec &  spec 
)
noexcept

Returns (creating and caching if needed) the drawImage pipeline for the given render pass/format, blend state, and fragment specialization (spec).

◆ sampler()

VkSampler sampler ( RImageFilter  min,
RImageFilter  mag,
RImageWrap  wrapS,
RImageWrap  wrapT 
)
noexcept

Returns (creating and caching if needed) a sampler for the given filter/wrap modes.

◆ colorLayout()

VkPipelineLayout colorLayout ( ) const
inlinenoexcept

Pipeline layout for the color pipeline (push constants only).

◆ imageLayout()

VkPipelineLayout imageLayout ( ) const
inlinenoexcept

Pipeline layout for the image/effect pipelines (image+mask sampler set + push constants).

◆ imageSetLayout()

VkDescriptorSetLayout imageSetLayout ( ) const
inlinenoexcept

Descriptor set layout of the image+mask combined image samplers.