1 #define VG_GLDIAG_GL_GET_STRING( o, x ) fprintf( o, #x ": %s\n", glGetString( x ) );
3 static void vg_check_gl_integerv( FILE *log
, GLenum name
, const char *stringname
)
6 glGetIntegerv( name
, &data
);
7 fprintf( log
, "%s:%d\n", stringname
, data
);
10 #define VG_GLDIAG_GL_INTEGERV( o, x ) vg_check_gl_integerv( o, x, #x );
12 static int vg_run_gfx_diagnostics(void)
14 FILE *log
= fopen( "gldiag.txt", "w" );
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
)
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
)