ref: gl: set numeric value for wrappers macros, similar to build.h macros

This commit is contained in:
Alibek Omarov 2024-10-09 02:01:10 +03:00
parent e8f6476e8c
commit 420c5a4ff3
8 changed files with 76 additions and 76 deletions

View file

@ -32,7 +32,7 @@ Limitations:
*/ */
#include "gl_local.h" #include "gl_local.h"
#ifndef XASH_GL_STATIC #if !XASH_GL_STATIC
#include "gl2_shim.h" #include "gl2_shim.h"
#define MAX_SHADERLEN 4096 #define MAX_SHADERLEN 4096
@ -1328,7 +1328,7 @@ static void APIENTRY GL2_LoadMatrixf( const GLfloat *m )
gl2wrap_matrix.update = 0xFFFFFFFFFFFFFFFF; gl2wrap_matrix.update = 0xFFFFFFFFFFFFFFFF;
} }
#ifdef XASH_GLES #if XASH_GLES
static void ( APIENTRY *_pglDepthRangef)( GLfloat zFar, GLfloat zNear ); static void ( APIENTRY *_pglDepthRangef)( GLfloat zFar, GLfloat zNear );
static void APIENTRY GL2_DepthRange( GLdouble zFar, GLdouble zNear ) static void APIENTRY GL2_DepthRange( GLdouble zFar, GLdouble zNear )
{ {

View file

@ -688,7 +688,7 @@ void R_ShowTextures( void )
pglBegin( GL_QUADS ); pglBegin( GL_QUADS );
#if XASH_GLES #if XASH_NANOGL
#undef pglTexCoord3f #undef pglTexCoord3f
#define pglTexCoord3f( s, t, u ) pglTexCoord2f( s, t ) // not really correct but it requires nanogl rework #define pglTexCoord3f( s, t, u ) pglTexCoord2f( s, t ) // not really correct but it requires nanogl rework
#endif // XASH_GLES #endif // XASH_GLES

View file

@ -18,7 +18,7 @@ GNU General Public License for more details.
#include "gl_local.h" #include "gl_local.h"
#include "gl_export.h" #include "gl_export.h"
#ifdef XASH_GL4ES #if XASH_GL4ES
#include "gl4es/include/gl4esinit.h" #include "gl4es/include/gl4esinit.h"
#endif #endif
@ -420,7 +420,7 @@ static void GAME_EXPORT R_OverrideTextureSourceSize( unsigned int texnum, uint s
static void* GAME_EXPORT R_GetProcAddress( const char *name ) static void* GAME_EXPORT R_GetProcAddress( const char *name )
{ {
#ifdef XASH_GL4ES #if XASH_GL4ES
return gl4es_GetProcAddress( name ); return gl4es_GetProcAddress( name );
#else // TODO: other wrappers #else // TODO: other wrappers
return gEngfuncs.GL_GetProcAddress( name ); return gEngfuncs.GL_GetProcAddress( name );

View file

@ -20,20 +20,20 @@ GNU General Public License for more details.
#endif #endif
#ifndef APIENTRY_LINKAGE #ifndef APIENTRY_LINKAGE
#define APIENTRY_LINKAGE extern #define APIENTRY_LINKAGE extern
#endif #endif
#if defined XASH_NANOGL || defined XASH_WES || defined XASH_REGAL #if XASH_NANOGL || XASH_WES || XASH_REGAL
#define XASH_GLES #define XASH_GLES 1
#define XASH_GL_STATIC #define XASH_GL_STATIC 1
#define REF_GL_KEEP_MANGLED_FUNCTIONS #define REF_GL_KEEP_MANGLED_FUNCTIONS 1
#elif defined XASH_GLES3COMPAT #elif XASH_GLES3COMPAT
#ifdef SOFTFP_LINK #ifdef SOFTFP_LINK
#undef APIENTRY #undef APIENTRY
#define APIENTRY __attribute__((pcs("aapcs"))) #define APIENTRY __attribute__((pcs("aapcs")))
#endif #endif // SOFTFP_LINK
#define XASH_GLES #define XASH_GLES 1
#endif #endif // XASH_GLES3COMPAT
typedef uint GLenum; typedef uint GLenum;
typedef byte GLboolean; typedef byte GLboolean;
@ -897,16 +897,16 @@ typedef float GLmatrix[16];
#define WGL_SAMPLES_ARB 0x2042 #define WGL_SAMPLES_ARB 0x2042
#ifdef __GNUC__ #ifdef __GNUC__
#pragma GCC diagnostic push #pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable" #pragma GCC diagnostic ignored "-Wunused-variable"
#endif #endif
#if defined( XASH_GL_STATIC ) && !defined( REF_GL_KEEP_MANGLED_FUNCTIONS ) #if XASH_GL_STATIC && !REF_GL_KEEP_MANGLED_FUNCTIONS
#define GL_FUNCTION( name ) name #define GL_FUNCTION( name ) name
#elif defined( XASH_GL_STATIC ) && defined( REF_GL_KEEP_MANGLED_FUNCTIONS ) #elif XASH_GL_STATIC && REF_GL_KEEP_MANGLED_FUNCTIONS
#define GL_FUNCTION( name ) APIENTRY p##name #define GL_FUNCTION( name ) APIENTRY p##name
#else #else
#define GL_FUNCTION( name ) (APIENTRY *p##name) #define GL_FUNCTION( name ) (APIENTRY *p##name)
#endif #endif
// helper opengl functions // helper opengl functions
@ -1387,11 +1387,11 @@ APIENTRY_LINKAGE void GL_FUNCTION( glFlushMappedBufferRange )(GLenum target, GLs
APIENTRY_LINKAGE void *GL_FUNCTION( glMapBufferRange )(GLenum target, GLsizei offset, GLsizei length, GLbitfield access); APIENTRY_LINKAGE void *GL_FUNCTION( glMapBufferRange )(GLenum target, GLsizei offset, GLsizei length, GLbitfield access);
APIENTRY_LINKAGE void GL_FUNCTION( glDrawRangeElementsBaseVertex )( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLuint vertex ); APIENTRY_LINKAGE void GL_FUNCTION( glDrawRangeElementsBaseVertex )( GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLuint vertex );
#if !defined( XASH_GL_STATIC ) || (!defined( XASH_GLES ) && !defined( XASH_GL4ES )) #if !XASH_GL_STATIC || ( !XASH_GLES && !XASH_GL4ES )
APIENTRY_LINKAGE void GL_FUNCTION( glTexImage2DMultisample )(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); APIENTRY_LINKAGE void GL_FUNCTION( glTexImage2DMultisample )(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
#endif /* !XASH_GLES && !XASH_GL4ES */ #endif /* !XASH_GLES && !XASH_GL4ES */
#if defined( XASH_GL_STATIC ) && !defined( REF_GL_KEEP_MANGLED_FUNCTIONS ) #if XASH_GL_STATIC && !REF_GL_KEEP_MANGLED_FUNCTIONS
#define pglGetError glGetError #define pglGetError glGetError
#define pglGetString glGetString #define pglGetString glGetString
#define pglAccum glAccum #define pglAccum glAccum
@ -1857,7 +1857,7 @@ APIENTRY_LINKAGE void GL_FUNCTION( glTexImage2DMultisample )(GLenum target, GLsi
#endif #endif
#ifdef __GNUC__ #ifdef __GNUC__
#pragma GCC diagnostic pop #pragma GCC diagnostic pop
#endif #endif
#endif//GL_EXPORT_H #endif//GL_EXPORT_H

View file

@ -632,7 +632,7 @@ static void GL_SetTextureTarget( gl_texture_t *tex, rgbdata_t *pic )
pic->numMips = Q_max( 1, pic->numMips ); pic->numMips = Q_max( 1, pic->numMips );
// trying to determine texture type // trying to determine texture type
#ifndef XASH_GLES #if !XASH_GLES
if( pic->width > 1 && pic->height <= 1 ) if( pic->width > 1 && pic->height <= 1 )
tex->target = GL_TEXTURE_1D; tex->target = GL_TEXTURE_1D;
else else
@ -1094,7 +1094,7 @@ static void GL_TextureImageCompressed( gl_texture_t *tex, GLint side, GLint leve
Assert( tex != NULL ); Assert( tex != NULL );
#ifndef XASH_GLES #if !XASH_GLES
if( tex->target == GL_TEXTURE_1D ) if( tex->target == GL_TEXTURE_1D )
{ {
if( subImage ) pglCompressedTexSubImage1DARB( tex->target, level, 0, width, tex->format, size, data ); if( subImage ) pglCompressedTexSubImage1DARB( tex->target, level, 0, width, tex->format, size, data );

View file

@ -47,11 +47,12 @@ glconfig_t glConfig;
glstate_t glState; glstate_t glState;
glwstate_t glw_state; glwstate_t glw_state;
#ifdef XASH_GL_STATIC #if XASH_GL_STATIC
#define GL_CALL( x ) #x, NULL #define GL_CALL( x ) #x, NULL
#else #else
#define GL_CALL( x ) #x, (void**)&p##x #define GL_CALL( x ) #x, (void**)&p##x
#endif #endif
static dllfunc_t opengl_110funcs[] = static dllfunc_t opengl_110funcs[] =
{ {
{ GL_CALL( glClearColor ) }, { GL_CALL( glClearColor ) },
@ -229,7 +230,7 @@ static dllfunc_t vbofuncs[] =
{ GL_CALL( glDeleteBuffersARB ) }, { GL_CALL( glDeleteBuffersARB ) },
{ GL_CALL( glGenBuffersARB ) }, { GL_CALL( glGenBuffersARB ) },
{ GL_CALL( glIsBufferARB ) }, { GL_CALL( glIsBufferARB ) },
#ifndef XASH_GLES #if !XASH_GLES
{ GL_CALL( glMapBufferARB ) }, { GL_CALL( glMapBufferARB ) },
{ GL_CALL( glUnmapBufferARB ) }, { GL_CALL( glUnmapBufferARB ) },
#endif #endif
@ -260,13 +261,12 @@ static dllfunc_t drawrangeelementsextfuncs[] =
// mangling in gl2shim??? // mangling in gl2shim???
// still need resolve some ext dynamicly, and mangling beginend wrappers will help only with LTO // still need resolve some ext dynamicly, and mangling beginend wrappers will help only with LTO
// anyway this will not work with gl-wes/nanogl, we do not link to libGLESv2, so skip this now // anyway this will not work with gl-wes/nanogl, we do not link to libGLESv2, so skip this now
#ifndef XASH_GL_STATIC #if !XASH_GL_STATIC
static dllfunc_t mapbufferrangefuncs[] = static dllfunc_t mapbufferrangefuncs[] =
{ {
{ GL_CALL( glMapBufferRange ) }, { GL_CALL( glMapBufferRange ) },
{ GL_CALL( glFlushMappedBufferRange ) }, { GL_CALL( glFlushMappedBufferRange ) },
#ifdef XASH_GLES #if XASH_GLES
{ GL_CALL( glUnmapBufferARB ) }, { GL_CALL( glUnmapBufferARB ) },
#endif #endif
{ NULL, NULL } { NULL, NULL }
@ -284,7 +284,6 @@ static dllfunc_t bufferstoragefuncs[] =
{ NULL, NULL } { NULL, NULL }
}; };
static dllfunc_t shaderobjectsfuncs[] = static dllfunc_t shaderobjectsfuncs[] =
{ {
{ GL_CALL( glDeleteObjectARB ) }, { GL_CALL( glDeleteObjectARB ) },
@ -440,7 +439,7 @@ static dllfunc_t multitexturefuncs_es2[] =
{ NULL , NULL } { NULL , NULL }
}; };
#endif #endif // !XASH_GL_STATIC
/* /*
======================== ========================
@ -548,7 +547,7 @@ qboolean GL_CheckExtension( const char *name, const dllfunc_t *funcs, const char
return false; return false;
} }
#ifndef XASH_GL_STATIC #if !XASH_GL_STATIC
// clear exports // clear exports
for( func = funcs; func && func->name; func++ ) for( func = funcs; func && func->name; func++ )
*func->func = NULL; *func->func = NULL;
@ -561,7 +560,7 @@ qboolean GL_CheckExtension( const char *name, const dllfunc_t *funcs, const char
string name; string name;
char *end; char *end;
size_t i = 0; size_t i = 0;
#ifdef XASH_GLES #if XASH_GLES
const char *suffixes[] = { "", "EXT", "OES" }; const char *suffixes[] = { "", "EXT", "OES" };
#else #else
const char *suffixes[] = { "", "EXT" }; const char *suffixes[] = { "", "EXT" };
@ -772,24 +771,23 @@ static void R_RenderInfo_f( void )
glConfig.alpha_bits, glConfig.depth_bits, glConfig.stencil_bits ); glConfig.alpha_bits, glConfig.depth_bits, glConfig.stencil_bits );
} }
#ifdef XASH_GLES #if XASH_GLES
static void GL_InitExtensionsGLES( void ) static void GL_InitExtensionsGLES( void )
{ {
int extid; int extid;
// intialize wrapper type // intialize wrapper type
#ifdef XASH_NANOGL #if XASH_NANOGL
glConfig.context = CONTEXT_TYPE_GLES_1_X; glConfig.context = CONTEXT_TYPE_GLES_1_X;
glConfig.wrapper = GLES_WRAPPER_NANOGL; glConfig.wrapper = GLES_WRAPPER_NANOGL;
#elif defined( XASH_WES ) #elif XASH_WES
glConfig.context = CONTEXT_TYPE_GLES_2_X; glConfig.context = CONTEXT_TYPE_GLES_2_X;
glConfig.wrapper = GLES_WRAPPER_WES; glConfig.wrapper = GLES_WRAPPER_WES;
#elif defined( XASH_GLES3COMPAT ) #elif XASH_GLES3COMPAT
glConfig.context = CONTEXT_TYPE_GLES_2_X; glConfig.context = CONTEXT_TYPE_GLES_2_X;
glConfig.wrapper = GLES_WRAPPER_NONE; glConfig.wrapper = GLES_WRAPPER_NONE;
#else #else
#error "unknown gles wrapper"
#error "unknown gles wrapper"
#endif #endif
glConfig.hardware_type = GLHW_GENERIC; glConfig.hardware_type = GLHW_GENERIC;
@ -804,7 +802,7 @@ static void GL_InitExtensionsGLES( void )
case GL_ARB_MULTITEXTURE: case GL_ARB_MULTITEXTURE:
if( !GL_CheckExtension( "multitexture", multitexturefuncs, "gl_arb_multitexture", GL_ARB_MULTITEXTURE, 1.0 ) && glConfig.wrapper == GLES_WRAPPER_NONE ) if( !GL_CheckExtension( "multitexture", multitexturefuncs, "gl_arb_multitexture", GL_ARB_MULTITEXTURE, 1.0 ) && glConfig.wrapper == GLES_WRAPPER_NONE )
{ {
#ifndef XASH_GL_STATIC #if !XASH_GL_STATIC
if( !GL_CheckExtension( "multitexture_es1", multitexturefuncs_es, "gl_arb_multitexture", GL_ARB_MULTITEXTURE, 1.0 ) if( !GL_CheckExtension( "multitexture_es1", multitexturefuncs_es, "gl_arb_multitexture", GL_ARB_MULTITEXTURE, 1.0 )
&& !GL_CheckExtension( "multitexture_es2", multitexturefuncs_es2, "gl_arb_multitexture", GL_ARB_MULTITEXTURE, 2.0 )) && !GL_CheckExtension( "multitexture_es2", multitexturefuncs_es2, "gl_arb_multitexture", GL_ARB_MULTITEXTURE, 2.0 ))
break; break;
@ -839,7 +837,7 @@ static void GL_InitExtensionsGLES( void )
case GL_ARB_TEXTURE_NPOT_EXT: case GL_ARB_TEXTURE_NPOT_EXT:
GL_CheckExtension( "GL_OES_texture_npot", NULL, "gl_texture_npot", extid, 0 ); GL_CheckExtension( "GL_OES_texture_npot", NULL, "gl_texture_npot", extid, 0 );
break; break;
#ifndef XASH_GL_STATIC #if !XASH_GL_STATIC
case GL_SHADER_OBJECTS_EXT: case GL_SHADER_OBJECTS_EXT:
GL_CheckExtension( "ES2 Shaders", shaderobjectsfuncs_gles, "gl_shaderobjects", extid, 2.0 ); GL_CheckExtension( "ES2 Shaders", shaderobjectsfuncs_gles, "gl_shaderobjects", extid, 2.0 );
break; break;
@ -886,7 +884,7 @@ static void GL_InitExtensionsGLES( void )
GL_SetExtension( extid, false ); GL_SetExtension( extid, false );
} }
} }
#ifndef XASH_GL_STATIC #if !XASH_GL_STATIC
GL2_ShimInit(); GL2_ShimInit();
#endif #endif
} }
@ -979,7 +977,7 @@ static void GL_InitExtensionsBigGL( void )
GL_CheckExtension( "GL_ARB_vertex_buffer_object", vbofuncs, "gl_vertex_buffer_object", GL_ARB_VERTEX_BUFFER_OBJECT_EXT, 2.0 ); GL_CheckExtension( "GL_ARB_vertex_buffer_object", vbofuncs, "gl_vertex_buffer_object", GL_ARB_VERTEX_BUFFER_OBJECT_EXT, 2.0 );
GL_CheckExtension( "GL_ARB_texture_multisample", multisampletexfuncs, "gl_texture_multisample", GL_TEXTURE_MULTISAMPLE, 0 ); GL_CheckExtension( "GL_ARB_texture_multisample", multisampletexfuncs, "gl_texture_multisample", GL_TEXTURE_MULTISAMPLE, 0 );
GL_CheckExtension( "GL_ARB_texture_compression_bptc", NULL, "gl_texture_bptc_compression", GL_ARB_TEXTURE_COMPRESSION_BPTC, 0 ); GL_CheckExtension( "GL_ARB_texture_compression_bptc", NULL, "gl_texture_bptc_compression", GL_ARB_TEXTURE_COMPRESSION_BPTC, 0 );
#ifndef XASH_GL_STATIC #if !XASH_GL_STATIC
if( glConfig.context == CONTEXT_TYPE_GL_CORE ) if( glConfig.context == CONTEXT_TYPE_GL_CORE )
GL_CheckExtension( "shader_objects", shaderobjectsfuncs_gles, "gl_shaderobjects", GL_SHADER_OBJECTS_EXT, 2.0 ); GL_CheckExtension( "shader_objects", shaderobjectsfuncs_gles, "gl_shaderobjects", GL_SHADER_OBJECTS_EXT, 2.0 );
else else
@ -1017,7 +1015,7 @@ static void GL_InitExtensionsBigGL( void )
if( GL_CheckExtension( "glDrawRangeElementsEXT", drawrangeelementsextfuncs, if( GL_CheckExtension( "glDrawRangeElementsEXT", drawrangeelementsextfuncs,
"gl_drawrangelements", GL_DRAW_RANGEELEMENTS_EXT, 0 )) "gl_drawrangelements", GL_DRAW_RANGEELEMENTS_EXT, 0 ))
{ {
#ifndef XASH_GL_STATIC #if !XASH_GL_STATIC
pglDrawRangeElements = pglDrawRangeElementsEXT; pglDrawRangeElements = pglDrawRangeElementsEXT;
#endif #endif
} }
@ -1033,7 +1031,7 @@ static void GL_InitExtensionsBigGL( void )
// init our immediate mode override // init our immediate mode override
VGL_ShimInit(); VGL_ShimInit();
#endif #endif
#if !defined(XASH_GLES) && !defined(XASH_GL_STATIC) #if !XASH_GLES && !XASH_GL_STATIC
if( gEngfuncs.Sys_CheckParm( "-gl2shim" )) if( gEngfuncs.Sys_CheckParm( "-gl2shim" ))
GL2_ShimInit(); GL2_ShimInit();
#endif #endif
@ -1076,7 +1074,7 @@ void GL_InitExtensions( void )
glConfig.version_major = major; glConfig.version_major = major;
glConfig.version_minor = minor; glConfig.version_minor = minor;
} }
#ifndef XASH_GL_STATIC #if !XASH_GL_STATIC
if( !glConfig.extensions_string ) if( !glConfig.extensions_string )
{ {
int n = 0; int n = 0;
@ -1106,7 +1104,7 @@ void GL_InitExtensions( void )
#endif #endif
gEngfuncs.Con_Reportf( "^3Video^7: %s\n", glConfig.renderer_string ); gEngfuncs.Con_Reportf( "^3Video^7: %s\n", glConfig.renderer_string );
#ifdef XASH_GLES #if XASH_GLES
GL_InitExtensionsGLES(); GL_InitExtensionsGLES();
#else #else
GL_InitExtensionsBigGL(); GL_InitExtensionsBigGL();
@ -1114,7 +1112,7 @@ void GL_InitExtensions( void )
pglGetIntegerv( GL_MAX_TEXTURE_SIZE, &glConfig.max_2d_texture_size ); pglGetIntegerv( GL_MAX_TEXTURE_SIZE, &glConfig.max_2d_texture_size );
if( glConfig.max_2d_texture_size <= 0 ) glConfig.max_2d_texture_size = 256; if( glConfig.max_2d_texture_size <= 0 ) glConfig.max_2d_texture_size = 256;
#ifndef XASH_GL4ES #if !XASH_GL4ES
// enable gldebug if allowed // enable gldebug if allowed
if( GL_Support( GL_DEBUG_OUTPUT )) if( GL_Support( GL_DEBUG_OUTPUT ))
{ {
@ -1235,7 +1233,7 @@ static void R_CheckVBO( void )
if( glConfig.max_texture_units < 3 ) if( glConfig.max_texture_units < 3 )
disable = true; disable = true;
#ifdef XASH_MOBILE_PLATFORM #if XASH_MOBILE_PLATFORM
// VideoCore4 drivers have a problem with mixing VBO and client arrays // VideoCore4 drivers have a problem with mixing VBO and client arrays
// Disable it, as there is no suitable workaround here // Disable it, as there is no suitable workaround here
if( Q_stristr( glConfig.renderer_string, "VideoCore IV" ) || Q_stristr( glConfig.renderer_string, "vc4" ) ) if( Q_stristr( glConfig.renderer_string, "VideoCore IV" ) || Q_stristr( glConfig.renderer_string, "vc4" ) )
@ -1323,13 +1321,13 @@ void R_Shutdown( void )
GL_RemoveCommands(); GL_RemoveCommands();
R_ShutdownImages(); R_ShutdownImages();
#if !defined(XASH_GLES) && !defined(XASH_GL_STATIC) #if !XASH_GLES && !XASH_GL_STATIC
GL2_ShimShutdown(); GL2_ShimShutdown();
#endif #endif
Mem_FreePool( &r_temppool ); Mem_FreePool( &r_temppool );
#ifdef XASH_GL4ES #if XASH_GL4ES
close_gl4es(); close_gl4es();
#endif // XASH_GL4ES #endif // XASH_GL4ES
@ -1388,17 +1386,18 @@ void GL_SetupAttributes( int safegl )
int context_flags = 0; // REFTODO!!!!! int context_flags = 0; // REFTODO!!!!!
int samples = 0; int samples = 0;
#ifdef XASH_GLES #if XASH_GLES
gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_PROFILE_MASK, REF_GL_CONTEXT_PROFILE_ES ); gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_PROFILE_MASK, REF_GL_CONTEXT_PROFILE_ES );
gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_EGL, 1 ); gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_EGL, 1 );
#ifdef XASH_NANOGL #if XASH_NANOGL
gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MAJOR_VERSION, 1 ); gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MAJOR_VERSION, 1 );
gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MINOR_VERSION, 1 ); gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MINOR_VERSION, 1 );
#else #else // !XASH_NANOGL
gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MAJOR_VERSION, 2 ); gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MAJOR_VERSION, 2 );
gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MINOR_VERSION, 0 ); gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MINOR_VERSION, 0 );
#endif #endif
#elif defined XASH_GL4ES
#elif XASH_GL4ES
gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_PROFILE_MASK, REF_GL_CONTEXT_PROFILE_ES ); gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_PROFILE_MASK, REF_GL_CONTEXT_PROFILE_ES );
gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_EGL, 1 ); gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_EGL, 1 );
gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MAJOR_VERSION, 2 ); gEngfuncs.GL_SetAttribute( REF_GL_CONTEXT_MAJOR_VERSION, 2 );
@ -1520,7 +1519,7 @@ void GL_SetupAttributes( int safegl )
void wes_init( const char *gles2 ); void wes_init( const char *gles2 );
int nanoGL_Init( void ); int nanoGL_Init( void );
#ifdef XASH_GL4ES #if XASH_GL4ES
static void GL4ES_GetMainFBSize( int *width, int *height ) static void GL4ES_GetMainFBSize( int *width, int *height )
{ {
*width = gpGlobals->width; *width = gpGlobals->width;
@ -1534,12 +1533,12 @@ static void *GL4ES_GetProcAddress( const char *name )
return NULL; return NULL;
return gEngfuncs.GL_GetProcAddress( name ); return gEngfuncs.GL_GetProcAddress( name );
} }
#endif #endif // XASH_GL4ES
void GL_OnContextCreated( void ) void GL_OnContextCreated( void )
{ {
int colorBits[3]; int colorBits[3];
#ifdef XASH_NANOGL #if XASH_NANOGL
nanoGL_Init(); nanoGL_Init();
#endif #endif
@ -1557,10 +1556,11 @@ void GL_OnContextCreated( void )
gEngfuncs.GL_GetAttribute( REF_GL_CONTEXT_MAJOR_VERSION, &glConfig.version_major ); gEngfuncs.GL_GetAttribute( REF_GL_CONTEXT_MAJOR_VERSION, &glConfig.version_major );
gEngfuncs.GL_GetAttribute( REF_GL_CONTEXT_MINOR_VERSION, &glConfig.version_minor ); gEngfuncs.GL_GetAttribute( REF_GL_CONTEXT_MINOR_VERSION, &glConfig.version_minor );
#ifdef XASH_WES #if XASH_WES
wes_init( "" ); wes_init( "" );
#endif #endif // XASH_WES
#ifdef XASH_GL4ES
#if XASH_GL4ES
set_getprocaddress( GL4ES_GetProcAddress ); set_getprocaddress( GL4ES_GetProcAddress );
set_getmainfbsize( GL4ES_GetMainFBSize ); set_getmainfbsize( GL4ES_GetMainFBSize );
initialize_gl4es(); initialize_gl4es();
@ -1569,5 +1569,5 @@ void GL_OnContextCreated( void )
pglHint( GL_BEGINEND_HINT_GL4ES, 1 ); pglHint( GL_BEGINEND_HINT_GL4ES, 1 );
// dxt unpacked to 16-bit looks ugly // dxt unpacked to 16-bit looks ugly
pglHint( GL_AVOID16BITS_HINT_GL4ES, 1 ); pglHint( GL_AVOID16BITS_HINT_GL4ES, 1 );
#endif #endif // XASH_GL4ES
} }

View file

@ -1240,7 +1240,7 @@ dynamic:
R_SetCacheState( fa ); R_SetCacheState( fa );
#ifdef XASH_WES #if XASH_WES
GL_Bind( XASH_TEXTURE1, tr.lightmapTextures[fa->lightmaptexturenum] ); GL_Bind( XASH_TEXTURE1, tr.lightmapTextures[fa->lightmaptexturenum] );
pglTexParameteri( GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_TRUE ); pglTexParameteri( GL_TEXTURE_2D, GL_GENERATE_MIPMAP_SGIS, GL_TRUE );
#else #else
@ -1249,7 +1249,7 @@ dynamic:
pglTexSubImage2D( GL_TEXTURE_2D, 0, fa->light_s, fa->light_t, smax, tmax, GL_RGBA, GL_UNSIGNED_BYTE, temp ); pglTexSubImage2D( GL_TEXTURE_2D, 0, fa->light_s, fa->light_t, smax, tmax, GL_RGBA, GL_UNSIGNED_BYTE, temp );
#ifdef XASH_WES #if XASH_WES
GL_SelectTexture( XASH_TEXTURE0 ); GL_SelectTexture( XASH_TEXTURE0 );
#endif #endif
} }

View file

@ -46,27 +46,27 @@ def build(bld):
'ref_gl': { 'ref_gl': {
'enable': bld.env.GL, 'enable': bld.env.GL,
'libs': ['GL'] if bld.env.GL_STATIC else [], 'libs': ['GL'] if bld.env.GL_STATIC else [],
'defines': ['XASH_GL_STATIC'] if bld.env.GL_STATIC else [], 'defines': ['XASH_GL_STATIC=1'] if bld.env.GL_STATIC else [],
}, },
'ref_gles1': { 'ref_gles1': {
'enable': bld.env.NANOGL, 'enable': bld.env.NANOGL,
'libs': ['DL', 'nanogl', 'LOG'], 'libs': ['DL', 'nanogl', 'LOG'],
'defines': ['XASH_NANOGL'], 'defines': ['XASH_NANOGL=1'],
}, },
'ref_gles2': { 'ref_gles2': {
'enable': bld.env.GLWES, 'enable': bld.env.GLWES,
'libs': ['DL', 'gl-wes-v2', 'LOG'], 'libs': ['DL', 'gl-wes-v2', 'LOG'],
'defines': ['XASH_WES'], 'defines': ['XASH_WES=1'],
}, },
'ref_gl4es': { 'ref_gl4es': {
'enable': bld.env.GL4ES, 'enable': bld.env.GL4ES,
'libs': ['DL', 'gl4es', 'LOG'], 'libs': ['DL', 'gl4es', 'LOG'],
'defines': ['XASH_GL_STATIC', 'XASH_GL4ES'], 'defines': ['XASH_GL_STATIC=1', 'XASH_GL4ES=1'],
}, },
'ref_gles3compat': { 'ref_gles3compat': {
'enable': bld.env.GLES3COMPAT, 'enable': bld.env.GLES3COMPAT,
'libs': [], 'libs': [],
'defines': ['XASH_GLES3COMPAT'], 'defines': ['XASH_GLES3COMPAT=1'],
}, },
} }