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