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 RenderTarget *renderTarget)
 
- 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 (std::string_view str)
 
const std::string & 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 materialVariantGeneration = 0
 
size_t instanceVariantGeneration = 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
std::string name
 
RenderResourceType type = RenderResourceType::Unknown
 
RenderResourceFlags flags = RenderResourceFlags::None
 
uint16_t generation = 0
 
Id identity = 0
 

Detailed Description

Definition at line 21 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,
const RenderTarget renderTarget 
)

Check if an effect binding is ready for use.

A non-null return implies the binding's renderEffect is present and not delayed, its effectHandle and inputHandle are valid, and constant-buffer generations on both the EffectBinding and this instance match the material/instance. It does not imply renderEffect->isActive(), filled global slots, or a failed vs pending distinction: nullptr means not usable yet.

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

Definition at line 266 of file RenderMaterialInstance.cpp.

References Cogs::Core::Context::engine, Cogs::Core::RenderMaterial::getBinding(), Cogs::Core::IRenderer::getDevice(), Cogs::Core::IRenderer::getEnginePermutations(), Cogs::Core::IRenderer::getRenderStates(), Cogs::Core::MaterialInstance::material, and Cogs::Core::Context::renderer.

◆ release()

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

Definition at line 257 of file RenderMaterialInstance.cpp.

◆ update()

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

Definition at line 194 of file RenderMaterialInstance.cpp.

Member Data Documentation

◆ buffers

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

Definition at line 50 of file RenderMaterialInstance.h.

◆ buffersGeneration

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

Definition at line 77 of file RenderMaterialInstance.h.

◆ context

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

Definition at line 68 of file RenderMaterialInstance.h.

◆ instanceVariantGeneration

size_t Cogs::Core::RenderMaterialInstance::instanceVariantGeneration = 0

Definition at line 72 of file RenderMaterialInstance.h.

◆ loadedBindings

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

Definition at line 64 of file RenderMaterialInstance.h.

◆ materialVariantGeneration

size_t Cogs::Core::RenderMaterialInstance::materialVariantGeneration = 0

Definition at line 71 of file RenderMaterialInstance.h.

◆ ownedBuffers

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

Definition at line 51 of file RenderMaterialInstance.h.

◆ pendingBindings

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

Definition at line 65 of file RenderMaterialInstance.h.

◆ permutationIndex

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

Definition at line 73 of file RenderMaterialInstance.h.

◆ renderMaterial

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

Definition at line 69 of file RenderMaterialInstance.h.

◆ samplerStates

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

Definition at line 53 of file RenderMaterialInstance.h.

◆ variantSelectors

ShaderVariantSelectors Cogs::Core::RenderMaterialInstance::variantSelectors

Definition at line 66 of file RenderMaterialInstance.h.


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