GLIntercept is an open source tool to intercept and log all OpenGL API calls under 32 and 64-bit Windows applications.
The main features of GLIntercept are:
- Save all OpenGL function calls to text or XML format with the option to log individual frames.
- 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 bound textures are supported.) Saving can be to TGA,PNG and JPG formats.
- Save and track shaders/programs. Current support in 0.41 includes ARB VP/FP/GLSL and NV VP/FP.
- 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)
- OpenGL function stats – how many times each function is called.
Here are main changes brought by the version 1.0:
- Added logging for lots more OpenGL entry points
- Fixed startup bug with GLIntercept made OpenGL calls being logged
- Fixed XML nested OpenGL calls issue (was broken in GLIntercept 0.42)
- Update Display List logging to handle WGL/GLX font creation
- Added geometry shader support
- Shader editor supports multiple shaders of the same type in one program
- Shader editor no longer causes errors with inserting #line when #version is used in the shader
- Added unsigned integer shader semantic support to loggers and shader editor
- Add x64 support (thanks to Kamil Patelczyk of Intel for initial code)
- Worked around Nvidia multi-thread driver issue (no longer logging calls to wglGetPixelFormat)
- Fixed some issues when using the image/frame logger and using a “core” OpenGL context.
You can download GLIntercept from this page.