summaryrefslogtreecommitdiff
path: root/tools/render-test/shader-input-layout.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/render-test/shader-input-layout.h')
-rw-r--r--tools/render-test/shader-input-layout.h131
1 files changed, 69 insertions, 62 deletions
diff --git a/tools/render-test/shader-input-layout.h b/tools/render-test/shader-input-layout.h
index c4c3d9d8c..0f5a54326 100644
--- a/tools/render-test/shader-input-layout.h
+++ b/tools/render-test/shader-input-layout.h
@@ -3,70 +3,77 @@
#include "core/basic.h"
-namespace renderer_test
+namespace renderer_test {
+
+enum class ShaderInputType
+{
+ Buffer, Texture, Sampler, CombinedTextureSampler
+};
+
+enum class InputTextureContent
+{
+ Zero, One, ChessBoard, Gradient
+};
+
+struct InputTextureDesc
+{
+ int dimension = 2;
+ int arrayLength = 0;
+ bool isCube = false;
+ bool isDepthTexture = false;
+ bool isRWTexture = false;
+ int size = 4;
+ InputTextureContent content = InputTextureContent::One;
+};
+
+enum class InputBufferType
+{
+ ConstantBuffer, StorageBuffer
+};
+
+struct InputBufferDesc
+{
+ InputBufferType type = InputBufferType::ConstantBuffer;
+ int stride = 0; // stride == 0 indicates an unstructured buffer.
+};
+
+struct InputSamplerDesc
+{
+ bool isCompareSampler = false;
+};
+
+class ShaderInputLayoutEntry
+{
+public:
+ ShaderInputType type;
+ Slang::List<unsigned int> bufferData;
+ InputTextureDesc textureDesc;
+ InputBufferDesc bufferDesc;
+ InputSamplerDesc samplerDesc;
+ bool isOutput = false;
+ int hlslBinding = -1;
+ Slang::List<int> glslBinding;
+};
+
+struct TextureData
+{
+ Slang::List<Slang::List<unsigned int>> dataBuffer;
+ int textureSize;
+ int mipLevels;
+ int arraySize;
+};
+
+class ShaderInputLayout
{
- enum class ShaderInputType
- {
- Buffer, Texture, Sampler, CombinedTextureSampler
- };
- enum class InputTextureContent
- {
- Zero, One, ChessBoard, Gradient
- };
- struct InputTextureDesc
- {
- int dimension = 2;
- int arrayLength = 0;
- bool isCube = false;
- bool isDepthTexture = false;
- bool isRWTexture = false;
- int size = 4;
- InputTextureContent content = InputTextureContent::One;
- };
- enum class InputBufferType
- {
- ConstantBuffer, StorageBuffer
- };
- struct InputBufferDesc
- {
- InputBufferType type = InputBufferType::ConstantBuffer;
- int stride = 0; // stride == 0 indicates an unstructured buffer.
- };
- struct InputSamplerDesc
- {
- bool isCompareSampler = false;
- };
- class ShaderInputLayoutEntry
- {
- public:
- ShaderInputType type;
- Slang::List<unsigned int> bufferData;
- InputTextureDesc textureDesc;
- InputBufferDesc bufferDesc;
- InputSamplerDesc samplerDesc;
- bool isOutput = false;
- int hlslBinding = -1;
- Slang::List<int> glslBinding;
-
- };
+public:
+ Slang::List<ShaderInputLayoutEntry> entries;
+ Slang::List<Slang::String> globalTypeArguments;
+ int numRenderTargets = 1;
+ void Parse(const char * source);
+};
- struct TextureData
- {
- Slang::List<Slang::List<unsigned int>> dataBuffer;
- int textureSize;
- int mipLevels;
- int arraySize;
- };
- void generateTextureData(TextureData & output, const InputTextureDesc & desc);
+void generateTextureData(TextureData & output, const InputTextureDesc & desc);
- class ShaderInputLayout
- {
- public:
- Slang::List<ShaderInputLayoutEntry> entries;
- Slang::List<Slang::String> globalTypeArguments;
- int numRenderTargets = 1;
- void Parse(const char * source);
- };
-}
+} // namespace render_test
#endif \ No newline at end of file