3#include "Rendering/IEffects.h"
5#include "MaterialTypes.h"
6#include "MeshStreamsLayout.h"
7#include "Utilities/Strings.h"
8#include "Rendering/IBindGroups.h"
14 enum InterpolationModifiers
17 LinearModifier = (1 << 0),
18 CentroidModifier = (1 << 1),
19 NointerpolationModifier = (1 << 2),
20 NoperspectiveModifier = (1 << 3),
21 SampleModifier = (1 << 4)
22 } modifiers = NoModifier;
24 enum struct SemanticName : uint8_t {
33 FirstSystemValueSemantic,
34 SV_Position = FirstSystemValueSemantic,
44 SemanticName name = SemanticName::None;
50 uint8_t inheritanceLevel = 0;
52 static StringView semanticNameString(
const SemanticName name);
57 std::vector<ShaderInterfaceMemberDefinition> members;
68 std::string customSourcePath;
71 std::string entryPoint;
73 std::vector<AttributeDefinition> attributes;
78 enum EffectDefinitionFlags
93 std::vector<EffectOutputMemberDefinition> members;
131 EffectDefinitionFlags flags = EffectDefinitionFlags::None;
Provides a weakly referenced view over the contents of a string.
Contains the Engine, Renderer, resource managers and other systems needed to run Cogs....
@ Normal
Regular shaded rendering.
MaterialDataType
Defines available data types for material properties.
std::vector< PreprocessorDefinition > PreprocessorDefinitions
A set of preprocessor definitions.
Defines a loadable effect.
std::string name
Name of the effect.
std::vector< std::string > dependencies
MeshStreamsLayout streamsLayout
The vertex layout this effect expects.
PreprocessorDefinitions definitions
Preprocessor definitions.
BindGroupSetDescription bindGroupLayouts
Optional backend-neutral bind-group layout metadata, typically emitted by shader builders.