aboutsummaryrefslogtreecommitdiff
path: root/source/GraphicsTags.cpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2022-05-30 17:03:20 -0700
committerrtk0c <[email protected]>2022-05-30 17:03:20 -0700
commite66286ebe30afc9acc4531fc2bea29b7fb924f93 (patch)
treefa6b76554c3eb88bc8f088fbab68e20c40118ca7 /source/GraphicsTags.cpp
parent366ef5a5450c6e0e680c924c3454943a9ae9814d (diff)
Changeset: 56 Buildsystem cleanup: change to layered structure for different targets
Diffstat (limited to 'source/GraphicsTags.cpp')
-rw-r--r--source/GraphicsTags.cpp310
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>