29c246dd26ef47be542b208ef12a54eb15d88758
[fishladder.git] / vg / vg_gldiag.h
1 #define VG_GLDIAG_GL_GET_STRING( o, x ) fprintf( o, #x ": %s\n", glGetString( x ) );
2
3 static void vg_check_gl_integerv( FILE *log, GLenum name, const char *stringname )
4 {
5 GLint data;
6 glGetIntegerv( name, &data );
7 fprintf( log, "%s:%d\n", stringname, data );
8 }
9
10 #define VG_GLDIAG_GL_INTEGERV( o, x ) vg_check_gl_integerv( o, x, #x );
11
12 static int vg_run_gfx_diagnostics(void)
13 {
14 FILE *log = fopen( "gldiag.txt", "w" );
15 if( log )
16 {
17 VG_GLDIAG_GL_GET_STRING( log, GL_VERSION )
18 VG_GLDIAG_GL_GET_STRING( log, GL_VENDOR )
19 VG_GLDIAG_GL_GET_STRING( log, GL_RENDERER )
20 VG_GLDIAG_GL_GET_STRING( log, GL_SHADING_LANGUAGE_VERSION )
21
22 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_3D_TEXTURE_SIZE )
23 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_ARRAY_TEXTURE_LAYERS )
24 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_CLIP_DISTANCES )
25 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_COLOR_TEXTURE_SAMPLES )
26 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_COMBINED_UNIFORM_BLOCKS )
27 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS )
28 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_DRAW_BUFFERS )
29 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_ELEMENTS_INDICES )
30 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_ELEMENTS_VERTICES )
31 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_FRAGMENT_UNIFORM_BLOCKS )
32 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_RENDERBUFFER_SIZE )
33 VG_GLDIAG_GL_INTEGERV( log, GL_MAX_UNIFORM_BLOCK_SIZE )
34 VG_GLDIAG_GL_INTEGERV( log, GL_NUM_EXTENSIONS )
35 VG_GLDIAG_GL_INTEGERV( log, GL_PACK_ALIGNMENT )
36
37 fclose( log );
38 }
39
40 return 0;
41 }