Browse Source

Avoid some hardcoded strings

Alex Szpakowski 5 years ago
parent
commit
2c90ccabb3
3 changed files with 29 additions and 20 deletions
  1. 20 20
      src/modules/graphics/Buffer.cpp
  2. 7 0
      src/modules/graphics/vertex.cpp
  3. 2 0
      src/modules/graphics/vertex.h

+ 20 - 20
src/modules/graphics/Buffer.cpp

@@ -131,53 +131,53 @@ std::vector<Buffer::DataDeclaration> 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 },
 		};
 	}
 

+ 7 - 0
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 },

+ 2 - 0
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