summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiaohong Bao <bao@lindenlab.com>2010-10-12 15:35:39 -0600
committerXiaohong Bao <bao@lindenlab.com>2010-10-12 15:35:39 -0600
commit4809142acce5ed66579184dca4fa6e4cdb7bfeed (patch)
treec48e2fd8fa59459236ccc899c24293207afbf06f
parentd65e512fa3a0e7bc7f1c269d2c8d2e1c38c4e970 (diff)
add a debug function to output gl error information to the log file without crashing the viewer.
No need to test because there are no negative effects.
-rw-r--r--indra/llrender/llgl.cpp27
-rw-r--r--indra/llrender/llgl.h1
2 files changed, 28 insertions, 0 deletions
diff --git a/indra/llrender/llgl.cpp b/indra/llrender/llgl.cpp
index c0edd92bc1..c2e9740372 100644
--- a/indra/llrender/llgl.cpp
+++ b/indra/llrender/llgl.cpp
@@ -1047,6 +1047,33 @@ void flush_glerror()
glGetError();
}
+//this function outputs gl error to the log file, does not crash the code.
+void log_glerror()
+{
+ if (LL_UNLIKELY(!gGLManager.mInited))
+ {
+ return ;
+ }
+ // Create or update texture to be used with this data
+ GLenum error;
+ error = glGetError();
+ while (LL_UNLIKELY(error))
+ {
+ GLubyte const * gl_error_msg = gluErrorString(error);
+ if (NULL != gl_error_msg)
+ {
+ llwarns << "GL Error: " << error << " GL Error String: " << gl_error_msg << llendl ;
+ }
+ else
+ {
+ // gluErrorString returns NULL for some extensions' error codes.
+ // you'll probably have to grep for the number in glext.h.
+ llwarns << "GL Error: UNKNOWN 0x" << std::hex << error << std::dec << llendl;
+ }
+ error = glGetError();
+ }
+}
+
void do_assert_glerror()
{
if (LL_UNLIKELY(!gGLManager.mInited))
diff --git a/indra/llrender/llgl.h b/indra/llrender/llgl.h
index 5e8965c06a..de63d37480 100644
--- a/indra/llrender/llgl.h
+++ b/indra/llrender/llgl.h
@@ -157,6 +157,7 @@ void rotate_quat(LLQuaternion& rotation);
void flush_glerror(); // Flush GL errors when we know we're handling them correctly.
+void log_glerror();
void assert_glerror();
void clear_glerror();