Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
foray::core::SamplerReference Class Reference

Represents a reference to a VkSampler object managed by a SamplerCollection. More...

#include <foray_samplercollection.hpp>

Inheritance diagram for foray::core::SamplerReference:
foray::core::CombinedImageSampler

Public Member Functions

 SamplerReference ()=default
 
 SamplerReference (const SamplerReference &other)
 
 SamplerReference (SamplerReference &&other)
 
SamplerReferenceoperator= (const SamplerReference &other)
 
virtual ~SamplerReference ()
 
 SamplerReference (Context *context, const VkSamplerCreateInfo &samplerCi)
 Construct and initialize.
 
 SamplerReference (SamplerCollection *collection, const VkSamplerCreateInfo &samplerCi)
 Construct and initialize.
 
void Init (Context *context, const VkSamplerCreateInfo &samplerCi)
 Initializes by fetching a matching sampler from sampler collection.
 
void Init (SamplerCollection *collection, const VkSamplerCreateInfo &samplerCi)
 Initializes by fetching a matching sampler from sampler collection.
 
void Destroy ()
 Returns the sampler and deinitializes.
 
 operator VkSampler () const
 

Protected Attributes

VkSampler mSampler = nullptr
 Sampler (owned by SamplerCollection, this is a loan)
 
uint64_t mHash = (uint64_t)0
 Hash of the Sampler CreateInfo.
 
SamplerCollectionmCollection = nullptr
 Collection owning the Sampler object.
 

Detailed Description

Represents a reference to a VkSampler object managed by a SamplerCollection.

Remarks
Only useful if .pNext field of sampler createinfo remains zero.

Constructor & Destructor Documentation

◆ SamplerReference() [1/5]

foray::core::SamplerReference::SamplerReference ( )
default

◆ SamplerReference() [2/5]

foray::core::SamplerReference::SamplerReference ( const SamplerReference other)

◆ SamplerReference() [3/5]

foray::core::SamplerReference::SamplerReference ( SamplerReference &&  other)

◆ ~SamplerReference()

virtual foray::core::SamplerReference::~SamplerReference ( )
virtual

◆ SamplerReference() [4/5]

foray::core::SamplerReference::SamplerReference ( Context context,
const VkSamplerCreateInfo &  samplerCi 
)

Construct and initialize.

Parameters
contextRequires SamplerCol field
samplerCiSampler create info (Note: DO NOT USE for non zero .pNext)

◆ SamplerReference() [5/5]

foray::core::SamplerReference::SamplerReference ( SamplerCollection collection,
const VkSamplerCreateInfo &  samplerCi 
)

Construct and initialize.

Parameters
collectionCollection to get a sampler from
samplerCiSampler create info (Note: DO NOT USE for non zero .pNext)

Member Function Documentation

◆ Destroy()

void foray::core::SamplerReference::Destroy ( )

Returns the sampler and deinitializes.

◆ Init() [1/2]

void foray::core::SamplerReference::Init ( Context context,
const VkSamplerCreateInfo &  samplerCi 
)

Initializes by fetching a matching sampler from sampler collection.

Parameters
contextRequires SamplerCol field
samplerCiSampler create info (Note: DO NOT USE for non zero .pNext)

◆ Init() [2/2]

void foray::core::SamplerReference::Init ( SamplerCollection collection,
const VkSamplerCreateInfo &  samplerCi 
)

Initializes by fetching a matching sampler from sampler collection.

Parameters
collectionCollection to get a sampler from
samplerCiSampler create info (Note: DO NOT USE for non zero .pNext)

◆ operator VkSampler()

foray::core::SamplerReference::operator VkSampler ( ) const
inline

◆ operator=()

SamplerReference & foray::core::SamplerReference::operator= ( const SamplerReference other)

Member Data Documentation

◆ mCollection

SamplerCollection* foray::core::SamplerReference::mCollection = nullptr
protected

Collection owning the Sampler object.

◆ mHash

uint64_t foray::core::SamplerReference::mHash = (uint64_t)0
protected

Hash of the Sampler CreateInfo.

◆ mSampler

VkSampler foray::core::SamplerReference::mSampler = nullptr
protected

Sampler (owned by SamplerCollection, this is a loan)


The documentation for this class was generated from the following file: