if (id == "max_vertices") {
requireExtensions(loc, Num_AEP_mesh_shader, AEP_mesh_shader, "max_vertices");
publicType.shaderQualifiers.vertices = value;
- if (value > resources.maxMeshOutputVerticesNV)
- error(loc, "too large, must be less than gl_MaxMeshOutputVerticesNV", "max_vertices", "");
+ int max = extensionTurnedOn(E_GL_EXT_mesh_shader) ? resources.maxMeshOutputVerticesEXT
+ : resources.maxMeshOutputVerticesNV;
+ if (value > max) {
+ TString maxsErrtring = "too large, must be less than ";
+ maxsErrtring.append(extensionTurnedOn(E_GL_EXT_mesh_shader) ? "gl_MaxMeshOutputVerticesEXT"
+ : "gl_MaxMeshOutputVerticesNV");
+ error(loc, maxsErrtring.c_str(), "max_vertices", "");
+ }
if (nonLiteral)
error(loc, "needs a literal integer", "max_vertices", "");
return;
if (id == "max_primitives") {
requireExtensions(loc, Num_AEP_mesh_shader, AEP_mesh_shader, "max_primitives");
publicType.shaderQualifiers.primitives = value;
- if (value > resources.maxMeshOutputPrimitivesNV)
- error(loc, "too large, must be less than gl_MaxMeshOutputPrimitivesNV", "max_primitives", "");
+ int max = extensionTurnedOn(E_GL_EXT_mesh_shader) ? resources.maxMeshOutputPrimitivesEXT
+ : resources.maxMeshOutputPrimitivesNV;
+ if (value > max) {
+ TString maxsErrtring = "too large, must be less than ";
+ maxsErrtring.append(extensionTurnedOn(E_GL_EXT_mesh_shader) ? "gl_MaxMeshOutputPrimitivesEXT"
+ : "gl_MaxMeshOutputPrimitivesNV");
+ error(loc, maxsErrtring.c_str(), "max_primitives", "");
+ }
if (nonLiteral)
error(loc, "needs a literal integer", "max_primitives", "");
return;