// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved. #pragma once #include "Engine/Core/Config.h" #include "Engine/Core/Enums.h" #include "Engine/Graphics/Enums.h" #define INPUT_LAYOUT_ELEMENT_ALIGN 0xffffffff #define INPUT_LAYOUT_ELEMENT_PER_VERTEX_DATA 0 #define INPUT_LAYOUT_ELEMENT_PER_INSTANCE_DATA 1 /// /// Maximum amount of input elements for vertex shader programs /// #define VERTEX_SHADER_MAX_INPUT_ELEMENTS 16 /// /// Maximum allowed amount of shader program permutations /// #define SHADER_PERMUTATIONS_MAX_COUNT 16 /// /// Maximum allowed amount of parameters for permutation /// #define SHADER_PERMUTATIONS_MAX_PARAMS_COUNT 4 /// /// Maximum allowed amount of constant buffers that can be binded to the pipeline (maximum slot index is MAX_CONSTANT_BUFFER_SLOTS-1) /// #define MAX_CONSTANT_BUFFER_SLOTS 4 /// /// Shader program type /// DECLARE_ENUM_EX_6(ShaderStage, int32, 0, Vertex, Hull, Domain, Geometry, Pixel, Compute); /// /// Shader macro definition structure /// struct ShaderMacro { /// /// Macro name /// const char* Name; /// /// Macro value /// const char* Definition; };