return self.visitScalar(alias, args)
def visitEnum(self, enum, args):
- return self.visit(GLint, args)
+ return self.visitScalar(enum, args)
def visitBitmask(self, bitmask, args):
return self.visit(GLint, args)
print ' json.writeString((const char *)%s);' % instance
def visitEnum(self, enum, instance):
- if enum.expr == 'GLenum':
+ if enum is GLboolean:
+ print ' dumpBoolean(json, %s);' % instance
+ elif enum is GLenum:
print ' dumpEnum(json, %s);' % instance
else:
+ assert False
print ' json.writeNumber(%s);' % instance
def visitBitmask(self, bitmask, instance):
__index = 0
def visitArray(self, array, instance):
- index = '__i%u' % JsonWriter.__index
+ index = '_i%u' % JsonWriter.__index
JsonWriter.__index += 1
print ' json.beginArray();'
print ' for (unsigned %s = 0; %s < %s; ++%s) {' % (index, index, array.length, index)
print 'namespace glstate {'
print
+ print 'void'
+ print 'dumpBoolean(JSONWriter &json, GLboolean value)'
+ print '{'
+ print ' switch (value) {'
+ print ' case GL_FALSE:'
+ print ' json.writeString("GL_FALSE");'
+ print ' break;'
+ print ' case GL_TRUE:'
+ print ' json.writeString("GL_TRUE");'
+ print ' break;'
+ print ' default:'
+ print ' json.writeNumber(static_cast<GLint>(value));'
+ print ' break;'
+ print ' }'
+ print '}'
+ print
+
print 'const char *'
print 'enumToString(GLenum pname)'
print '{'
print '}'
print
- print 'static void'
- print 'dumpFramebufferAttachementParameters(JSONWriter &json, GLenum target, GLenum attachment)'
- print '{'
- self.dump_attachment_parameters('target', 'attachment')
- print '}'
- print
-
print 'void'
print 'dumpEnum(JSONWriter &json, GLenum pname)'
print '{'
print '}'
print
+ print 'static void'
+ print 'dumpFramebufferAttachementParameters(JSONWriter &json, GLenum target, GLenum attachment)'
+ print '{'
+ self.dump_attachment_parameters('target', 'attachment')
+ print '}'
+ print
+
print 'void dumpParameters(JSONWriter &json, Context &context)'
print '{'
print ' json.beginMember("parameters");'
def dump_light_params(self):
print ' GLint max_lights = 0;'
- print ' __glGetIntegerv(GL_MAX_LIGHTS, &max_lights);'
+ print ' _glGetIntegerv(GL_MAX_LIGHTS, &max_lights);'
print ' for (GLint index = 0; index < max_lights; ++index) {'
print ' GLenum light = GL_LIGHT0 + index;'
print ' if (glIsEnabled(light)) {'
def dump_vertex_attribs(self):
print ' GLint max_vertex_attribs = 0;'
- print ' __glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &max_vertex_attribs);'
+ print ' _glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &max_vertex_attribs);'
print ' for (GLint index = 0; index < max_vertex_attribs; ++index) {'
print ' char name[32];'
print ' snprintf(name, sizeof name, "GL_VERTEX_ATTRIB_ARRAY%i", index);'
print ' glGetIntegerv(GL_MAX_TEXTURE_COORDS, &max_texture_coords);'
print ' GLint max_combined_texture_image_units = 0;'
print ' glGetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, &max_combined_texture_image_units);'
- print ' GLint max_units = std::min(std::max(max_combined_texture_image_units, max_texture_coords), 2);'
+ print ' GLint max_units = std::max(std::max(max_combined_texture_image_units, max_texture_coords), 2);'
print ' for (GLint unit = 0; unit < max_units; ++unit) {'
print ' char name[32];'
print ' snprintf(name, sizeof name, "GL_TEXTURE%i", unit);'
print ' // %s' % target
print ' enabled = GL_FALSE;'
print ' glGetBooleanv(%s, &enabled);' % target
- print ' json.writeBoolMember("%s", enabled);' % target
+ print ' json.beginMember("%s");' % target
+ print ' dumpBoolean(json, enabled);'
+ print ' json.endMember();'
print ' binding = 0;'
print ' glGetIntegerv(%s, &binding);' % binding
print ' json.writeNumberMember("%s", binding);' % binding