Call glActiveTexture and glClientActiveTexture through cogl_get_proc_address
All GL functions that are defined in a version later than 1.1 need to be called through cogl_get_proc_address because the Windows GL DLL does not export them to directly link against.
This commit is contained in:
parent
5d6a11e1bf
commit
9e10dc402f
@ -22,6 +22,11 @@
|
||||
#include "../gles/cogl-gles2-wrapper.h"
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_COGL_GL
|
||||
#define glActiveTexture ctx->pf_glActiveTexture
|
||||
#define glClientActiveTexture ctx->pf_glClientActiveTexture
|
||||
#endif
|
||||
|
||||
static void _cogl_material_free (CoglMaterial *tex);
|
||||
static void _cogl_material_layer_free (CoglMaterialLayer *layer);
|
||||
|
||||
|
@ -153,6 +153,8 @@
|
||||
#define glDeleteBuffers ctx->pf_glDeleteBuffersARB
|
||||
#define glMapBuffer ctx->pf_glMapBufferARB
|
||||
#define glUnmapBuffer ctx->pf_glUnmapBufferARB
|
||||
#define glActiveTexture ctx->pf_glActiveTexture
|
||||
#define glClientActiveTexture ctx->pf_glClientActiveTexture
|
||||
#ifndef GL_ARRAY_BUFFER
|
||||
#define GL_ARRAY_BUFFER GL_ARRAY_BUFFER_ARB
|
||||
#endif
|
||||
|
@ -135,6 +135,8 @@ cogl_create_context ()
|
||||
_context->pf_glUniformMatrix4fvARB = NULL;
|
||||
|
||||
_context->pf_glDrawRangeElements = NULL;
|
||||
_context->pf_glActiveTexture = NULL;
|
||||
_context->pf_glClientActiveTexture = NULL;
|
||||
|
||||
/* Initialise the clip stack */
|
||||
_cogl_clip_stack_state_init ();
|
||||
|
@ -162,6 +162,9 @@ typedef struct
|
||||
COGL_PFNGLUNIFORMMATRIX4FVARBPROC pf_glUniformMatrix4fvARB;
|
||||
|
||||
COGL_PFNGLDRAWRANGEELEMENTSPROC pf_glDrawRangeElements;
|
||||
|
||||
COGL_PFNGLACTIVETEXTUREPROC pf_glActiveTexture;
|
||||
COGL_PFNGLCLIENTACTIVETEXTUREPROC pf_glClientActiveTexture;
|
||||
} CoglContext;
|
||||
|
||||
CoglContext *
|
||||
|
@ -1026,6 +1026,14 @@ typedef void
|
||||
GLenum type,
|
||||
const GLvoid *indices);
|
||||
|
||||
typedef void
|
||||
(APIENTRYP COGL_PFNGLACTIVETEXTUREPROC)
|
||||
(GLenum texture);
|
||||
|
||||
typedef void
|
||||
(APIENTRYP COGL_PFNGLCLIENTACTIVETEXTUREPROC)
|
||||
(GLenum texture);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif
|
||||
|
@ -54,6 +54,8 @@
|
||||
#ifdef HAVE_COGL_GL
|
||||
|
||||
#define glDrawRangeElements ctx->pf_glDrawRangeElements
|
||||
#define glActiveTexture ctx->pf_glActiveTexture
|
||||
#define glClientActiveTexture ctx->pf_glClientActiveTexture
|
||||
|
||||
#else
|
||||
|
||||
|
@ -1083,12 +1083,18 @@ _cogl_features_init ()
|
||||
flags |= COGL_FEATURE_VBOS;
|
||||
}
|
||||
|
||||
/* This should always be available because it is defined in GL 1.2,
|
||||
but we can't call it directly because under Windows functions >
|
||||
1.1 aren't exported */
|
||||
/* These should always be available because they are defined in GL
|
||||
1.2, but we can't call it directly because under Windows
|
||||
functions > 1.1 aren't exported */
|
||||
ctx->pf_glDrawRangeElements =
|
||||
(COGL_PFNGLDRAWRANGEELEMENTSPROC)
|
||||
cogl_get_proc_address ("glDrawRangeElements");
|
||||
ctx->pf_glActiveTexture =
|
||||
(COGL_PFNGLACTIVETEXTUREPROC)
|
||||
cogl_get_proc_address ("glActiveTexture");
|
||||
ctx->pf_glClientActiveTexture =
|
||||
(COGL_PFNGLCLIENTACTIVETEXTUREPROC)
|
||||
cogl_get_proc_address ("glClientActiveTexture");
|
||||
|
||||
/* Cache features */
|
||||
ctx->feature_flags = flags;
|
||||
|
@ -56,6 +56,8 @@
|
||||
#ifdef HAVE_COGL_GL
|
||||
|
||||
#define glDrawRangeElements ctx->pf_glDrawRangeElements
|
||||
#define glActiveTexture ctx->pf_glActiveTexture
|
||||
#define glClientActiveTexture ctx->pf_glClientActiveTexture
|
||||
|
||||
#else
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user