X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg%2Fvg_gldiag.h;fp=vg%2Fvg_gldiag.h;h=29c246dd26ef47be542b208ef12a54eb15d88758;hb=55a8be84b66e264a6af476689f9499f41cc98e64;hp=0000000000000000000000000000000000000000;hpb=083165f89a241d470a560cba181c071ecf81368d;p=fishladder.git diff --git a/vg/vg_gldiag.h b/vg/vg_gldiag.h new file mode 100644 index 0000000..29c246d --- /dev/null +++ b/vg/vg_gldiag.h @@ -0,0 +1,41 @@ +#define VG_GLDIAG_GL_GET_STRING( o, x ) fprintf( o, #x ": %s\n", glGetString( x ) ); + +static void vg_check_gl_integerv( FILE *log, GLenum name, const char *stringname ) +{ + GLint data; + glGetIntegerv( name, &data ); + fprintf( log, "%s:%d\n", stringname, data ); +} + +#define VG_GLDIAG_GL_INTEGERV( o, x ) vg_check_gl_integerv( o, x, #x ); + +static int vg_run_gfx_diagnostics(void) +{ + FILE *log = fopen( "gldiag.txt", "w" ); + if( log ) + { + VG_GLDIAG_GL_GET_STRING( log, GL_VERSION ) + VG_GLDIAG_GL_GET_STRING( log, GL_VENDOR ) + VG_GLDIAG_GL_GET_STRING( log, GL_RENDERER ) + VG_GLDIAG_GL_GET_STRING( log, GL_SHADING_LANGUAGE_VERSION ) + + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_3D_TEXTURE_SIZE ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_ARRAY_TEXTURE_LAYERS ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_CLIP_DISTANCES ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_COLOR_TEXTURE_SAMPLES ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_COMBINED_UNIFORM_BLOCKS ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_DRAW_BUFFERS ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_ELEMENTS_INDICES ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_ELEMENTS_VERTICES ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_FRAGMENT_UNIFORM_BLOCKS ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_RENDERBUFFER_SIZE ) + VG_GLDIAG_GL_INTEGERV( log, GL_MAX_UNIFORM_BLOCK_SIZE ) + VG_GLDIAG_GL_INTEGERV( log, GL_NUM_EXTENSIONS ) + VG_GLDIAG_GL_INTEGERV( log, GL_PACK_ALIGNMENT ) + + fclose( log ); + } + + return 0; +} \ No newline at end of file