From 2c90ccabb39a64b039c87e5ea836a9080d04054d Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sun, 23 Feb 2020 16:49:38 -0400 Subject: [PATCH] Avoid some hardcoded strings --- src/modules/graphics/Buffer.cpp | 40 ++++++++++++++++----------------- src/modules/graphics/vertex.cpp | 7 ++++++ src/modules/graphics/vertex.h | 2 ++ 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/src/modules/graphics/Buffer.cpp b/src/modules/graphics/Buffer.cpp index 096217780..211e84500 100644 --- a/src/modules/graphics/Buffer.cpp +++ b/src/modules/graphics/Buffer.cpp @@ -131,53 +131,53 @@ std::vector Buffer::getCommonFormatDeclaration(CommonFo return {}; case CommonFormat::XYf: return { - {"VertexPosition", DATAFORMAT_FLOAT_VEC2} + { getConstant(ATTRIB_POS), DATAFORMAT_FLOAT_VEC2 } }; case CommonFormat::XYZf: return { - {"VertexPosition", DATAFORMAT_FLOAT_VEC3} + { getConstant(ATTRIB_POS), DATAFORMAT_FLOAT_VEC3 } }; case CommonFormat::RGBAub: return { - {"VertexColor", DATAFORMAT_UNORM8_VEC4} + { getConstant(ATTRIB_COLOR), DATAFORMAT_UNORM8_VEC4 } }; case CommonFormat::STf_RGBAub: return { - {"VertexTexCoord", DATAFORMAT_FLOAT_VEC2}, - {"VertexColor", DATAFORMAT_UNORM8_VEC4}, + { getConstant(ATTRIB_TEXCOORD), DATAFORMAT_FLOAT_VEC2 }, + { getConstant(ATTRIB_COLOR), DATAFORMAT_UNORM8_VEC4 }, }; case CommonFormat::STPf_RGBAub: return { - {"VertexTexCoord", DATAFORMAT_FLOAT_VEC3}, - {"VertexColor", DATAFORMAT_UNORM8_VEC4}, + { getConstant(ATTRIB_TEXCOORD), DATAFORMAT_FLOAT_VEC3 }, + { getConstant(ATTRIB_COLOR), DATAFORMAT_UNORM8_VEC4 }, }; case CommonFormat::XYf_STf: return { - {"VertexPosition", DATAFORMAT_FLOAT_VEC2}, - {"VertexTexCoord", DATAFORMAT_FLOAT_VEC2}, + { getConstant(ATTRIB_POS), DATAFORMAT_FLOAT_VEC2 }, + { getConstant(ATTRIB_TEXCOORD), DATAFORMAT_FLOAT_VEC2 }, }; case CommonFormat::XYf_STPf: return { - {"VertexPosition", DATAFORMAT_FLOAT_VEC2}, - {"VertexTexCoord", DATAFORMAT_FLOAT_VEC3}, + { getConstant(ATTRIB_POS), DATAFORMAT_FLOAT_VEC2 }, + { getConstant(ATTRIB_TEXCOORD), DATAFORMAT_FLOAT_VEC3 }, }; case CommonFormat::XYf_STf_RGBAub: return { - {"VertexPosition", DATAFORMAT_FLOAT_VEC2}, - {"VertexTexCoord", DATAFORMAT_FLOAT_VEC2}, - {"VertexColor", DATAFORMAT_UNORM8_VEC4}, + { getConstant(ATTRIB_POS), DATAFORMAT_FLOAT_VEC2 }, + { getConstant(ATTRIB_TEXCOORD), DATAFORMAT_FLOAT_VEC2 }, + { getConstant(ATTRIB_COLOR), DATAFORMAT_UNORM8_VEC4 }, }; case CommonFormat::XYf_STus_RGBAub: return { - {"VertexPosition", DATAFORMAT_FLOAT_VEC2}, - {"VertexTexCoord", DATAFORMAT_UNORM16_VEC2}, - {"VertexColor", DATAFORMAT_UNORM8_VEC4}, + { getConstant(ATTRIB_POS), DATAFORMAT_FLOAT_VEC2 }, + { getConstant(ATTRIB_TEXCOORD), DATAFORMAT_UNORM16_VEC2 }, + { getConstant(ATTRIB_COLOR), DATAFORMAT_UNORM8_VEC4 }, }; case CommonFormat::XYf_STPf_RGBAub: return { - {"VertexPosition", DATAFORMAT_FLOAT_VEC2}, - {"VertexTexCoord", DATAFORMAT_FLOAT_VEC2}, - {"VertexColor", DATAFORMAT_UNORM8_VEC4}, + { getConstant(ATTRIB_POS), DATAFORMAT_FLOAT_VEC2 }, + { getConstant(ATTRIB_TEXCOORD), DATAFORMAT_FLOAT_VEC2 }, + { getConstant(ATTRIB_COLOR), DATAFORMAT_UNORM8_VEC4 }, }; } diff --git a/src/modules/graphics/vertex.cpp b/src/modules/graphics/vertex.cpp index c5e3e32dd..c64496b98 100644 --- a/src/modules/graphics/vertex.cpp +++ b/src/modules/graphics/vertex.cpp @@ -320,6 +320,13 @@ DEFINE_STRINGMAP_BEGIN(BuiltinVertexAttribute, ATTRIB_MAX_ENUM, attribName) } DEFINE_STRINGMAP_END(BuiltinVertexAttribute, ATTRIB_MAX_ENUM, attribName) +const char *getConstant(BuiltinVertexAttribute attrib) +{ + const char *name = nullptr; + getConstant(attrib, name); + return name; +} + DEFINE_STRINGMAP_BEGIN(IndexDataType, INDEX_MAX_ENUM, indexType) { { "uint16", INDEX_UINT16 }, diff --git a/src/modules/graphics/vertex.h b/src/modules/graphics/vertex.h index a24e92604..33072939e 100644 --- a/src/modules/graphics/vertex.h +++ b/src/modules/graphics/vertex.h @@ -393,5 +393,7 @@ DECLARE_STRINGMAP(DataBaseType); DECLARE_STRINGMAP(CullMode); DECLARE_STRINGMAP(Winding); +const char *getConstant(BuiltinVertexAttribute attrib); + } // graphics } // love