Cogs.Core
EffectBinding.h
1#pragma once
2
3#include "Rendering/Common.h"
4
5#include "Resources/Resources.h"
6#include "Resources/MaterialTypes.h"
7
8#include <unordered_map>
9#include <vector>
10
11namespace Cogs
12{
13 namespace Core
14 {
15 struct RenderEffect;
16
18 {
23
24
32
41 SamplerStateBindingHandle ambientIrradianceSamplerBinding = SamplerStateBindingHandle::NoHandle;
43
45
48 };
49
51 {
52 std::vector<ConstantBufferBindingHandle> bufferBindings;
53 uint16_t buffersGeneration = static_cast<uint16_t>(-1);
54 uint16_t generation = 0;
55 uint16_t effectGeneration = static_cast<uint16_t>(-1);
56
57 std::vector<TextureBindingHandle> textureBindings;
58 std::vector<SamplerStateBindingHandle> samplerBindings;
59
61
63
65 {
67 size_t offset;
69 Cogs::Core::ConstantBufferKey buffer;
70 };
71 std::vector<ConstantBufferVariable> constantBufferVariables;
72
73
75 {
76 EffectVariableHandle projectionMatrix;
77 EffectVariableHandle viewMatrix;
78 EffectVariableHandle inverseViewMatrix;
79 EffectVariableHandle inverseProjectionMatrix;
80 EffectVariableHandle worldToClipMatrix;
81 EffectVariableHandle viewFromiewportTMatrix;
82 EffectVariableHandle projectionParameters;
83 EffectVariableHandle viewport;
84 EffectVariableHandle clippingPlanesBinding;
85 } sceneBindings;
86
88 {
89 EffectVariableHandle lightTransforms;
90 EffectVariableHandle lightColors;
91 EffectVariableHandle numLights;
92 EffectVariableHandle eyePosition;
93 EffectVariableHandle fogColor;
94 EffectVariableHandle ambientColor;
95 } lightBindings;
96
98 {
99 EffectVariableHandle worldMatrix;
100 EffectVariableHandle objectData;
101 } objectBindings;
102
103 struct Buffer
104 {
105 BufferHandle handle;
106 size_t generation = 0;
107 };
108
109 RenderEffect * renderEffect = nullptr;
110 std::vector<Buffer> buffers;
111 };
112 }
113}
MaterialDataType
Defines available data types for material properties.
Definition: MaterialTypes.h:20
Contains all Cogs related functionality.
Definition: FieldSetter.h:23
static const Handle_t NoHandle
Represents a handle to nothing.
Definition: Common.h:78