CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
Reflection.hpp File Reference
#include "CeresEngine/DataTypes.hpp"
#include "CeresEngine/Foundation/String.hpp"
#include "CeresEngine/Foundation/Container/Vector.hpp"
#include <limits>
#include <ostream>

Go to the source code of this file.

Classes

struct  CeresEngine::ShaderCompiler::Reflection::SamplerStateDesc
 Static sampler state descriptor structure (D3D11_SAMPLER_DESC). More...
 
struct  CeresEngine::ShaderCompiler::Reflection::Attribute
 Input/output attribute and uniform reflection structure. More...
 
struct  CeresEngine::ShaderCompiler::Reflection::Resource
 Resource reflection structure for textures, combined texture samplers, and buffers. More...
 
struct  CeresEngine::ShaderCompiler::Reflection::Field
 A field denotes a data member of a record or constant buffer. More...
 
struct  CeresEngine::ShaderCompiler::Reflection::Record
 A record denotes a data structure declared in a shader. More...
 
struct  CeresEngine::ShaderCompiler::Reflection::ConstantBuffer
 Constant buffer reflection structure. More...
 
struct  CeresEngine::ShaderCompiler::Reflection::SamplerState
 Sampler state reflection structure. More...
 
struct  CeresEngine::ShaderCompiler::Reflection::StaticSamplerState
 Static sampler state reflection structure. More...
 
struct  CeresEngine::ShaderCompiler::Reflection::NumThreads
 Number of threads within each work group of a compute shader. More...
 
struct  CeresEngine::ShaderCompiler::Reflection::ReflectionData
 Structure for shader output statistics (e.g. texture/buffer binding points). More...
 

Namespaces

namespace  CeresEngine
 
namespace  CeresEngine::ShaderCompiler
 
namespace  CeresEngine::ShaderCompiler::Reflection
 Shader code reflection namespace.
 

Enumerations

enum class  CeresEngine::ShaderCompiler::Reflection::Filter {
  CeresEngine::ShaderCompiler::Reflection::MinMagMipPoint = 0 , CeresEngine::ShaderCompiler::Reflection::MinMagPointMipLinear = 0x1 , CeresEngine::ShaderCompiler::Reflection::MinPointMagLinearMipPoint = 0x4 , CeresEngine::ShaderCompiler::Reflection::MinPointMagMipLinear = 0x5 ,
  CeresEngine::ShaderCompiler::Reflection::MinLinearMagMipPoint = 0x10 , CeresEngine::ShaderCompiler::Reflection::MinLinearMagPointMipLinear = 0x11 , CeresEngine::ShaderCompiler::Reflection::MinMagLinearMipPoint = 0x14 , CeresEngine::ShaderCompiler::Reflection::MinMagMipLinear = 0x15 ,
  CeresEngine::ShaderCompiler::Reflection::Anisotropic = 0x55 , CeresEngine::ShaderCompiler::Reflection::ComparisonMinMagMipPoint = 0x80 , CeresEngine::ShaderCompiler::Reflection::ComparisonMinMagPointMipLinear = 0x81 , CeresEngine::ShaderCompiler::Reflection::ComparisonMinPointMagLinearMipPoint = 0x84 ,
  CeresEngine::ShaderCompiler::Reflection::ComparisonMinPointMagMipLinear = 0x85 , CeresEngine::ShaderCompiler::Reflection::ComparisonMinLinearMagMipPoint = 0x90 , CeresEngine::ShaderCompiler::Reflection::ComparisonMinLinearMagPointMipLinear = 0x91 , CeresEngine::ShaderCompiler::Reflection::ComparisonMinMagLinearMipPoint = 0x94 ,
  CeresEngine::ShaderCompiler::Reflection::ComparisonMinMagMipLinear = 0x95 , CeresEngine::ShaderCompiler::Reflection::ComparisonAnisotropic = 0xd5 , CeresEngine::ShaderCompiler::Reflection::MinimumMinMagMipPoint = 0x100 , CeresEngine::ShaderCompiler::Reflection::MinimumMinMagPointMipLinear = 0x101 ,
  CeresEngine::ShaderCompiler::Reflection::MinimumMinPointMagLinearMipPoint = 0x104 , CeresEngine::ShaderCompiler::Reflection::MinimumMinPointMagMipLinear = 0x105 , CeresEngine::ShaderCompiler::Reflection::MinimumMinLinearMagMipPoint = 0x110 , CeresEngine::ShaderCompiler::Reflection::MinimumMinLinearMagPointMipLinear = 0x111 ,
  CeresEngine::ShaderCompiler::Reflection::MinimumMinMagLinearMipPoint = 0x114 , CeresEngine::ShaderCompiler::Reflection::MinimumMinMagMipLinear = 0x115 , CeresEngine::ShaderCompiler::Reflection::MinimumAnisotropic = 0x155 , CeresEngine::ShaderCompiler::Reflection::MaximumMinMagMipPoint = 0x180 ,
  CeresEngine::ShaderCompiler::Reflection::MaximumMinMagPointMipLinear = 0x181 , CeresEngine::ShaderCompiler::Reflection::MaximumMinPointMagLinearMipPoint = 0x184 , CeresEngine::ShaderCompiler::Reflection::MaximumMinPointMagMipLinear = 0x185 , CeresEngine::ShaderCompiler::Reflection::MaximumMinLinearMagMipPoint = 0x190 ,
  CeresEngine::ShaderCompiler::Reflection::MaximumMinLinearMagPointMipLinear = 0x191 , CeresEngine::ShaderCompiler::Reflection::MaximumMinMagLinearMipPoint = 0x194 , CeresEngine::ShaderCompiler::Reflection::MaximumMinMagMipLinear = 0x195 , CeresEngine::ShaderCompiler::Reflection::MaximumAnisotropic = 0x1d5
}
 Sampler filter enumeration (compatible to D3D11_FILTER). More...
 
