Cogs.Core
Classes | Public Member Functions | Public Attributes | List of all members
Cogs::Core::RenderMaterialInstance Struct Reference
Inheritance diagram for Cogs::Core::RenderMaterialInstance:
Cogs::Core::RenderResourceBase< MaterialInstance > Cogs::Core::RenderResource

Classes

struct  RenderEffectBinding
 
struct  UpdateBuffer
 

Public Member Functions

ActivationResult update (MaterialInstance *materialInstance, IGraphicsDevice *device, class RenderResources *resources, RenderStates *renderStates)
 
void release (class Renderer *renderer)
 
const EffectBindingcheckReady (const MeshStreamsLayout &streamsLayout, const EnginePermutation *permutation, const RenderPassOptions &passOptions, ClipShapeType clipShape)
 
const EffectBindinggetBindings (const MeshStreamsLayout &streamsLayout, const EnginePermutation *permutation, const RenderPassOptions &passOptions, ClipShapeType clipShape) const
 
- Public Member Functions inherited from Cogs::Core::RenderResourceBase< MaterialInstance >
 RenderResourceBase (const RenderResourceBase &)=delete
 
void setResource (MaterialInstance *resource)
 
MaterialInstancegetResource () const
 
- Public Member Functions inherited from Cogs::Core::RenderResource
 RenderResource (const RenderResource &)=delete
 
RenderResourceoperator= (const RenderResource &)=delete
 
void setActive ()
 
void setDelayed ()
 
void setFailed ()
 
void setReleased ()
 
void setOwned ()
 
void setPersistent ()
 
void setOverride ()
 
bool isActive () const
 Get if the render resource is active and can be used for rendering.
 
bool isDelayed () const
 Get if the render resource is in a delayed state.
 
bool isSet (RenderResourceFlags flag) const
 
bool isPersistent () const
 
bool isOverride () const
 
bool hasFailed () const
 
bool isReleased () const
 
bool isOwned () const
 
void setName (const StringView &str)
 
StringView getName () const
 
RenderResourceType getType () const
 
RenderResourceFlags getFlags () const
 
void incrementGeneration ()
 
uint16_t getGeneration ()
 
Id getIdentity () const
 

Public Attributes

std::vector< UpdateBufferbuffers
 
std::vector< BufferHandleownedBuffers
 
std::vector< SamplerStateHandlesamplerStates
 
std::vector< RenderEffectBindingloadedBindings
 
std::vector< RenderEffectBindingpendingBindings
 
ShaderVariantSelectors variantSelectors
 
Contextcontext = nullptr
 
RenderMaterialrenderMaterial = nullptr
 
size_t variantGeneration = 0
 
size_t permutationIndex = 0
 
uint16_t buffersGeneration = 0
 

Additional Inherited Members

- Public Types inherited from Cogs::Core::RenderResource
typedef uint32_t Id
 
- Protected Attributes inherited from Cogs::Core::RenderResource
StringRef name = NoString
 
RenderResourceType type = RenderResourceType::Unknown
 
RenderResourceFlags flags = RenderResourceFlags::None
 
uint16_t generation = 0
 
Id identity = 0
 

Detailed Description

Definition at line 20 of file RenderMaterialInstance.h.

Member Function Documentation

◆ checkReady()

const EffectBinding * Cogs::Core::RenderMaterialInstance::checkReady ( const MeshStreamsLayout streamsLayout,
const EnginePermutation permutation,
const RenderPassOptions passOptions,
ClipShapeType  clipShape 
)

Check if an effect binding is ready for use.

Parameters
streamsLayoutNon-empty description of streams. This object is copied, so it doesn't need to live after the function call.

Definition at line 232 of file RenderMaterialInstance.cpp.

References Cogs::Core::ConstantBuffers::buffersGeneration, Cogs::Core::MaterialInstance::buffersGeneration, Cogs::Core::RenderMaterial::getBinding(), Cogs::Core::HandleIsValid(), Cogs::Core::RenderResource::isDelayed(), and Cogs::Core::MaterialInstance::material.

◆ getBindings()

const Cogs::Core::EffectBinding * Cogs::Core::RenderMaterialInstance::getBindings ( const MeshStreamsLayout streamsLayout,
const EnginePermutation permutation,
const RenderPassOptions passOptions,
ClipShapeType  clipShape 
) const

Get effect binding for a streamsLayout/enginePermutation combo.

Definition at line 316 of file RenderMaterialInstance.cpp.

◆ release()

void Cogs::Core::RenderMaterialInstance::release ( class Renderer renderer)

Definition at line 223 of file RenderMaterialInstance.cpp.

◆ update()

Cogs::Core::ActivationResult Cogs::Core::RenderMaterialInstance::update ( MaterialInstance materialInstance,
IGraphicsDevice device,
class RenderResources resources,
RenderStates renderStates 
)

Definition at line 162 of file RenderMaterialInstance.cpp.

Member Data Documentation

◆ buffers

std::vector<UpdateBuffer> Cogs::Core::RenderMaterialInstance::buffers

Definition at line 48 of file RenderMaterialInstance.h.

◆ buffersGeneration

uint16_t Cogs::Core::RenderMaterialInstance::buffersGeneration = 0

Definition at line 75 of file RenderMaterialInstance.h.

◆ context

Context* Cogs::Core::RenderMaterialInstance::context = nullptr

Definition at line 67 of file RenderMaterialInstance.h.

◆ loadedBindings

std::vector<RenderEffectBinding> Cogs::Core::RenderMaterialInstance::loadedBindings

Definition at line 63 of file RenderMaterialInstance.h.

◆ ownedBuffers

std::vector<BufferHandle> Cogs::Core::RenderMaterialInstance::ownedBuffers

Definition at line 49 of file RenderMaterialInstance.h.

◆ pendingBindings

std::vector<RenderEffectBinding> Cogs::Core::RenderMaterialInstance::pendingBindings

Definition at line 64 of file RenderMaterialInstance.h.

◆ permutationIndex

size_t Cogs::Core::RenderMaterialInstance::permutationIndex = 0

Definition at line 71 of file RenderMaterialInstance.h.

◆ renderMaterial

RenderMaterial* Cogs::Core::RenderMaterialInstance::renderMaterial = nullptr

Definition at line 68 of file RenderMaterialInstance.h.

◆ samplerStates

std::vector<SamplerStateHandle> Cogs::Core::RenderMaterialInstance::samplerStates

Definition at line 51 of file RenderMaterialInstance.h.

◆ variantGeneration

size_t Cogs::Core::RenderMaterialInstance::variantGeneration = 0

Definition at line 70 of file RenderMaterialInstance.h.

◆ variantSelectors

ShaderVariantSelectors Cogs::Core::RenderMaterialInstance::variantSelectors

Definition at line 65 of file RenderMaterialInstance.h.


The documentation for this struct was generated from the following files: