bugle-exe — record a compilable log of OpenGL calls made
filterset exe
{
filename "exetrace.c
"
}
This filter-set provides a log of the OpenGL calls made. Unlike the bugle-trace(7) filter-set, the log is output as C code that can be compiled to reproduce the function calls.
This filter-set is still experimental and incomplete. For details, see below.
Currently, only OpenGL function calls are recorded, not calls to
WGL/GLX/EGL or the native windowing system. Handles returned by
functions such as glGenTextures
and
glCreateShader
are not remapped, so
re-running a compiled trace will only work if handles are
generated deterministically by the OpenGL implementation.
Client-side vertex arrays are also not yet supported.
The generated code merely consists of a function per frame, and a lookup table of those function. It is up to you to provide a harness in which to run this code.
See the limitations above. This filter-set is also vulnerable to any errors or omissions in the tables that tell bugle how many values are stored in an array passed to OpenGL.
Because the filter-set examines arguments and follows pointers, it is possible to crash it by passing invalid values, particularly invalid pointers.