Plasma Engine  2.0
Loading...
Searching...
No Matches
RenderContextStructs.h
1#pragma once
2
3#include <Foundation/Reflection/Reflection.h>
4#include <RendererCore/Declarations.h>
5
7// plShaderBindFlags
9
10struct PL_RENDERERCORE_DLL plShaderBindFlags
11{
12 using StorageType = plUInt32;
13
14 enum Enum
15 {
16 None = 0,
17 ForceRebind = PL_BIT(0),
19 NoRasterizerState =
20 PL_BIT(1),
21 NoDepthStencilState = PL_BIT(
22 2),
23 NoBlendState =
24 PL_BIT(3),
25 NoStateBinding = NoRasterizerState | NoDepthStencilState | NoBlendState,
26
27 Default = None
28 };
29
30 struct Bits
31 {
32 StorageType ForceRebind : 1;
33 StorageType NoRasterizerState : 1;
34 StorageType NoDepthStencilState : 1;
35 StorageType NoBlendState : 1;
36 };
37};
38
39PL_DECLARE_FLAGS_OPERATORS(plShaderBindFlags);
40
42// plRenderContextFlags
44
45struct PL_RENDERERCORE_DLL plRenderContextFlags
46{
47 using StorageType = plUInt32;
48
49 enum Enum
50 {
51 None = 0,
52 ShaderStateChanged = PL_BIT(0),
53 TextureBindingChanged = PL_BIT(1),
54 UAVBindingChanged = PL_BIT(2),
55 SamplerBindingChanged = PL_BIT(3),
56 BufferBindingChanged = PL_BIT(4),
57 ConstantBufferBindingChanged = PL_BIT(5),
58 MeshBufferBindingChanged = PL_BIT(6),
59 MaterialBindingChanged = PL_BIT(7),
60
61 AllStatesInvalid = ShaderStateChanged | TextureBindingChanged | UAVBindingChanged | SamplerBindingChanged | BufferBindingChanged |
62 ConstantBufferBindingChanged | MeshBufferBindingChanged,
63 Default = None
64 };
65
66 struct Bits
67 {
68 StorageType ShaderStateChanged : 1;
69 StorageType TextureBindingChanged : 1;
70 StorageType UAVBindingChanged : 1;
71 StorageType SamplerBindingChanged : 1;
72 StorageType BufferBindingChanged : 1;
73 StorageType ConstantBufferBindingChanged : 1;
74 StorageType MeshBufferBindingChanged : 1;
75 StorageType MaterialBindingChanged : 1;
76 };
77};
78
79PL_DECLARE_FLAGS_OPERATORS(plRenderContextFlags);
80
82// plDefaultSamplerFlags
84
85struct PL_RENDERERCORE_DLL plDefaultSamplerFlags
86{
87 using StorageType = plUInt32;
88
89 enum Enum
90 {
91 PointFiltering = 0,
92 LinearFiltering = PL_BIT(0),
93
94 Wrap = 0,
95 Clamp = PL_BIT(1)
96 };
97
98 struct Bits
99 {
100 StorageType LinearFiltering : 1;
101 StorageType Clamp : 1;
102 };
103};
104
105PL_DECLARE_FLAGS_OPERATORS(plDefaultSamplerFlags);
Definition RenderContextStructs.h:99
Definition RenderContextStructs.h:86
Definition RenderContextStructs.h:67
Definition RenderContextStructs.h:46
Definition RenderContextStructs.h:31
Definition RenderContextStructs.h:11
Enum
Definition RenderContextStructs.h:15