diff options
author | rtk0c <[email protected]> | 2022-05-30 17:03:20 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2022-05-30 17:03:20 -0700 |
commit | e66286ebe30afc9acc4531fc2bea29b7fb924f93 (patch) | |
tree | fa6b76554c3eb88bc8f088fbab68e20c40118ca7 /source/GraphicsTags.cpp | |
parent | 366ef5a5450c6e0e680c924c3454943a9ae9814d (diff) |
Changeset: 56 Buildsystem cleanup: change to layered structure for different targets
Diffstat (limited to 'source/GraphicsTags.cpp')
-rw-r--r-- | source/GraphicsTags.cpp | 310 |
1 files changed, 0 insertions, 310 deletions
diff --git a/source/GraphicsTags.cpp b/source/GraphicsTags.cpp deleted file mode 100644 index 522a58f..0000000 --- a/source/GraphicsTags.cpp +++ /dev/null @@ -1,310 +0,0 @@ -#include "GraphicsTags.hpp" - -#include <robin_hood.h> -#include <cstddef> -#include <cstdint> - -using namespace std::literals; - -std::string_view Tags::NameOf(VertexElementSemantic semantic) { - switch (semantic) { - case VES_Position: return "Position"sv; - case VES_BlendWeights: return "BlendWeights"sv; - case VES_BlendIndices: return "BlendIndices"sv; - case VES_Normal: return "Normal"sv; - case VES_Color1: return "Color1"sv; - case VES_Color2: return "Color2"sv; - case VES_Color3: return "Color3"sv; - case VES_TexCoords1: return "TexCoords1"sv; - case VES_TexCoords2: return "TexCoords2"sv; - case VES_TexCoords3: return "TexCoords3"sv; - case VES_Binormal: return "Binormal"sv; - case VES_Tangent: return "Tangent"sv; - case VES_Generic: return "Generic"sv; - case VES_COUNT: break; - } - return std::string_view(); -} - -Tags::VertexElementSemantic Tags::FindVertexElementSemantic(std::string_view name) { - if (name == "Position"sv) return VES_Position; - if (name == "BlendWeights"sv) return VES_BlendWeights; - if (name == "BlendIndices"sv) return VES_BlendIndices; - if (name == "Normal"sv) return VES_Normal; - if (name == "Color1"sv) return VES_Color1; - if (name == "Color2"sv) return VES_Color2; - if (name == "Color3"sv) return VES_Color3; - if (name == "TexCoords1"sv) return VES_TexCoords1; - if (name == "TexCoords2"sv) return VES_TexCoords2; - if (name == "TexCoords3"sv) return VES_TexCoords3; - if (name == "Binormal"sv) return VES_Binormal; - if (name == "Tangent"sv) return VES_Tangent; - if (name == "Generic"sv) return VES_Generic; - return VES_COUNT; -} - -int Tags::SizeOf(VertexElementType type) { - switch (type) { - case VET_Float1: - return sizeof(float); - case VET_Float2: - return sizeof(float) * 2; - case VET_Float3: - return sizeof(float) * 3; - case VET_Float4: - return sizeof(float) * 4; - case VET_Double1: - return sizeof(double); - case VET_Double2: - return sizeof(double) * 2; - case VET_Double3: - return sizeof(double) * 3; - case VET_Double4: - return sizeof(double) * 4; - case VET_Short2: - case VET_Short2Norm: - case VET_Ushort2: - case VET_Ushort2Norm: - return sizeof(short) * 2; - case VET_Short4: - case VET_Short4Norm: - case VET_Ushort4: - case VET_Ushort4Norm: - return sizeof(short) * 4; - case VET_Int1: - case VET_Uint1: - return sizeof(int); - case VET_Int2: - case VET_Uint2: - return sizeof(int) * 2; - case VET_Int3: - case VET_Uint3: - return sizeof(int) * 3; - case VET_Int4: - case VET_Uint4: - return sizeof(int) * 4; - case VET_Byte4: - case VET_Byte4Norm: - case VET_Ubyte4: - case VET_Ubyte4Norm: - return sizeof(char) * 4; - } - return 0; -} - -int Tags::VectorLenOf(VertexElementType type) { - switch (type) { - case VET_Float1: - case VET_Double1: - case VET_Int1: - case VET_Uint1: - return 1; - case VET_Float2: - case VET_Double2: - case VET_Short2: - case VET_Short2Norm: - case VET_Ushort2: - case VET_Ushort2Norm: - case VET_Int2: - case VET_Uint2: - return 2; - case VET_Float3: - case VET_Double3: - case VET_Int3: - case VET_Uint3: - return 3; - case VET_Float4: - case VET_Double4: - case VET_Short4: - case VET_Short4Norm: - case VET_Ushort4: - case VET_Ushort4Norm: - case VET_Int4: - case VET_Uint4: - case VET_Byte4: - case VET_Byte4Norm: - case VET_Ubyte4: - case VET_Ubyte4Norm: - return 4; - } - return 0; -} - -GLenum Tags::FindGLType(VertexElementType type) { - switch (type) { - case VET_Float1: - case VET_Float2: - case VET_Float3: - case VET_Float4: - return GL_FLOAT; - case VET_Double1: - case VET_Double2: - case VET_Double3: - case VET_Double4: - return GL_DOUBLE; - case VET_Short2: - case VET_Short2Norm: - case VET_Short4: - case VET_Short4Norm: - return GL_SHORT; - case VET_Ushort2: - case VET_Ushort2Norm: - case VET_Ushort4: - case VET_Ushort4Norm: - return GL_UNSIGNED_SHORT; - case VET_Int1: - case VET_Int2: - case VET_Int3: - case VET_Int4: - return GL_INT; - case VET_Uint1: - case VET_Uint2: - case VET_Uint3: - case VET_Uint4: - return GL_UNSIGNED_INT; - case VET_Byte4: - case VET_Byte4Norm: - return GL_BYTE; - case VET_Ubyte4: - case VET_Ubyte4Norm: - return GL_UNSIGNED_BYTE; - } - return 0; -} - -bool Tags::IsNormalized(VertexElementType type) { - return type >= VET_NORM_BEGIN && type <= VET_NORM_END; -} - -int Tags::SizeOf(IndexType type) { - switch (type) { - case IT_16Bit: return sizeof(uint16_t); - case IT_32Bit: return sizeof(uint32_t); - } - return 0; -} - -GLenum Tags::FindGLType(IndexType type) { - switch (type) { - case IT_16Bit: return GL_UNSIGNED_SHORT; - case IT_32Bit: return GL_UNSIGNED_BYTE; - } - return GL_NONE; -} - -namespace ProjectBrussel_UNITY_ID { -struct GLTypeInfo { - robin_hood::unordered_flat_map<GLenum, std::string_view> enum2Name; - robin_hood::unordered_flat_map<std::string_view, GLenum> name2Enum; - - GLTypeInfo() { - InsertEntry("float"sv, GL_FLOAT); - InsertEntry("double"sv, GL_DOUBLE); - InsertEntry("int"sv, GL_INT); - InsertEntry("uint"sv, GL_UNSIGNED_INT); - InsertEntry("bool"sv, GL_BOOL); - - InsertEntry("vec2"sv, GL_FLOAT_VEC2); - InsertEntry("vec3"sv, GL_FLOAT_VEC3); - InsertEntry("vec4"sv, GL_FLOAT_VEC4); - InsertEntry("dvec2"sv, GL_DOUBLE_VEC2); - InsertEntry("dvec3"sv, GL_DOUBLE_VEC3); - InsertEntry("dvec4"sv, GL_DOUBLE_VEC4); - InsertEntry("ivec2"sv, GL_INT_VEC2); - InsertEntry("ivec3"sv, GL_INT_VEC3); - InsertEntry("ivec4"sv, GL_INT_VEC4); - InsertEntry("uvec2"sv, GL_UNSIGNED_INT_VEC2); - InsertEntry("uvec3"sv, GL_UNSIGNED_INT_VEC3); - InsertEntry("uvec4"sv, GL_UNSIGNED_INT_VEC4); - InsertEntry("bvec2"sv, GL_BOOL_VEC2); - InsertEntry("bvec3"sv, GL_BOOL_VEC3); - InsertEntry("bvec4"sv, GL_BOOL_VEC4); - - InsertEntry("mat2"sv, GL_FLOAT_MAT2); - InsertEntry("mat3"sv, GL_FLOAT_MAT3); - InsertEntry("mat4"sv, GL_FLOAT_MAT4); - InsertEntry("mat2x3"sv, GL_FLOAT_MAT2x3); - InsertEntry("mat2x4"sv, GL_FLOAT_MAT2x4); - InsertEntry("mat3x2"sv, GL_FLOAT_MAT3x2); - InsertEntry("mat3x4"sv, GL_FLOAT_MAT3x4); - InsertEntry("mat4x2"sv, GL_FLOAT_MAT4x2); - InsertEntry("mat4x3"sv, GL_FLOAT_MAT4x3); - - InsertEntry("dmat2"sv, GL_DOUBLE_MAT2); - InsertEntry("dmat3"sv, GL_DOUBLE_MAT3); - InsertEntry("dmat4"sv, GL_DOUBLE_MAT4); - InsertEntry("dmat2x3"sv, GL_DOUBLE_MAT2x3); - InsertEntry("dmat2x4"sv, GL_DOUBLE_MAT2x4); - InsertEntry("dmat3x2"sv, GL_DOUBLE_MAT3x2); - InsertEntry("dmat3x4"sv, GL_DOUBLE_MAT3x4); - InsertEntry("dmat4x2"sv, GL_DOUBLE_MAT4x2); - InsertEntry("dmat4x3"sv, GL_DOUBLE_MAT4x3); - - InsertEntry("sampler1D"sv, GL_SAMPLER_1D); - InsertEntry("sampler2D"sv, GL_SAMPLER_2D); - InsertEntry("sampler3D"sv, GL_SAMPLER_3D); - InsertEntry("samplerCube"sv, GL_SAMPLER_CUBE); - InsertEntry("sampler1DShadow"sv, GL_SAMPLER_1D_SHADOW); - InsertEntry("sampler2DShadow"sv, GL_SAMPLER_2D_SHADOW); - InsertEntry("sampler1DArray"sv, GL_SAMPLER_1D_ARRAY); - InsertEntry("sampler2DArray"sv, GL_SAMPLER_2D_ARRAY); - InsertEntry("sampler1DArrayShadow"sv, GL_SAMPLER_1D_ARRAY_SHADOW); - InsertEntry("sampler2DArrayShadow"sv, GL_SAMPLER_2D_ARRAY_SHADOW); - InsertEntry("sampler2DMultisample"sv, GL_SAMPLER_2D_MULTISAMPLE); - InsertEntry("sampler2DMultisampleArray"sv, GL_SAMPLER_2D_MULTISAMPLE_ARRAY); - InsertEntry("samplerCubeShadow"sv, GL_SAMPLER_CUBE_SHADOW); - InsertEntry("samplerBuffer"sv, GL_SAMPLER_BUFFER); - InsertEntry("sampler2DRect"sv, GL_SAMPLER_2D_RECT); - InsertEntry("sampler2DRectShadow"sv, GL_SAMPLER_2D_RECT_SHADOW); - - InsertEntry("isampler1D"sv, GL_INT_SAMPLER_1D); - InsertEntry("isampler2D"sv, GL_INT_SAMPLER_2D); - InsertEntry("isampler3D"sv, GL_INT_SAMPLER_3D); - InsertEntry("isamplerCube"sv, GL_INT_SAMPLER_CUBE); - InsertEntry("isampler1DArray"sv, GL_INT_SAMPLER_1D_ARRAY); - InsertEntry("isampler2DArray"sv, GL_INT_SAMPLER_2D_ARRAY); - InsertEntry("isampler2DMultisample"sv, GL_INT_SAMPLER_2D_MULTISAMPLE); - InsertEntry("isampler2DMultisampleArray"sv, GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY); - InsertEntry("isamplerBuffer"sv, GL_INT_SAMPLER_BUFFER); - InsertEntry("isampler2DRect"sv, GL_INT_SAMPLER_2D_RECT); - - InsertEntry("usampler1D"sv, GL_UNSIGNED_INT_SAMPLER_1D); - InsertEntry("usampler2D"sv, GL_UNSIGNED_INT_SAMPLER_2D); - InsertEntry("usampler3D"sv, GL_UNSIGNED_INT_SAMPLER_3D); - InsertEntry("usamplerCube"sv, GL_UNSIGNED_INT_SAMPLER_CUBE); - InsertEntry("usampler1DArray"sv, GL_UNSIGNED_INT_SAMPLER_1D_ARRAY); - InsertEntry("usampler2DArray"sv, GL_UNSIGNED_INT_SAMPLER_2D_ARRAY); - InsertEntry("usampler2DMultisample"sv, GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE); - InsertEntry("usampler2DMultisampleArray"sv, GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY); - InsertEntry("usamplerBuffer"sv, GL_UNSIGNED_INT_SAMPLER_BUFFER); - InsertEntry("usampler2DRect"sv, GL_UNSIGNED_INT_SAMPLER_2D_RECT); - } - - void InsertEntry(std::string_view name, GLenum value) { - enum2Name.try_emplace(value, name); - name2Enum.try_emplace(name, value); - } -} const kGLTypeInfo; -} // namespace ProjectBrussel_UNITY_ID - -std::string_view Tags::NameOfGLType(GLenum value) { - using namespace ProjectBrussel_UNITY_ID; - auto iter = kGLTypeInfo.enum2Name.find(value); - if (iter != kGLTypeInfo.enum2Name.end()) { - return iter->second; - } else { - return std::string_view(); - } -} - -GLenum Tags::FindGLType(std::string_view name) { - using namespace ProjectBrussel_UNITY_ID; - auto iter = kGLTypeInfo.name2Enum.find(name); - if (iter != kGLTypeInfo.name2Enum.end()) { - return iter->second; - } else { - return GL_NONE; - } -} - -#include <generated/GraphicsTags.gs.inl> |