enum class  CeresEngine::ShaderCompiler::Reflection::TextureAddressMode {
  CeresEngine::ShaderCompiler::Reflection::Wrap = 1 , CeresEngine::ShaderCompiler::Reflection::Mirror = 2 , CeresEngine::ShaderCompiler::Reflection::Clamp = 3 , CeresEngine::ShaderCompiler::Reflection::Border = 4 ,
  CeresEngine::ShaderCompiler::Reflection::MirrorOnce = 5
}
 Texture address mode enumeration (compatible to D3D11_TEXTURE_ADDRESS_MODE). More...
 
enum class  CeresEngine::ShaderCompiler::Reflection::ComparisonFunc {
  CeresEngine::ShaderCompiler::Reflection::Never = 1 , CeresEngine::ShaderCompiler::Reflection::Less = 2 , CeresEngine::ShaderCompiler::Reflection::Equal = 3 , CeresEngine::ShaderCompiler::Reflection::LessEqual = 4 ,
  CeresEngine::ShaderCompiler::Reflection::Greater = 5 , CeresEngine::ShaderCompiler::Reflection::NotEqual = 6 , CeresEngine::ShaderCompiler::Reflection::GreaterEqual = 7 , CeresEngine::ShaderCompiler::Reflection::Always = 8
}
 Sample comparison function enumeration (compatible to D3D11_COMPARISON_FUNC). More...
 
enum class  CeresEngine::ShaderCompiler::Reflection::FieldType {
  CeresEngine::ShaderCompiler::Reflection::Undefined , CeresEngine::ShaderCompiler::Reflection::Bool , CeresEngine::ShaderCompiler::Reflection::Int , CeresEngine::ShaderCompiler::Reflection::UInt ,
  CeresEngine::ShaderCompiler::Reflection::Half , CeresEngine::ShaderCompiler::Reflection::Float , CeresEngine::ShaderCompiler::Reflection::Double , CeresEngine::ShaderCompiler::Reflection::Record
}
 Data field type enumeration. More...
 
