Skip to content

GLIntercept GL_NO_ERROR edition is a OpenGL function call interceptor for Windows that will suppress most of the error reports of the graphics driver, and intercept and log all OpenGL calls. Normal edition is also available.

YvesBoyadjian/glintercept

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GLIntercept, GL_NO_ERROR edition, and normal edition

Warning : GL_NO_ERROR edition

GL_NO_ERROR edition is a modified version of GLIntercept : glGetError() will almost always return GL_NO_ERROR. This can be useful when using an AMD GPU or APU, as AMD OpenGL driver returns an error code more frequently than other vendors. FreeCAD can take advantage of this DLL in order to work in all conditions. Simply copy "OpenGL32.dll" to the "bin" directory, where "FreeCAD.exe" resides.

About

GLIntercept is a OpenGL function call interceptor for Windows that will intercept and log all OpenGL calls. It will also return most of the time GL_NO_ERROR when calling glGetError(), event if there was errors declared by the graphics driver.

Binaries

Binaries of releases can be downloaded here

Basic usage

Select the version of GLIntercept right for the application being debugged (x86 or x64)

Note: You select the version of GLIntercept based on if the application is x86 or x64 (64bit) - not if the operating system is 64 bit.

Synergy Note: GLIntercept uses key presses when doing some logging / debugging. The software Synergy conflicts with the key reading - so disable Synergy when using these features of GLIntercept.

Then after installation, simply copy the opengl32.dll and a gliConfig.ini file from the install directory to the executable folder of the application you want to intercept OpenGL calls.

Then edit the gliConfig.ini file, enable the options required and then run the application.

How it works

GLIntercept works by overriding the call to wglGetProcAddress, wrapping the real function pointer in some assembly and then returning it to the application being debugged.

This means that when new OpenGL extensions/versions are released, GLIntercept will automatically log the new functions.

However, while all function names are automatically logged, function parameters need to be specified. These are supplied via text files in a "C" style syntax that can be updated as needed.

eg. void glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );

History

GLIntercept has existed since 2003 and was mainly designed as an OpenGL 1.0-2.1 debugger. So while basic function logging should work on all OpenGL versions, the more advanced features listed below may or may not work in OpenGL 3.0+. (especially when using a core OpenGL profile)

Features

Main GLIntercept features:

  • Save all OpenGL function calls to text or XML format with the option to log individual frames.
  • Activate and log ARB_debug_output/GL_KHR_debug messages to the log
  • 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.
  • 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.

License

Note Older versions of GLIntercept were licensed under the GPLv2. Newer versions (1.0+) are MIT licensed.

Links

Similar OpenGL tools to GLIntercept are:

OpenGL ES / OpenVG tracing

Direct3D

About

GLIntercept GL_NO_ERROR edition is a OpenGL function call interceptor for Windows that will suppress most of the error reports of the graphics driver, and intercept and log all OpenGL calls. Normal edition is also available.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 67.6%
  • Assembly 16.5%
  • C 12.4%
  • Makefile 1.9%
  • Python 0.5%
  • Objective-C 0.4%
  • Other 0.7%