📄 win_qgl.c
字号:
case GL_NEVER:
return "GL_NEVER";
case GL_LEQUAL:
return "GL_LEQUAL";
case GL_LESS:
return "GL_LESS";
case GL_EQUAL:
return "GL_EQUAL";
case GL_GREATER:
return "GL_GREATER";
case GL_GEQUAL:
return "GL_GEQUAL";
case GL_NOTEQUAL:
return "GL_NOTEQUAL";
default:
return "!!! UNKNOWN !!!";
}
}
static const char * PrimToString( GLenum mode )
{
static char prim[1024];
if ( mode == GL_TRIANGLES )
strcpy( prim, "GL_TRIANGLES" );
else if ( mode == GL_TRIANGLE_STRIP )
strcpy( prim, "GL_TRIANGLE_STRIP" );
else if ( mode == GL_TRIANGLE_FAN )
strcpy( prim, "GL_TRIANGLE_FAN" );
else if ( mode == GL_QUADS )
strcpy( prim, "GL_QUADS" );
else if ( mode == GL_QUAD_STRIP )
strcpy( prim, "GL_QUAD_STRIP" );
else if ( mode == GL_POLYGON )
strcpy( prim, "GL_POLYGON" );
else if ( mode == GL_POINTS )
strcpy( prim, "GL_POINTS" );
else if ( mode == GL_LINES )
strcpy( prim, "GL_LINES" );
else if ( mode == GL_LINE_STRIP )
strcpy( prim, "GL_LINE_STRIP" );
else if ( mode == GL_LINE_LOOP )
strcpy( prim, "GL_LINE_LOOP" );
else
sprintf( prim, "0x%x", mode );
return prim;
}
static const char * CapToString( GLenum cap )
{
static char buffer[1024];
switch ( cap )
{
case GL_TEXTURE_2D:
return "GL_TEXTURE_2D";
case GL_BLEND:
return "GL_BLEND";
case GL_DEPTH_TEST:
return "GL_DEPTH_TEST";
case GL_CULL_FACE:
return "GL_CULL_FACE";
case GL_CLIP_PLANE0:
return "GL_CLIP_PLANE0";
case GL_COLOR_ARRAY:
return "GL_COLOR_ARRAY";
case GL_TEXTURE_COORD_ARRAY:
return "GL_TEXTURE_COORD_ARRAY";
case GL_VERTEX_ARRAY:
return "GL_VERTEX_ARRAY";
case GL_ALPHA_TEST:
return "GL_ALPHA_TEST";
case GL_STENCIL_TEST:
return "GL_STENCIL_TEST";
default:
sprintf( buffer, "0x%x", cap );
}
return buffer;
}
static const char * TypeToString( GLenum t )
{
switch ( t )
{
case GL_BYTE:
return "GL_BYTE";
case GL_UNSIGNED_BYTE:
return "GL_UNSIGNED_BYTE";
case GL_SHORT:
return "GL_SHORT";
case GL_UNSIGNED_SHORT:
return "GL_UNSIGNED_SHORT";
case GL_INT:
return "GL_INT";
case GL_UNSIGNED_INT:
return "GL_UNSIGNED_INT";
case GL_FLOAT:
return "GL_FLOAT";
case GL_DOUBLE:
return "GL_DOUBLE";
default:
return "!!! UNKNOWN !!!";
}
}
static void APIENTRY logAccum(GLenum op, GLfloat value)
{
fprintf( glw_state.log_fp, "glAccum\n" );
dllAccum( op, value );
}
static void APIENTRY logAlphaFunc(GLenum func, GLclampf ref)
{
fprintf( glw_state.log_fp, "glAlphaFunc( 0x%x, %f )\n", func, ref );
dllAlphaFunc( func, ref );
}
static GLboolean APIENTRY logAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences)
{
fprintf( glw_state.log_fp, "glAreTexturesResident\n" );
return dllAreTexturesResident( n, textures, residences );
}
static void APIENTRY logArrayElement(GLint i)
{
fprintf( glw_state.log_fp, "glArrayElement\n" );
dllArrayElement( i );
}
static void APIENTRY logBegin(GLenum mode)
{
fprintf( glw_state.log_fp, "glBegin( %s )\n", PrimToString( mode ));
dllBegin( mode );
}
static void APIENTRY logBindTexture(GLenum target, GLuint texture)
{
fprintf( glw_state.log_fp, "glBindTexture( 0x%x, %u )\n", target, texture );
dllBindTexture( target, texture );
}
static void APIENTRY logBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)
{
fprintf( glw_state.log_fp, "glBitmap\n" );
dllBitmap( width, height, xorig, yorig, xmove, ymove, bitmap );
}
static void BlendToName( char *n, GLenum f )
{
switch ( f )
{
case GL_ONE:
strcpy( n, "GL_ONE" );
break;
case GL_ZERO:
strcpy( n, "GL_ZERO" );
break;
case GL_SRC_ALPHA:
strcpy( n, "GL_SRC_ALPHA" );
break;
case GL_ONE_MINUS_SRC_ALPHA:
strcpy( n, "GL_ONE_MINUS_SRC_ALPHA" );
break;
case GL_DST_COLOR:
strcpy( n, "GL_DST_COLOR" );
break;
case GL_ONE_MINUS_DST_COLOR:
strcpy( n, "GL_ONE_MINUS_DST_COLOR" );
break;
case GL_DST_ALPHA:
strcpy( n, "GL_DST_ALPHA" );
break;
default:
sprintf( n, "0x%x", f );
}
}
static void APIENTRY logBlendFunc(GLenum sfactor, GLenum dfactor)
{
char sf[128], df[128];
BlendToName( sf, sfactor );
BlendToName( df, dfactor );
fprintf( glw_state.log_fp, "glBlendFunc( %s, %s )\n", sf, df );
dllBlendFunc( sfactor, dfactor );
}
static void APIENTRY logCallList(GLuint list)
{
fprintf( glw_state.log_fp, "glCallList( %u )\n", list );
dllCallList( list );
}
static void APIENTRY logCallLists(GLsizei n, GLenum type, const void *lists)
{
fprintf( glw_state.log_fp, "glCallLists\n" );
dllCallLists( n, type, lists );
}
static void APIENTRY logClear(GLbitfield mask)
{
fprintf( glw_state.log_fp, "glClear( 0x%x = ", mask );
if ( mask & GL_COLOR_BUFFER_BIT )
fprintf( glw_state.log_fp, "GL_COLOR_BUFFER_BIT " );
if ( mask & GL_DEPTH_BUFFER_BIT )
fprintf( glw_state.log_fp, "GL_DEPTH_BUFFER_BIT " );
if ( mask & GL_STENCIL_BUFFER_BIT )
fprintf( glw_state.log_fp, "GL_STENCIL_BUFFER_BIT " );
if ( mask & GL_ACCUM_BUFFER_BIT )
fprintf( glw_state.log_fp, "GL_ACCUM_BUFFER_BIT " );
fprintf( glw_state.log_fp, ")\n" );
dllClear( mask );
}
static void APIENTRY logClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
fprintf( glw_state.log_fp, "glClearAccum\n" );
dllClearAccum( red, green, blue, alpha );
}
static void APIENTRY logClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
{
fprintf( glw_state.log_fp, "glClearColor\n" );
dllClearColor( red, green, blue, alpha );
}
static void APIENTRY logClearDepth(GLclampd depth)
{
fprintf( glw_state.log_fp, "glClearDepth( %f )\n", ( float ) depth );
dllClearDepth( depth );
}
static void APIENTRY logClearIndex(GLfloat c)
{
fprintf( glw_state.log_fp, "glClearIndex\n" );
dllClearIndex( c );
}
static void APIENTRY logClearStencil(GLint s)
{
fprintf( glw_state.log_fp, "glClearStencil( %d )\n", s );
dllClearStencil( s );
}
static void APIENTRY logClipPlane(GLenum plane, const GLdouble *equation)
{
fprintf( glw_state.log_fp, "glClipPlane\n" );
dllClipPlane( plane, equation );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -