@@ -710,6 +710,7 @@ RLAPI void rlSetBlendFactorsSeparate(int glSrcRGB, int glDstRGB, int glSrcAlpha,
710
710
RLAPI void rlglInit (int width , int height ); // Initialize rlgl (buffers, shaders, textures, states)
711
711
RLAPI void rlglClose (void ); // De-initialize rlgl (buffers, shaders, textures)
712
712
RLAPI void rlLoadExtensions (void * loader ); // Load OpenGL extensions (loader function required)
713
+ RLAPI void * rlGetProcAddress (const char * procName ); // Get OpenGL procedure address
713
714
RLAPI int rlGetVersion (void ); // Get current OpenGL version
714
715
RLAPI void rlSetFramebufferWidth (int width ); // Set current framebuffer width
715
716
RLAPI int rlGetFramebufferWidth (void ); // Get default framebuffer width
@@ -1041,10 +1042,15 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
1041
1042
// Types and Structures Definition
1042
1043
//----------------------------------------------------------------------------------
1043
1044
#if defined(GRAPHICS_API_OPENGL_33 ) || defined(GRAPHICS_API_OPENGL_ES2 )
1045
+
1046
+ typedef void * (* rlglLoadProc )(const char * name ); // OpenGL extension functions loader signature (same as GLADloadproc)
1047
+
1044
1048
typedef struct rlglData {
1045
1049
rlRenderBatch * currentBatch ; // Current render batch
1046
1050
rlRenderBatch defaultBatch ; // Default internal render batch
1047
1051
1052
+ rlglLoadProc loader ; // OpenGL function loader
1053
+
1048
1054
struct {
1049
1055
int vertexCounter ; // Current active render batch vertex counter (generic, used for all batches)
1050
1056
float texcoordx , texcoordy ; // Current active texture coordinate (added on glVertex*())
@@ -1114,8 +1120,6 @@ typedef struct rlglData {
1114
1120
} ExtSupported ; // Extensions supported flags
1115
1121
} rlglData ;
1116
1122
1117
- typedef void * (* rlglLoadProc )(const char * name ); // OpenGL extension functions loader signature (same as GLADloadproc)
1118
-
1119
1123
#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2
1120
1124
1121
1125
//----------------------------------------------------------------------------------
@@ -2567,6 +2571,8 @@ void rlLoadExtensions(void *loader)
2567
2571
TRACELOG (RL_LOG_INFO , " > Version: %s" , glGetString (GL_VERSION ));
2568
2572
TRACELOG (RL_LOG_INFO , " > GLSL: %s" , glGetString (GL_SHADING_LANGUAGE_VERSION ));
2569
2573
2574
+ RLGL .loader = (rlglLoadProc )loader ;
2575
+
2570
2576
#if defined(GRAPHICS_API_OPENGL_33 ) || defined(GRAPHICS_API_OPENGL_ES2 )
2571
2577
// NOTE: Anisotropy levels capability is an extension
2572
2578
#ifndef GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT
@@ -2625,6 +2631,11 @@ void rlLoadExtensions(void *loader)
2625
2631
#endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2
2626
2632
}
2627
2633
2634
+ // Get OpenGL procedure address
2635
+ void * rlGetProcAddress (const char * procName ) {
2636
+ return RLGL .loader (procName );
2637
+ }
2638
+
2628
2639
// Get current OpenGL version
2629
2640
int rlGetVersion (void )
2630
2641
{
0 commit comments