GLInterceptGLIntercept (http://glintercept.nutty.org) is a free and open-source OpenGL function call interceptor providing a replacement wrapper (opengl32.dll) that exports all OpenGL entry points. When an OpenGL call is made, the GLIntercept wrapper processes it before passing the call onto the real OpenGL system.
While there are many tools that provide similar functionality, mostly for logging purposes, GLIntercept provides an extensible plugin interface to allow custom logging or manipulation of the OpenGL state.
GLIntercept is a OpenGL function call interceptor that can:
- Save all OpenGL function calls to text or XML format with the option to log individual frames. The XML log types include XSL formatting for viewing in web browsers that support it. (IE6+, FireFox, Mozilla 1.4+).
- Run time shader edit. Display shader usage and edit the shaders at run time. Supports ARB VP/FP/GLSL and NV VP/FP.
- Free camera. Fly around the geometry sent to the graphics card and enable/disable wireframe/backface-culling/view frustum render.
- Save and track textures. (1D,2D,3D,NVRect and p-buffer/FBO bound textures are supported.) Saving can be to TGA,PNG and JPG formats.
- Save and track shaders/programs. ARB VP/FP/GLSL and NV VP/FP are supported.
- Save and track display lists.
- Saving of the OpenGL frame buffer (color/depth/stencil) pre and post render calls. The ability to save the "diff" of pre and post images is also available.
- Track error states (logging them to the debugger output) and breaking on errors.
- Basic thread error checking.
- Function timer log.
- Resource leak tracking for contexts, display lists, shaders and textures.
- OpenGL extension/version override. Add/remove/replace the OpenGL extension and version strings. (Test lower end rendering paths without changing cards)
- Function call stats. Provide a summary of what OpenGL functions are called and how often they are called.
While this tool is designed to aid programmers debug OpenGL applications, it can also be used to grab the textures and models (via the OGLE plugin) used in OpenGL applications. Please respect copyright and authors' wishes if you do this.