Browse Source

gl-max-errors

David Rose 18 years ago
parent
commit
1d5038e9f0

+ 1 - 3
panda/src/glstuff/glGraphicsStateGuardian_src.cxx

@@ -4274,9 +4274,7 @@ bool CLP(GraphicsStateGuardian)::
 report_errors_loop(int line, const char *source_file, GLenum error_code,
                    int &error_count) {
 #ifndef NDEBUG
-  static const int max_gl_errors_reported = 20;
-
-  while ((error_count < max_gl_errors_reported) &&
+  while ((CLP(max_errors) < 0 || error_count < CLP(max_errors)) &&
          (error_code != GL_NO_ERROR)) {
     GLCAT.error()
       << "at " << line << " of " << source_file << " : "

+ 6 - 0
panda/src/glstuff/glmisc_src.cxx

@@ -94,6 +94,12 @@ ConfigVariableBool CLP(parallel_arrays)
             "render geometry as it appears in the GeomVertexData.  See "
             "also gl-interleaved-arrays."));
 
+ConfigVariableInt CLP(max_errors)
+  ("gl-max-errors", 20,
+   PRC_DESC("This is the limit on the number of OpenGL errors Panda will "
+            "detect and report before it shuts down rendering.  Set it to "
+            "-1 for no limit."));
+
 extern ConfigVariableBool CLP(parallel_arrays);
 
 void CLP(init_classes)() {

+ 1 - 0
panda/src/glstuff/glmisc_src.h

@@ -32,6 +32,7 @@ extern ConfigVariableBool CLP(support_occlusion_query);
 extern ConfigVariableBool CLP(compile_and_execute);
 extern ConfigVariableBool CLP(interleaved_arrays);
 extern ConfigVariableBool CLP(parallel_arrays);
+extern ConfigVariableInt CLP(max_errors);
 
 extern EXPCL_GL void CLP(init_classes)();