1#include "ResourceFlags.h"
3#include "Rendering/DataFormat.h"
4#include "Rendering/TextureData.h"
5#include "Serialization/AssetWriteFlags.h"
7#include "ResourceBase.h"
11#include "Renderer/Tasks/RenderListTask.h"
12#include "Renderer/Tasks/FilterListTask.h"
14template<>
Cogs::StringView getName<Cogs::Core::ResourceTypes>() {
return "ResourceTypes"; }
15template<>
Cogs::StringView getName<Cogs::TextureFormat>() {
return "TextureFormat"; }
16template<>
Cogs::StringView getName<Cogs::ResourceDimensions>() {
return "ResourceDimensions"; }
20void Cogs::Core::registerResourceFlagTypes()
23 {
"Unknown", TextureFormat::Unknown },
24 {
"R8_UNORM", TextureFormat::R8_UNORM },
25 {
"R8G8_UNORM", TextureFormat::R8G8_UNORM },
26 {
"R8G8B8_UNORM", TextureFormat::R8G8B8_UNORM },
27 {
"R8G8B8A8_UNORM", TextureFormat::R8G8B8A8_UNORM },
28 {
"R16_UNORM", TextureFormat::R16_UNORM },
29 {
"R16G16_UNORM", TextureFormat::R16G16_UNORM },
30 {
"R16G16B16_UNORM", TextureFormat::R16G16B16_UNORM },
31 {
"R16G16B16A16_UNORM", TextureFormat::R16G16B16A16_UNORM },
32 {
"R8_SNORM", TextureFormat::R8_SNORM },
33 {
"R8G8_SNORM", TextureFormat::R8G8_SNORM },
34 {
"R8G8B8_SNORM", TextureFormat::R8G8B8_SNORM },
35 {
"R8G8B8A8_SNORM", TextureFormat::R8G8B8A8_SNORM },
36 {
"R16_SNORM", TextureFormat::R16_SNORM },
37 {
"R16G16_SNORM", TextureFormat::R16G16_SNORM },
38 {
"R16G16B16_SNORM", TextureFormat::R16G16B16_SNORM },
39 {
"R16G16B16A16_SNORM", TextureFormat::R16G16B16A16_SNORM },
40 {
"R8_UINT", TextureFormat::R8_UINT },
41 {
"R8G8_UINT", TextureFormat::R8G8_UINT },
42 {
"R8G8B8_UINT", TextureFormat::R8G8B8_UINT },
43 {
"R8G8B8A8_UINT", TextureFormat::R8G8B8A8_UINT },
44 {
"R16_UINT", TextureFormat::R16_UINT },
45 {
"R16G16_UINT", TextureFormat::R16G16_UINT },
46 {
"R16G16B16_UINT", TextureFormat::R16G16B16_UINT },
47 {
"R16G16B16A16_UINT", TextureFormat::R16G16B16A16_UINT },
48 {
"R32_UINT", TextureFormat::R32_UINT },
49 {
"R32G32_UINT", TextureFormat::R32G32_UINT },
50 {
"R32G32B32_UINT", TextureFormat::R32G32B32_UINT },
51 {
"R32G32B32A32_UINT", TextureFormat::R32G32B32A32_UINT },
52 {
"R8_SINT", TextureFormat::R8_SINT },
53 {
"R8G8_SINT", TextureFormat::R8G8_SINT },
54 {
"R8G8B8_SINT", TextureFormat::R8G8B8_SINT },
55 {
"R8G8B8A8_SINT", TextureFormat::R8G8B8A8_SINT },
56 {
"R16_SINT", TextureFormat::R16_SINT },
57 {
"R16G16_SINT", TextureFormat::R16G16_SINT },
58 {
"R16G16B16_SINT", TextureFormat::R16G16B16_SINT },
59 {
"R16G16B16A16_SINT", TextureFormat::R16G16B16A16_SINT },
60 {
"R32_SINT", TextureFormat::R32_SINT },
61 {
"R32G32_SINT", TextureFormat::R32G32_SINT },
62 {
"R32G32B32_SINT", TextureFormat::R32G32B32_SINT },
63 {
"R32G32B32A32_SINT", TextureFormat::R32G32B32A32_SINT },
64 {
"R16_FLOAT", TextureFormat::R16_FLOAT },
65 {
"R16G16_FLOAT", TextureFormat::R16G16_FLOAT },
66 {
"R16G16B16_FLOAT", TextureFormat::R16G16B16_FLOAT },
67 {
"R16G16B16A16_FLOAT", TextureFormat::R16G16B16A16_FLOAT },
68 {
"R32_FLOAT", TextureFormat::R32_FLOAT },
69 {
"R32G32_FLOAT", TextureFormat::R32G32_FLOAT },
70 {
"R32G32B32_FLOAT", TextureFormat::R32G32B32_FLOAT },
71 {
"R32G32B32A32_FLOAT", TextureFormat::R32G32B32A32_FLOAT },
72 {
"D16_UNORM", TextureFormat::D16_UNORM },
73 {
"D24_UNORM", TextureFormat::D24_UNORM },
74 {
"D24S8_UNORM", TextureFormat::D24S8_UNORM },
75 {
"D32_FLOAT", TextureFormat::D32_FLOAT },
76 {
"R32_TYPELESS", TextureFormat::R32_TYPELESS },
77 {
"R16_TYPELESS", TextureFormat::R16_TYPELESS },
78 {
"R8T", TextureFormat::R8T },
79 {
"R8G8T", TextureFormat::R8G8T },
80 {
"R8G8B8T", TextureFormat::R8G8B8T },
81 {
"R8G8B8A8T", TextureFormat::R8G8B8A8T },
82 {
"B8G8R8", TextureFormat::B8G8R8 },
83 {
"B8G8R8A8", TextureFormat::B8G8R8A8 },
84 {
"A8_UNORM", TextureFormat::A8_UNORM },
85 {
"BC1_TYPELESS", TextureFormat::BC1_TYPELESS },
86 {
"BC1_UNORM", TextureFormat::BC1_UNORM },
87 {
"BC1_UNORM_SRGB", TextureFormat::BC1_UNORM_SRGB },
88 {
"BC2_TYPELESS", TextureFormat::BC2_TYPELESS },
89 {
"BC2_UNORM", TextureFormat::BC2_UNORM },
90 {
"BC2_UNORM_SRGB", TextureFormat::BC2_UNORM_SRGB },
91 {
"BC3_TYPELESS", TextureFormat::BC3_TYPELESS },
92 {
"BC3_UNORM", TextureFormat::BC3_UNORM },
93 {
"BC3_UNORM_SRGB", TextureFormat::BC3_UNORM_SRGB },
94 {
"BC4_TYPELESS", TextureFormat::BC4_TYPELESS },
95 {
"BC4_UNORM", TextureFormat::BC4_UNORM },
96 {
"BC4_SNORM", TextureFormat::BC4_SNORM },
97 {
"BC5_TYPELESS", TextureFormat::BC5_TYPELESS },
98 {
"BC5_UNORM", TextureFormat::BC5_UNORM },
99 {
"BC5_SNORM", TextureFormat::BC5_SNORM },
100 {
"BC6H_SIGNED_FLOAT_RGB", TextureFormat::BC6H_SIGNED_FLOAT_RGB },
101 {
"BC6H_UNSIGNED_FLOAT_RGB", TextureFormat::BC6H_UNSIGNED_FLOAT_RGB },
102 {
"BC7_UNORM_RGBA", TextureFormat::BC7_UNORM_RGBA },
103 {
"BC7_UNORM_SRGBA", TextureFormat::BC7_UNORM_SRGBA },
104 {
"PVRTC1_2BPP_UNORM_RGB", TextureFormat::PVRTC1_2BPP_UNORM_RGB },
105 {
"PVRTC1_4BPP_UNORM_RGB", TextureFormat::PVRTC1_4BPP_UNORM_RGB },
106 {
"PVRTC1_2BPP_UNORM_RGBA", TextureFormat::PVRTC1_2BPP_UNORM_RGBA },
107 {
"PVRTC1_4BPP_UNORM_RGBA", TextureFormat::PVRTC1_4BPP_UNORM_RGBA },
108 {
"EAC_BLOCK8_UNSIGNED_FLOAT_R", TextureFormat::EAC_BLOCK8_UNSIGNED_FLOAT_R },
109 {
"EAC_BLOCK8_SIGNED_FLOAT_R", TextureFormat::EAC_BLOCK8_SIGNED_FLOAT_R },
110 {
"EAC_BLOCK16_UNSIGNED_FLOAT_RG", TextureFormat::EAC_BLOCK16_UNSIGNED_FLOAT_RG },
111 {
"EAC_BLOCK16_SIGNED_FLOAT_RG", TextureFormat::EAC_BLOCK16_SIGNED_FLOAT_RG },
112 {
"ETC2_BLOCK8_UNORM_RGB", TextureFormat::ETC2_BLOCK8_UNORM_RGB },
113 {
"ETC2_BLOCK8_UNORM_SRGB", TextureFormat::ETC2_BLOCK8_UNORM_SRGB },
114 {
"ETC2_BLOCK16_UNORM_RGBA", TextureFormat::ETC2_BLOCK16_UNORM_RGBA },
115 {
"ETC2_BLOCK16_UNORM_SRGBA", TextureFormat::ETC2_BLOCK16_UNORM_SRGBA },
116 {
"ASTC_4x4_UNORM_RGBA", TextureFormat::ASTC_4x4_UNORM_RGBA },
117 {
"ASTC_5x4_UNORM_RGBA", TextureFormat::ASTC_5x4_UNORM_RGBA },
118 {
"ASTC_5x5_UNORM_RGBA", TextureFormat::ASTC_5x5_UNORM_RGBA },
119 {
"ASTC_6x5_UNORM_RGBA", TextureFormat::ASTC_6x5_UNORM_RGBA },
120 {
"ASTC_6x6_UNORM_RGBA", TextureFormat::ASTC_6x6_UNORM_RGBA },
121 {
"ASTC_8x5_UNORM_RGBA", TextureFormat::ASTC_8x5_UNORM_RGBA },
122 {
"ASTC_8x6_UNORM_RGBA", TextureFormat::ASTC_8x6_UNORM_RGBA },
123 {
"ASTC_8x8_UNORM_RGBA", TextureFormat::ASTC_8x8_UNORM_RGBA },
124 {
"ASTC_10x5_UNORM_RGBA", TextureFormat::ASTC_10x5_UNORM_RGBA },
125 {
"ASTC_10x6_UNORM_RGBA", TextureFormat::ASTC_10x6_UNORM_RGBA },
126 {
"ASTC_10x8_UNORM_RGBA", TextureFormat::ASTC_10x8_UNORM_RGBA },
127 {
"ASTC_10x10_UNORM_RGBA", TextureFormat::ASTC_10x10_UNORM_RGBA },
128 {
"ASTC_12x10_UNORM_RGBA", TextureFormat::ASTC_12x10_UNORM_RGBA },
129 {
"ASTC_12x12_UNORM_RGBA", TextureFormat::ASTC_12x12_UNORM_RGBA },
130 {
"ASTC_4x4_UNORM_SRGBA", TextureFormat::ASTC_4x4_UNORM_SRGBA },
131 {
"ASTC_5x4_UNORM_SRGBA", TextureFormat::ASTC_5x4_UNORM_SRGBA },
132 {
"ASTC_5x5_UNORM_SRGBA", TextureFormat::ASTC_5x5_UNORM_SRGBA },
133 {
"ASTC_6x5_UNORM_SRGBA", TextureFormat::ASTC_6x5_UNORM_SRGBA },
134 {
"ASTC_6x6_UNORM_SRGBA", TextureFormat::ASTC_6x6_UNORM_SRGBA },
135 {
"ASTC_8x5_UNORM_SRGBA", TextureFormat::ASTC_8x5_UNORM_SRGBA },
136 {
"ASTC_8x6_UNORM_SRGBA", TextureFormat::ASTC_8x6_UNORM_SRGBA },
137 {
"ASTC_8x8_UNORM_SRGBA", TextureFormat::ASTC_8x8_UNORM_SRGBA },
138 {
"ASTC_10x5_UNORM_SRGBA", TextureFormat::ASTC_10x5_UNORM_SRGBA },
139 {
"ASTC_10x6_UNORM_SRGBA", TextureFormat::ASTC_10x6_UNORM_SRGBA },
140 {
"ASTC_10x8_UNORM_SRGBA", TextureFormat::ASTC_10x8_UNORM_SRGBA },
141 {
"ASTC_10x10_UNORM_SRGBA", TextureFormat::ASTC_10x10_UNORM_SRGBA },
142 {
"ASTC_12x10_UNORM_SRGBA", TextureFormat::ASTC_12x10_UNORM_SRGBA },
143 {
"ASTC_12x12_UNORM_SRGBA", TextureFormat::ASTC_12x12_UNORM_SRGBA },
144 {
"R8G8B8_UNORM_SRGB", TextureFormat::R8G8B8_UNORM_SRGB },
145 {
"R8G8B8A8_UNORM_SRGB", TextureFormat::R8G8B8A8_UNORM_SRGB },
146 {
"R10G10B10A2_TYPELESS", TextureFormat::R10G10B10A2_TYPELESS },
147 {
"R10G10B10A2_UNORM", TextureFormat::R10G10B10A2_UNORM },
148 {
"R10G10B10A2_UINT", TextureFormat::R10G10B10A2_UINT },
149 {
"R11G11B10_FLOAT", TextureFormat::R11G11B10_FLOAT },
150 {
"R5G6B5_UNORM", TextureFormat::R5G6B5_UNORM },
151 {
"R5G5B5A1_UNORM", TextureFormat::R5G5B5A1_UNORM },
152 {
"R4G4B4A4_UNORM", TextureFormat::R4G4B4A4_UNORM },
153 {
"R9G9B9E5_FLOAT", TextureFormat::R9G9B9E5_FLOAT },
154 {
"MAT4X4_FLOAT", TextureFormat::MAT4X4_FLOAT }
157 TypeDatabase::createType<TextureFormat>().setEnumerators(textureFormatEnums);
160 {
"Unknown", ResourceDimensions::Unknown },
161 {
"Buffer", ResourceDimensions::Buffer },
162 {
"Texture1D", ResourceDimensions::Texture1D },
163 {
"Texture1DArray", ResourceDimensions::Texture1DArray },
164 {
"Texture2D", ResourceDimensions::Texture2D },
165 {
"Texture2DArray", ResourceDimensions::Texture2DArray },
166 {
"Texture2DMS", ResourceDimensions::Texture2DMS },
167 {
"Texture2DMSArray", ResourceDimensions::Texture2DMSArray },
168 {
"Texture3D", ResourceDimensions::Texture3D },
169 {
"Texture3DArray", ResourceDimensions::Texture3DArray },
170 {
"TextureCube", ResourceDimensions::TextureCube },
171 {
"TextureCubeArray", ResourceDimensions::TextureCubeArray },
172 {
"RenderBuffer", ResourceDimensions::RenderBuffer }
175 TypeDatabase::createType<ResourceDimensions>().setEnumerators(resourceDimensionsEnums);
178 {
"None", ResourceLoadFlags::None },
179 {
"ForceSynchronous", ResourceLoadFlags::ForceSynchronous },
180 {
"Reload", ResourceLoadFlags::Reload },
181 {
"AutoReload", ResourceLoadFlags::AutoReload },
182 {
"NoDefaultName", ResourceLoadFlags::NoDefaultName },
183 {
"ForceUnique", ResourceLoadFlags::ForceUnique },
184 {
"DoNotCache", ResourceLoadFlags::DoNotCache }
187 TypeDatabase::createType<ResourceLoadFlags>().setEnumerators(loadEnums).
191 {
"None", ResourceLoadFlags::None },
192 {
"ForceSynchronous", ResourceLoadFlags::ForceSynchronous },
193 {
"Reload", ResourceLoadFlags::Reload },
194 {
"AutoReload", ResourceLoadFlags::AutoReload },
195 {
"NoDefaultName", ResourceLoadFlags::NoDefaultName },
196 {
"ForceUnique", ResourceLoadFlags::ForceUnique },
197 {
"DoNotCache", ResourceLoadFlags::DoNotCache },
200 {
"Flip", TextureLoadFlags::Flip },
201 {
"LinearColorSpace", TextureLoadFlags::LinearColorSpace },
202 {
"NoMipMaps", TextureLoadFlags::NoMipMaps },
203 {
"NoDelete", TextureLoadFlags::NoDelete },
206 TypeDatabase::createType<TextureLoadFlags>().setEnumerators(textureLoadEnums).
210 {
"None", ResourceLoadFlags::None },
211 {
"ForceSynchronous", ResourceLoadFlags::ForceSynchronous },
212 {
"Reload", ResourceLoadFlags::Reload },
213 {
"AutoReload", ResourceLoadFlags::AutoReload },
214 {
"NoDefaultName", ResourceLoadFlags::NoDefaultName },
215 {
"ForceUnique", ResourceLoadFlags::ForceUnique },
216 {
"DoNotCache", ResourceLoadFlags::DoNotCache },
219 {
"NeedsTangents", ModelLoadFlags::NeedsTangents },
220 {
"AutomaticTransparency", ModelLoadFlags::AutomaticTransparency },
221 {
"ForceTwoSidedMaterial", ModelLoadFlags::ForceTwoSidedMaterial },
222 {
"DisableOptimization", ModelLoadFlags::DisableOptimization },
223 {
"SkipMaterials", ModelLoadFlags::SkipMaterials },
224 {
"NoFlipTexcoords", ModelLoadFlags::NoFlipTexcoords },
226 {
"CustomExtensionFlag", ModelLoadFlags::CustomExtensionFlag },
229 TypeDatabase::createType<ModelLoadFlags>().setEnumerators(modelLoadEnums).
233 {
"None", ResourceLoadFlags::None },
234 {
"ForceSynchronous", ResourceLoadFlags::ForceSynchronous },
235 {
"Reload", ResourceLoadFlags::Reload },
236 {
"AutoReload", ResourceLoadFlags::AutoReload },
237 {
"NoDefaultName", ResourceLoadFlags::NoDefaultName },
238 {
"ForceUnique", ResourceLoadFlags::ForceUnique },
239 {
"DoNotCache", ResourceLoadFlags::DoNotCache },
242 {
"ClearScene", AssetLoadFlags::ClearScene },
243 {
"NoDefault", AssetLoadFlags::NoDefault },
246 TypeDatabase::createType<AssetLoadFlags>().setEnumerators(assetLoadEnums).
251 {
"None", AssetWriteFlags::None },
252 {
"Geometry", AssetWriteFlags::Geometry },
253 {
"PrettyPrint", AssetWriteFlags::PrettyPrint },
254 {
"Strip", AssetWriteFlags::Strip },
255 {
"Compress", AssetWriteFlags::Compress },
256 {
"Hierarchy", AssetWriteFlags::Hierarchy }
259 TypeDatabase::createType<AssetWriteFlags>().setEnumerators(assetWriteEnums).
263 {
"Unknown", ResourceTypes::Unknown },
264 {
"Asset", ResourceTypes::Asset },
265 {
"Model", ResourceTypes::Model },
266 {
"Texture", ResourceTypes::Texture },
267 {
"Effect", ResourceTypes::Effect },
268 {
"Material", ResourceTypes::Material },
269 {
"MaterialInstance", ResourceTypes::MaterialInstance },
270 {
"Mesh", ResourceTypes::Mesh },
271 {
"Buffer", ResourceTypes::Buffer },
272 {
"Font", ResourceTypes::Font },
273 {
"Gui", ResourceTypes::Gui },
276 TypeDatabase::createType<ResourceTypes>().setEnumerators(resourceTypeEnums);
279 {
"None", CullMode::None },
280 {
"Back", CullMode::Back },
281 {
"Front", CullMode::Front },
284 TypeDatabase::createType<CullMode>().setEnumerators(cullModeEnums);
287 {
"Blend", BlendMode::Blend },
288 {
"Add", BlendMode::Add },
289 {
"PremultipliedBlend", BlendMode::PremultipliedBlend },
290 {
"AlphaToCoverage", BlendMode::AlphaToCoverage },
291 {
"None", BlendMode::None },
292 {
"Zero", BlendMode::Zero },
293 {
"One_One_Zero_InverseSourceAlpha", BlendMode::One_One_Zero_InverseSourceAlpha },
294 {
"InverseSourceAlpha_SourceAlpha", BlendMode::InverseSourceAlpha_SourceAlpha },
297 TypeDatabase::createType<BlendMode>().setEnumerators(blendModeEnums);
300 {
"None", TransparencyMode::None },
301 {
"Off", TransparencyMode::Off },
302 {
"Regular", TransparencyMode::Regular },
303 {
"On", TransparencyMode::On },
304 {
"Auto", TransparencyMode::Auto },
305 {
"Alpha", TransparencyMode::Alpha },
308 TypeDatabase::createType<TransparencyMode>().setEnumerators(transparencyModeEnums);
311 {
"TriangleList", PrimitiveType::TriangleList },
312 {
"TriangleStrip", PrimitiveType::TriangleStrip },
313 {
"LineList", PrimitiveType::LineList },
314 {
"LineStrip", PrimitiveType::LineStrip },
315 {
"PointList", PrimitiveType::PointList },
316 {
"TriangleListAdjacency", PrimitiveType::TriangleListAdjacency },
317 {
"TriangleStripAdjacency", PrimitiveType::TriangleStripAdjacency },
318 {
"LineListAdjacency", PrimitiveType::LineListAdjacency },
319 {
"LineStripAdjacency", PrimitiveType::LineStripAdjacency },
321 {
"ControlPoint1PatchList", PrimitiveType::ControlPoint1PatchList },
322 {
"ControlPoint2PatchList", PrimitiveType::ControlPoint2PatchList },
323 {
"ControlPoint3PatchList", PrimitiveType::ControlPoint3PatchList },
324 {
"ControlPoint4PatchList", PrimitiveType::ControlPoint4PatchList },
327 TypeDatabase::createType<PrimitiveType::EPrimitiveType>().setEnumerators(primitiveTypes);
330 {
"None", StateChangeFlags::ChangeNone },
331 {
"Transform", StateChangeFlags::ChangeTransform },
332 {
"Mesh", StateChangeFlags::ChangeMesh },
333 {
"MaterialInstance", StateChangeFlags::ChangeMaterialInstance },
334 {
"MaterialVariant", StateChangeFlags::ChangeMaterialVariant },
335 {
"RasterizerState", StateChangeFlags::ChangeRasterizerState },
336 {
"BlendState", StateChangeFlags::ChangeBlendState },
337 {
"DepthStencilState", StateChangeFlags::ChangeDepthStencilState },
338 {
"RenderLayer", StateChangeFlags::ChangeLayer },
339 {
"Viewport", StateChangeFlags::ChangeViewport },
340 {
"ViewportData", StateChangeFlags::ChangeViewportData },
341 {
"All", StateChangeFlags::ChangeAll },
344 TypeDatabase::createType<StateChangeFlags>().setEnumerators(changeFlagsEnums).
348 {
"None", BucketMask::None },
349 {
"All", BucketMask::All },
350 {
"BackDrop", BucketMask::BackDrop },
351 {
"Transparent", BucketMask::Transparent },
352 {
"Solid", BucketMask::Solid },
353 {
"Opaque", BucketMask::Opaque },
354 {
"Overlay", BucketMask::Overlay },
355 {
"Custom", BucketMask::Custom },
358 TypeDatabase::createType<BucketMask>().setEnumerators(bucketMaskEnums);
361 {
"None", RenderTaskFlags::None },
362 {
"Persistent", RenderTaskFlags::Persistent },
363 {
"Static", RenderTaskFlags::Static },
366 TypeDatabase::createType<RenderTaskFlags::ERenderTaskFlags>().setEnumerators(renderTaskFlagsEnums).
370 {
"None", SortFlags::None },
371 {
"Default", SortFlags::Default },
372 {
"Depth", SortFlags::Depth },
373 {
"DrawOrder", SortFlags::DrawOrder },
374 {
"DrawOrderAndDepth", SortFlags::DrawOrderAndDepth },
377 TypeDatabase::createType<SortFlags>().setEnumerators(sortFlagsEnums).
381 {
"Default", DepthMode::Default },
382 {
"NoWrite", DepthMode::NoWrite },
383 {
"AlwaysWrite", DepthMode::AlwaysWrite },
384 {
"Disabled", DepthMode::Disabled },
387 TypeDatabase::createType<DepthMode>().setEnumerators(depthModeEnums);
390 {
"None", MaterialFlags::None },
391 {
"Default", MaterialFlags::Default },
392 {
"MasterTransparency", MaterialFlags::MasterTransparency },
393 {
"Backdrop", MaterialFlags::Backdrop },
394 {
"OverrideColor", MaterialFlags::OverrideColor },
395 {
"OverrideAlpha", MaterialFlags::OverrideAlpha },
396 {
"OverrideTextures", MaterialFlags::OverrideTextures },
397 {
"OverrideProperties", MaterialFlags::OverrideProperties },
398 {
"Override", MaterialFlags::Override },
399 {
"Sprite", MaterialFlags::Sprite },
400 {
"CustomBucket", MaterialFlags::CustomBucket },
403 TypeDatabase::createType<MaterialFlags::EMaterialFlags>().setEnumerators(materialFlagsEnums).
Provides a weakly referenced view over the contents of a string.
Contains reflection support.