-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathgliConfig.ini
468 lines (410 loc) · 18.3 KB
/
gliConfig.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
//////////////////////////////////////////////////////////////
//
// GLI - openGL Intercept Configuration file
//
//////////////////////////////////////////////////////////////
//
// (Note: all options are case sensetitive)
//
//////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
//
// Log Options:
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enable function call logging
//
// LogFlush - If true, will flush the logger after each OpenGL call is made.
// This is useful to catch a OpenGL call that crashes the
// application. This only applies to text file logging.
//
// LogPath - Path to store the logged files. If not specified, files
// will be stored relative to the GLI OpenGL dll.
//
// LogFileName - The name of the file to log to (without extension)
//
// LogMaxNumFrames - The maximum number of frames that will be logged.
// This is useful for retrieving startup information from a
// application or limiting the file size on apps that make
// a lot of OpenGL calls (Note: This also affects per-frame logging)
//
// LogFormat - The format of the log. If equal to "XML" (without quotes)
// will log in the XML format. Else, the plain text format is used.
//
// XMLFormat::XSLFile - When the log format is XML, this option specifies the XSL file
// to be used (if any). A XSL file usually formats the XML into a
// readable HTML format.
//
// XMLFormat::BaseDir - The base (or source) directory where the XSL file can be found.
//
//////////////////////////////////////////////////////////////
LogEnabled = True;
LogFlush = True;
//LogPath = "c:\temp\";
LogFileName = "gliInterceptLog"
XMLFormat
{
XSLFile = gliIntercept_DHTML2.xsl;
BaseDir = "\GLIntercept\XSL";
}
//////////////////////////////////////////////////////////////
//
// LogPerFrame Options:
//
//////////////////////////////////////////////////////////////
//
// Enabled - Enable logging per frame. If this is true, instead of
// logging all OpenGL calls, the below frame start keys will
// enable the loggers at the start of a frame. The loggers
// will be disabled when the keys are pressed again and the next
// frame is reached (see OneFrameOnly for other options).
//
// Output of logging is saved to a directory called
// Frame_XXXX where XXXX is the frame number that logging
// started.
//
// FrameStartKeys - The keys used to enable/disable logging. Valid values can be any
// combination of 0-9,a-z,f1-f12,ctrl,shift,tab,lwin,rwin,
// print,up,down,left,right,add,sub,insert,delete etc.
//
// OneFrameOnly - If enabled, will only log only one frame per key-press.
// Loggers will be disabled at the end of the next frame.
//
//////////////////////////////////////////////////////////////
LogPerFrame
{
Enabled = True;
FrameStartKeys = (ctrl);
OneFrameOnly = True;
}
//////////////////////////////////////////////////////////////
//
// Input Files:
//
//////////////////////////////////////////////////////////////
//
// GLFunctionDefines - The file to retrieve the OpenGL function defines from.
// (The text header files that contain the parameters of OpenGL functions to be logged)
//
// GLSystemLib - The full path to the "real" OpenGL system library. This will be assigned automatically
// so usually does not have to be defined.
//
//////////////////////////////////////////////////////////////
GLFunctionDefines = "GLIntercept\GLFunctions\gliIncludes.h"
//GLSystemLib = "c:\windows\system32\opengl32.dll"
//////////////////////////////////////////////////////////////
//
// Error Checking:
//
//////////////////////////////////////////////////////////////
//
// GLErrorChecking - A OpenGL glGetError() is made after all appropiate OpenGL calls.
// If an error is detected, the error code is logged to the current text/XML log next
// to the function that caused the error.
// (OpenGL Error context is still saved so application invoked glGetError() calls are safe)
//
// ThreadChecking - While GLIntercept is not currently thread-safe, (ie. So you cannot have multiple render
// contexts active at the same time) enabling this option will perform basic thread checking.
// (Will currently check OpenGL calls to see if they are made on the thread with the
// active render context)
//
// BreakOnError - (used with above) Issue programmer debug breakpoint on an error.
// Note that glIntercept alters the stack, so to get a valid call stack when debugging
// you will need to step through some assembly (F10 on VC6) until the stack is restored.
//
// LogOnError - (used with above) Log all OpenGL errors to the GLIntercept error log (gliLog.txt).
//
// ExtendedErrorLog - (used with above) Report all available data about the function the produced the error.
// (ie. Full resolved parameters that were passed to the function are reported.)
// (Enabling this option will cause a severe slowdown even when no errors are produced. Only
// enable when debugging specific errors)
//
// DebuggerErrorLog - Mirror the contents of the error log (gliLog.txt) file to the debuggers' window.
//
//////////////////////////////////////////////////////////////
GLErrorChecking = False;
ThreadChecking = False;
BreakOnError = False;
LogOnError = False;
ExtendedErrorLog = False;
DebuggerErrorLog = False;
//////////////////////////////////////////////////////////////
//
// Image logging:
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enabled the image logger. OpenGL textures are saved to the directory
// "Images" under the main log path. Only the texture types specified in
// SaveGLTypes are saved.
//
// RenderCallStateLog - If enabled, each render call issued will list the currently bound
// textures for all texture stages. (works with text and XML logging)
//
// SaveFormats - The image formats to save the textures in. Current valid formats are
// PNG,JPG and TGA. Note that more than one format can be specified.
// (ie. (PNG,TGA) will save all textures twice, once in PNG format, once
// in TGA format)
//
// Note on image formats:
// TGA - Is pixel precise and is the fastest save format but is also the biggest.
// TGA's are also not supported by web browsers (if you use XML with XSL to view the logs).
// PNG - Is pixel precise and is slower to save but is smaller than TGA.
// PNG's are brower compatable.
// JPG - Is a format that does not save alpha and saves colors in a lossy format.
// It is the smallest format and is slower to save than TGA's.
// JPG's are brower compatable.
//
// FlipXAxis - The saving of textures is upside-down by default. Using this option will
// flip the image before saving.
//
// TileCubeMaps - Cube map textures are saved as six individual images. Enabling this option enables
// the six image to be tiled together (flattened cube shaped) and saved as one image.
//
// SaveGLTypes - The types of OpenGL textures to save. Valid options are 1D,2D,3D and CUBE.
// Note: NVRect textures use the 2D option.
//
// SavePbufferTex - This option enables/disables the saving of textures that are bound from a p-buffer.
// Note: P-Buffer textures are saved each time a p-buffer is bound to the texture.
// (ie. no checks are performed to see if the p-buffer has changed)
//
// ImageIcon->Enabled - This enables saving a icon version of all images saved. (useful in XML browser viewing)
//
// ImageIcon->SaveFormat - The format of the save icon images (TGA,PNG or JPG)
//
// ImageIcon->Size - The size of the icons to save
//
//////////////////////////////////////////////////////////////
ImageLog
{
LogEnabled = True;
RenderCallStateLog = True;
SaveFormats = (JPG,PNG);
FlipXAxis = True;
TileCubeMaps= True;
SaveGLTypes = (1D,2D,3D,CUBE);
SavePbufferTex = True;
ImageIcon
{
Enabled=False;
SaveFormat = JPG;
Size = 40;
}
}
//////////////////////////////////////////////////////////////
//
// Shader logging
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enabled the shader logger. OpenGL shaders/programs are saved to the directory
// "Shaders" under the main log path. Supported types included ARB/NV vertex/fragment
// programs and vertex/fragment GLSL shaders/programs. ATI specific vertex/fragment
// shaders are not supported.
//
// RenderCallStateLog - If enabled, each render call issued will list the currently bound
// shaders (vertex and fragment). (works with text and XML logging)
//
// AttachLogState - If enabled, attitional information such as compile/link state and additional
// driver information may be attached to each shader/program.
// (Currently only GLSL support). Note that enabling this option may force
// shaders to complete compiling immediately.
//
// ValidatePreRender - If the above AttachLogState is enabled, this option will perform a validation of
// the shader before each render and append it to the log. Enabling this option will
// cause the shader to be re-saved at each render call.
// (GLSL only feature via glValidateProgram)
//
// UniformLogPreRender - If the above AttachLogState is enabled, this option will dump all uniforms that
// are active in the shader before each render. Enabling this option will
// cause the shader to be re-saved at each render call. (GLSL only feature)
//
//////////////////////////////////////////////////////////////
ShaderLog
{
LogEnabled = True;
RenderCallStateLog = True;
AttachLogState = True;
ValidatePreRender = False;
UniformLogPreRender = False;
//Future formatting options
}
//////////////////////////////////////////////////////////////
//
// Display List logging
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enabled the display list logger. OpenGL display lists are saved to the directory
// "DisplayLists" under the main log path. If a program has a lot of big glBegin/glEnd
// sections in display lists, (ie 1000's of glVertex calls) the application may seem
// un-responsive on startup as all these calls are processed on the list creation.
//
//////////////////////////////////////////////////////////////
DisplayListLog
{
LogEnabled = False;
}
//////////////////////////////////////////////////////////////
//
// Frame(Buffer) logging
//
//////////////////////////////////////////////////////////////
//
// LogEnabled - Enabled the frame(buffer) logger. When enabled, each render call can
// save the pre/post/diff frame buffer (color or depth) to view the changes
// that the render call made. Frame buffer saves are written to a directory
// "Frames" under the main log path.
//
// SaveFormat - The image format to save the frame buffer in. Current options are TGA,PNG, and JPG.
// (see ImageLog::SaveFormats for a decription of the formats)
//
// FrameIcon->Enabled - This enables saving a icon version of all images saved. (useful in XML browser viewing)
//
// FrameIcon->SaveFormat - The format of the save icon images (TGA,PNG or JPG)
//
// FrameIcon->Size - The size of the icons to save
//
// FrameMovie->Enabled - This enables a movie of the "post" and "diff" frame buffers to be saved. If multiple, buffers
// are saved, they are tiled together. (This is useful to quicky inspect how a frame is composed)
// The resulting movie is called FrameMovie.avi in the frame buffer directory.
//
// FrameMovie->Size - The width height of the saved frame buffers. (ie. (640,480)) The resulting movie will be
// larger if multiple buffers are saved at once as they are tiled together.
//
// FrameMovie->FrameRate - The frame rate of the saved movie.
//
// FrameMovie->Compression - The list of compression codecs used to save the movie (usually 4 letters).
// The first valid codec is used. Special codecs are:
// "menu" - will display a menu for the user to select a codec.
// "none" - will use no compression.
//
// ColorBufferLog - The color frame buffer save options. Options can include any combination of
// (pre,post,diff).
// pre - The frame's color buffer is saved before the render call
//
// post - The frame's color buffer is saved after the render call
//
// diff - The difference between the pre and post buffer saves is written.
// (green represents pixels with no differnce. If the image is red,
// no image differences were detected)
//
// DepthBufferLog - The depth frame buffer save options. Options are the same as in ColorBufferLog.
// (Note: Depth-buffer saving can be very slow)
//
// StencilBufferLog - The stencil frame buffer save options. Options are the same as in ColorBufferLog.
// (Note: Stencil-buffer saving can be very slow)
//
// StencilColors - When saving the stencil buffer, it can be useful to save the buffer with color codes.
// (ie stencil value 1 = red) This array supplies index color pairs for each stencil
// value up to 255. The indices must be in order and the colors are in the format
// AABBGGRR. If an index is missing, it will take the value of the index as the color.
// (ie. stencil index 128 = (255, 128,128,128) = greyscale values)
//
//////////////////////////////////////////////////////////////
FrameLog
{
LogEnabled = False;
SaveFormat = JPG;
FrameIcon
{
Enabled = True;
SaveFormat = JPG;
Size = 40;
}
FrameMovie
{
Enabled = False;
Size = (640,480);
FrameRate = 15;
Compression = ("mpg4","divx","none");
}
ColorBufferLog = (pre,post,diff);
//DepthBufferLog = (pre,post,diff);
//StencilBufferLog = (pre,post,diff);
StencilColors = (0,0xFF000000, //Black
1,0xFFFF0000, //Blue
2,0xFFFFFF00, //Light Blue
3,0xFF0000FF, //Red
4,0xFF00FFFF, //Yellow
5,0xFFFF00FF, //Purple
6,0xFF80FFFF, //Bright Yellow
7,0xFFFFFFFF); //White (Note green is not used as that is the "diff" color)
}
//////////////////////////////////////////////////////////////
//
// Function time logging
//
//////////////////////////////////////////////////////////////
//
// NOTE: It is important to not mis-use the results of this logger. OpenGL is a very pipelined
// API and you can not optimize your code based on how long is spent in each function call.
// This logger is only intended for advanced users to determine where pipeline stalls "MAY"
// have occured and determine speeds of operations such as glReadPixels etc.
//
// LogEnabled - Enabled the timer log. When enabled, the time taken inside each OpenGL
// function is added to the main log. (if enabled). The logging reports
// in microseconds (millionth of a second). Only take these results as
// approximate figures as GLIntercept will add a small amout of overhead.
// (More overhead may be indicated in the functions wglGetProcAddress,
// all wgl*(context) functions, glBegin,glEnd,glGetError)
//
// If you are using this logger to determine where pipeline stalls occur,
// ensure to disable ALL other loggers (image/shader/frame etc) as these
// loggers may cause pipline stalls. Also disable parameter logging by
// not defining "GLFunctionDefines" and use flat text logging to get the
// fastest logging possible. (and hence the most accurate results)
//
// LogCutoff - The number of microseconds below which the time value is not reported.
//
//////////////////////////////////////////////////////////////
TimerLog
{
LogEnabled = False;
LogCutoff = 20;
}
//////////////////////////////////////////////////////////////
//
// Plugins
//
//////////////////////////////////////////////////////////////
//
// BaseDir - The base directory where the plugins can be found
//
// Plugins - Listing of all plugins to load (and the locations
// to load from) Under each plugin, plugin specific options
// can be specified.
//
//
//////////////////////////////////////////////////////////////
PluginData
{
BaseDir = "GLIntercept\Plugins";
Plugins
{
OGLE = ("OGLE/OGLE.dll")
{
// See Plugins/OGLE/config.ini or OGLE README for description of
// OGLE plugin config settings
Scale = 1.0;
FlipPolygonStrips = True;
CaptureNormals = False;
CaptureTextureCoords = True;
LogFunctions = False;
ObjFileName = "3D_Model";
FilePerFrame = False;
FileInFrameDir = False;
TRIANGLES = True;
TRIANGLE_STRIP = True;
TRIANGLE_FAN = True;
QUADS = True;
QUAD_STRIP = True;
POLYGON = True;
}
ExtensionOverride = ("GLExtOverride/GLExtOverride.dll")
{
RemoveExtensions = (GL_ARB_vertex_buffer_object);
}
}
}