OGLE: OpenGLExtractor by Eyebeam R&D | Architecture

Architecture

Architecture

DLL's:
In Microsoft Windows, code modules that are to be shared between different applications are implemented using Dynamic Link Libraries (so-called DLL's).

OpenGL:
The ubiquitous 3D graphics libary, OpenGL, is one such module that exists on Windows as a DLL. It is a standard library that imlpements many kinds of 2D and 3D graphics functionality, and is used by many many applications.

DLL Proxies:
A So-called DLL Proxy is a DLL that looks like a duck and walks like a duck, but is actually a duck of your own creation. If a DLL proxy is placed in the same directory as the application you want to watch, then the application will use your DLL rather than the system's. Typically, DLL Proxies forward all of the function calls that they see to the original DLL that they are standing in for, so that the application in question still works. To learn more about DLL Proxies and other sneaky things to do on Windows, check out http://www.internals.com/articles/apispy/apispy.htm

GLIntercept:
Fortunately, there is already a DLL Proxy for OpenGL called GLIntercept. It watches all of the OpenGL functions called by a 3D graphics application and passes those functions to the real OpenGL DLL, but implementes fantastic logging capabilities and an elegant plugin framework in between.

OGLE:
OGLE is a plugin for the OpenGL DLL Proxy GLIntercept. As such, it functions by receiving information from the GLIntercept DLL Proxy, doing a couple of wacky calculations, and writing out a 3D geometry file in a standard format.




Now that you know how it works, don't you want to give it a shot?!?! Or see some examples of how OGLE could be used.