Nebula
Loading...
Searching...
No Matches
shaderstatenode.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
10//------------------------------------------------------------------------------
11#include "modelnode.h"
13#include "transformnode.h"
15
16namespace Models
17{
19{
20public:
24 virtual ~ShaderStateNode();
25
26 struct DrawPacket;
27 static const uint NumTables = 1;
28 static const uint NumMaxOffsets = 4; // object, instancing, skeleton, particles
29
47
49 const Materials::MaterialId GetMaterial() const { return this->material; };
50
53
54protected:
55 friend class ModelContext;
56 friend class ModelLoader;
57
59 bool Load(const Util::FourCC& fourcc, const Util::StringAtom& tag, const Ptr<IO::BinaryReader>& reader, bool immediate) override;
61 virtual void Unload() override;
63 virtual void OnFinishedLoading(ModelStreamingData* streamingData) override;
64
65 Resources::ResourceId materialRes;
68
70};
71
72} // namespace Models
Nebula's bounding box class.
Definition bbox.h:24
Definition modelcontext.h:58
Definition modelloader.h:27
Util::StringAtom tag
Definition modelnode.h:110
Definition shaderstatenode.h:19
Resources::ResourceId materialRes
Definition shaderstatenode.h:65
const Materials::MaterialId GetMaterial() const
get surface
Definition shaderstatenode.h:49
virtual void Unload() override
unload data
Definition shaderstatenode.cc:86
static Util::FixedArray< CoreGraphics::ResourceTableId > CreateResourceTables()
Create resource table.
Definition shaderstatenode.cc:40
static const uint NumTables
Definition shaderstatenode.h:27
Util::FixedArray< CoreGraphics::ResourceTableId > resourceTables
Definition shaderstatenode.h:69
ShaderStateNode()
constructor
Definition shaderstatenode.cc:22
Materials::MaterialId material
Definition shaderstatenode.h:66
static const uint NumMaxOffsets
Definition shaderstatenode.h:28
virtual void OnFinishedLoading(ModelStreamingData *streamingData) override
called when loading finished
Definition shaderstatenode.cc:100
virtual ~ShaderStateNode()
destructor
Definition shaderstatenode.cc:31
Resources::ResourceName materialName
Definition shaderstatenode.h:67
Definition transformnode.h:15
Nebula's smart pointer class which manages the life time of RefCounted objects.
Definition ptr.h:38
Implements a fixed size one-dimensional array.
Definition fixedarray.h:20
A four-character-code is a quasi-human-readable 32-bit-id.
Definition fourcc.h:19
A StringAtom.
Definition stringatom.h:22
A model resource consists of nodes, each of which inhibit some information read from an ....
Definition model.cc:10
A resource table declares a list of resources (ResourceTable in DX12, DescriptorSet in Vulkan)
Definition commandbuffer.h:148
Definition resourcetable.h:95
Definition material.h:31
Definition material.h:32
Definition model.h:54
Definition shaderstatenode.h:31
IndexT slots[NumTables]
Definition shaderstatenode.h:37
uint32 numOffsets[NumTables]
Definition shaderstatenode.h:35
void Apply(const CoreGraphics::CmdBufferId cmdBuf, IndexT batchIndex, IndexT bufferIndex)
Apply the resource table.
Definition shaderstatenode.cc:119
SizeT numTables
Definition shaderstatenode.h:33
uint32 offsets[NumTables][NumMaxOffsets]
Definition shaderstatenode.h:36
uint32_t nodeInstanceHash
Definition shaderstatenode.h:40
Math::bbox boundingBox
Definition shaderstatenode.h:41
Materials::MaterialInstanceId materialInstance
Definition shaderstatenode.h:32
CoreGraphics::ResourceTableId tables[NumTables]
Definition shaderstatenode.h:34
int SizeT
Definition types.h:49
unsigned int uint
Definition types.h:31
uint32_t uint32
Definition types.h:38
int IndexT
Definition types.h:48