+ def dump_framebuffer_parameters(self):
+ print ' {'
+ print ' GLint max_color_attachments = 0;'
+ print ' glGetIntegerv(GL_MAX_COLOR_ATTACHMENTS, &max_color_attachments);'
+ print ' GLint framebuffer;'
+ for target, binding in framebuffer_targets:
+ print ' // %s' % target
+ print ' framebuffer = 0;'
+ print ' glGetIntegerv(%s, &framebuffer);' % binding
+ print ' if (framebuffer) {'
+ print ' json.beginMember("%s");' % target
+ print ' json.beginObject();'
+ print ' for (GLint i = 0; i < max_color_attachments; ++i) {'
+ print ' GLint color_attachment = GL_COLOR_ATTACHMENT0 + i;'
+ print ' dumpFramebufferAttachementParameters(json, %s, color_attachment);' % target
+ print ' }'
+ print ' dumpFramebufferAttachementParameters(json, %s, GL_DEPTH_ATTACHMENT);' % target
+ print ' dumpFramebufferAttachementParameters(json, %s, GL_STENCIL_ATTACHMENT);' % target
+ print ' json.endObject();'
+ print ' json.endMember(); // %s' % target
+ print ' }'
+ print
+ print ' }'
+ print
+
+ def dump_attachment_parameters(self, target, attachment):
+ print ' {'
+ print ' GLint object_type = GL_NONE;'
+ print ' glGetFramebufferAttachmentParameteriv(%s, %s, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &object_type);' % (target, attachment)
+ print ' if (object_type != GL_NONE) {'
+ print ' json.beginMember(enumToString(%s));' % attachment
+ print ' json.beginObject();'
+ self.dump_atoms(glGetFramebufferAttachmentParameter, target, attachment)
+ print ' json.endObject();'
+ print ' json.endMember(); // GL_x_ATTACHMENT'
+ print ' }'
+ print ' }'
+