enum class  CeresEngine::ShaderCompiler::Reflection::ResourceType {
  CeresEngine::ShaderCompiler::Reflection::Undefined , CeresEngine::ShaderCompiler::Reflection::Texture1D , CeresEngine::ShaderCompiler::Reflection::Texture2D , CeresEngine::ShaderCompiler::Reflection::Texture3D ,
  CeresEngine::ShaderCompiler::Reflection::TextureCube , CeresEngine::ShaderCompiler::Reflection::Texture1DArray , CeresEngine::ShaderCompiler::Reflection::Texture2DArray , CeresEngine::ShaderCompiler::Reflection::TextureCubeArray ,
  CeresEngine::ShaderCompiler::Reflection::Texture2DMS , CeresEngine::ShaderCompiler::Reflection::Texture2DMSArray , CeresEngine::ShaderCompiler::Reflection::RWTexture1D , CeresEngine::ShaderCompiler::Reflection::RWTexture2D ,
  CeresEngine::ShaderCompiler::Reflection::RWTexture3D , CeresEngine::ShaderCompiler::Reflection::RWTextureCube , CeresEngine::ShaderCompiler::Reflection::RWTexture1DArray , CeresEngine::ShaderCompiler::Reflection::RWTexture2DArray ,
  CeresEngine::ShaderCompiler::Reflection::RWTextureCubeArray , CeresEngine::ShaderCompiler::Reflection::RWTexture2DMS , CeresEngine::ShaderCompiler::Reflection::RWTexture2DMSArray , CeresEngine::ShaderCompiler::Reflection::Sampler1D ,
  CeresEngine::ShaderCompiler::Reflection::Sampler2D , CeresEngine::ShaderCompiler::Reflection::Sampler3D , CeresEngine::ShaderCompiler::Reflection::SamplerCube , CeresEngine::ShaderCompiler::Reflection::Sampler1DArray ,
  CeresEngine::ShaderCompiler::Reflection::Sampler2DArray , CeresEngine::ShaderCompiler::Reflection::SamplerCubeArray , CeresEngine::ShaderCompiler::Reflection::Sampler2DMS , CeresEngine::ShaderCompiler::Reflection::Sampler2DMSArray ,
  CeresEngine::ShaderCompiler::Reflection::Sampler2DRect , CeresEngine::ShaderCompiler::Reflection::Buffer , CeresEngine::ShaderCompiler::Reflection::ByteAddressBuffer , CeresEngine::ShaderCompiler::Reflection::StructuredBuffer ,
  CeresEngine::ShaderCompiler::Reflection::AppendStructuredBuffer , CeresEngine::ShaderCompiler::Reflection::ConsumeStructuredBuffer , CeresEngine::ShaderCompiler::Reflection::RWBuffer , CeresEngine::ShaderCompiler::Reflection::RWByteAddressBuffer ,
  CeresEngine::ShaderCompiler::Reflection::RWStructuredBuffer , CeresEngine::ShaderCompiler::Reflection::ConstantBuffer , CeresEngine::ShaderCompiler::Reflection::TextureBuffer , CeresEngine::ShaderCompiler::Reflection::SamplerState ,
  CeresEngine::ShaderCompiler::Reflection::SamplerComparisonState
}
 Resource type enumeration. More...
 

Functions

String CeresEngine::ShaderCompiler::toString (const Reflection::Filter t)
 Returns the string representation of the specified <Filter> type.
 
String CeresEngine::ShaderCompiler::toString (const Reflection::TextureAddressMode t)
 Returns the string representation of the specified <TextureAddressMode> type.
 
String CeresEngine::ShaderCompiler::toString (const Reflection::ComparisonFunc t)
 Returns the string representation of the specified <ComparisonFunc> type.
 
String CeresEngine::ShaderCompiler::toString (const Reflection::ResourceType t)
 Returns the string representation of the specified <Reflection::ResourceType> type.
 
void CeresEngine::ShaderCompiler::printReflection (std::ostream &stream, const Reflection::ReflectionData &reflectionData, bool referencedOnly=false)
 Prints the reflection data into the output stream in a human readable format.