Nebula
Loading...
Searching...
No Matches
materialtemplatetypes.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
9//------------------------------------------------------------------------------
10#include "coregraphics/shader.h"
11namespace MaterialTemplates
12{
13
14enum class BatchGroup;
16{
27 union
28 {
29 bool b;
30 float f;
31 int i;
37#ifdef WITH_NEBULA_EDITOR
38 const char* desc;
39#endif
40 SizeT GetSize() const
41 {
42 switch (this->type)
43 {
44 case Bool: return 1;
45 case Scalar: return 4;
46 case Vec2: return 8;
47 case Vec3:
48 case Color:
49 case Vec4: return 16;
50 default: return 1;
51 }
52 }
53};
54
56{
58 const char* resource;
59#ifdef WITH_NEBULA_EDITOR
60 const char* desc;
61 uint hashedName;
62 uint textureIndex;
63#endif
64};
65
94
95} // namespace MaterialTemplates
96
98{
99
100 enum class BatchGroup;
102 {
113 union
114 {
115 bool b;
116 float f;
117 int i;
123#ifdef WITH_NEBULA_EDITOR
124 const char* desc;
125#endif
127 {
128 switch (this->type)
129 {
130 case Bool: return 1;
131 case Scalar: return 4;
132 case Vec2: return 8;
133 case Vec3:
134 case Color:
135 case Vec4: return 16;
136 default: return 1;
137 }
138 }
139 };
140
142 {
144 const char* resource;
145#ifdef WITH_NEBULA_EDITOR
146 const char* desc;
147 uint hashedName;
148 uint textureIndex;
149#endif
150 };
151
180
181} // namespace MaterialTemplatesGPULang
Nebula's dynamic array class.
Definition array.h:60
A collection of key/value pairs with quick value retrieval by key at roughly O(log n).
Definition dictionary.h:34
VertexLayoutType
Definition vertexlayout.h:49
Definition material.h:27
Materials represent a set of settings and a correlated shader configuration, which tells the engine w...
Definition material.h:21
A shader represents an entire shader resource, containing several stages and programs.
Definition shader.h:52
Definition materialtemplatetypes.h:69
CoreGraphics::ShaderId shader
Definition materialtemplatetypes.h:70
const char * name
Definition materialtemplatetypes.h:73
uint index
Definition materialtemplatetypes.h:72
CoreGraphics::ShaderProgramId program
Definition materialtemplatetypes.h:71
IndexT bufferIndex
Definition materialtemplatetypes.h:74
Definition materialtemplatetypes.h:67
uint numTextures
Definition materialtemplatetypes.h:83
const char * name
Definition materialtemplatetypes.h:77
const char * bufferName
Definition materialtemplatetypes.h:80
const uint HashCode() const
Definition materialtemplatetypes.h:76
Util::Dictionary< const char *, const MaterialTemplateValue * > values
Definition materialtemplatetypes.h:84
uint properties
Definition materialtemplatetypes.h:79
Util::Array< Util::Dictionary< uint, uint > > textureBatchLookup
Definition materialtemplatetypes.h:92
uint uniqueId
Definition materialtemplatetypes.h:78
CoreGraphics::VertexLayoutType vertexLayout
Definition materialtemplatetypes.h:82
Util::Dictionary< const char *, const MaterialTemplateTexture * > textures
Definition materialtemplatetypes.h:85
Util::Array< Util::Array< Materials::ShaderConfigBatchTexture * > > texturesPerBatch
Definition materialtemplatetypes.h:91
Util::Dictionary< MaterialTemplates::BatchGroup, Pass * > passes
Definition materialtemplatetypes.h:90
uint bufferSize
Definition materialtemplatetypes.h:81
Definition materialtemplatetypes.h:56
const char * resource
Definition materialtemplatetypes.h:58
uint bindlessOffset
Definition materialtemplatetypes.h:57
Definition materialtemplatetypes.h:16
Math::float4 f4
Definition materialtemplatetypes.h:34
union MaterialTemplates::MaterialTemplateValue::@046135266257215117343340205337073250032005044033 data
bool b
Definition materialtemplatetypes.h:29
Type
Definition materialtemplatetypes.h:18
@ Scalar
Definition materialtemplatetypes.h:20
@ Color
Definition materialtemplatetypes.h:25
@ Vec3
Definition materialtemplatetypes.h:23
@ Bool
Definition materialtemplatetypes.h:19
@ Vec4
Definition materialtemplatetypes.h:24
@ Int
Definition materialtemplatetypes.h:21
@ Vec2
Definition materialtemplatetypes.h:22
Math::float2 f2
Definition materialtemplatetypes.h:32
uint offset
Definition materialtemplatetypes.h:36
SizeT GetSize() const
Definition materialtemplatetypes.h:40
float f
Definition materialtemplatetypes.h:30
Math::float3 f3
Definition materialtemplatetypes.h:33
int i
Definition materialtemplatetypes.h:31
enum MaterialTemplates::MaterialTemplateValue::Type type
Definition materialtemplatetypes.h:155
uint index
Definition materialtemplatetypes.h:158
IndexT bufferIndex
Definition materialtemplatetypes.h:160
CoreGraphics::ShaderProgramId program
Definition materialtemplatetypes.h:157
CoreGraphics::ShaderId shader
Definition materialtemplatetypes.h:156
const char * name
Definition materialtemplatetypes.h:159
Definition materialtemplatetypes.h:153
Util::Dictionary< const char *, const MaterialTemplateValue * > values
Definition materialtemplatetypes.h:170
const uint HashCode() const
Definition materialtemplatetypes.h:162
uint bufferSize
Definition materialtemplatetypes.h:167
Util::Array< Util::Array< Materials::ShaderConfigBatchTexture * > > texturesPerBatch
Definition materialtemplatetypes.h:177
uint uniqueId
Definition materialtemplatetypes.h:164
const char * bufferName
Definition materialtemplatetypes.h:166
const char * name
Definition materialtemplatetypes.h:163
CoreGraphics::VertexLayoutType vertexLayout
Definition materialtemplatetypes.h:168
Util::Dictionary< MaterialTemplatesGPULang::BatchGroup, Pass * > passes
Definition materialtemplatetypes.h:176
Util::Array< Util::Dictionary< uint, uint > > textureBatchLookup
Definition materialtemplatetypes.h:178
uint properties
Definition materialtemplatetypes.h:165
Util::Dictionary< const char *, const MaterialTemplateTexture * > textures
Definition materialtemplatetypes.h:171
uint numTextures
Definition materialtemplatetypes.h:169
Definition materialtemplatetypes.h:142
uint bindlessOffset
Definition materialtemplatetypes.h:143
const char * resource
Definition materialtemplatetypes.h:144
Definition materialtemplatetypes.h:102
SizeT GetSize() const
Definition materialtemplatetypes.h:126
bool b
Definition materialtemplatetypes.h:115
union MaterialTemplatesGPULang::MaterialTemplateValue::@207266076124210151304067103144345035223246165213 data
Math::float4 f4
Definition materialtemplatetypes.h:120
float f
Definition materialtemplatetypes.h:116
uint offset
Definition materialtemplatetypes.h:122
Math::float3 f3
Definition materialtemplatetypes.h:119
enum MaterialTemplatesGPULang::MaterialTemplateValue::Type type
Math::float2 f2
Definition materialtemplatetypes.h:118
int i
Definition materialtemplatetypes.h:117
Type
Definition materialtemplatetypes.h:104
@ Vec4
Definition materialtemplatetypes.h:110
@ Vec3
Definition materialtemplatetypes.h:109
@ Int
Definition materialtemplatetypes.h:107
@ Scalar
Definition materialtemplatetypes.h:106
@ Vec2
Definition materialtemplatetypes.h:108
@ Color
Definition materialtemplatetypes.h:111
@ Bool
Definition materialtemplatetypes.h:105
Definition scalar.h:58
Definition scalar.h:67
Definition scalar.h:76
int SizeT
Definition types.h:42
unsigned int uint
Definition types.h:33
int IndexT
Definition types.h:41