mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 08:30:42 -05:00
Fix building GLES 2 after the material branch merge
- In cogl-material.h it directly sets the values of the CoglMaterialLayerCombineFunc to some GL_* constants. However these aren't defined in GLES 2 beacuse it has no fixed function texture combining. Instead the CGL_* versions are now used. cogl-defines.h now sets these to either the GL_* version if it is available, otherwise it directly uses the number. - Under GLES 2 cogl-material.c needs to access the CoglTexture struct so it needs to include cogl-texture-private.h - There are now #define's in cogl-gles2-wrapper.h to remap the GL function names to the wrapper names. These are disabled in cogl-gles2-wrapper.c by defining COGL_GLES2_WRAPPER_NO_REMAP. - Added missing wrappers for glLoadMatrixf and glMaterialfv. - Renamed the TexEnvf wrapper to TexEnvi because the latter is used instead from the material API.
This commit is contained in:
parent
edbe9a0377
commit
e88de5f5fd
@ -446,14 +446,14 @@ void cogl_material_remove_layer (CoglHandle material,
|
|||||||
*/
|
*/
|
||||||
typedef enum _CoglMaterialLayerCombineFunc
|
typedef enum _CoglMaterialLayerCombineFunc
|
||||||
{
|
{
|
||||||
COGL_MATERIAL_LAYER_COMBINE_FUNC_REPLACE = GL_REPLACE,
|
COGL_MATERIAL_LAYER_COMBINE_FUNC_REPLACE = CGL_REPLACE,
|
||||||
COGL_MATERIAL_LAYER_COMBINE_FUNC_MODULATE = GL_MODULATE,
|
COGL_MATERIAL_LAYER_COMBINE_FUNC_MODULATE = CGL_MODULATE,
|
||||||
COGL_MATERIAL_LAYER_COMBINE_FUNC_ADD = GL_ADD,
|
COGL_MATERIAL_LAYER_COMBINE_FUNC_ADD = CGL_ADD,
|
||||||
COGL_MATERIAL_LAYER_COMBINE_FUNC_ADD_SIGNED = GL_ADD_SIGNED,
|
COGL_MATERIAL_LAYER_COMBINE_FUNC_ADD_SIGNED = CGL_ADD_SIGNED,
|
||||||
COGL_MATERIAL_LAYER_COMBINE_FUNC_INTERPOLATE = GL_INTERPOLATE,
|
COGL_MATERIAL_LAYER_COMBINE_FUNC_INTERPOLATE = CGL_INTERPOLATE,
|
||||||
COGL_MATERIAL_LAYER_COMBINE_FUNC_SUBTRACT = GL_SUBTRACT,
|
COGL_MATERIAL_LAYER_COMBINE_FUNC_SUBTRACT = CGL_SUBTRACT,
|
||||||
COGL_MATERIAL_LAYER_COMBINE_FUNC_DOT3_RGB = GL_DOT3_RGB,
|
COGL_MATERIAL_LAYER_COMBINE_FUNC_DOT3_RGB = CGL_DOT3_RGB,
|
||||||
COGL_MATERIAL_LAYER_COMBINE_FUNC_DOT3_RGBA = GL_DOT3_RGBA
|
COGL_MATERIAL_LAYER_COMBINE_FUNC_DOT3_RGBA = CGL_DOT3_RGBA
|
||||||
} CoglMaterialLayerCombineFunc;
|
} CoglMaterialLayerCombineFunc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -583,9 +583,9 @@ typedef enum _CoglMaterialLayerCombineSrc
|
|||||||
COGL_MATERIAL_LAYER_COMBINE_SRC_TEXTURE7 = GL_TEXTURE7,
|
COGL_MATERIAL_LAYER_COMBINE_SRC_TEXTURE7 = GL_TEXTURE7,
|
||||||
/* .. who would ever need more than 8 texture layers.. :-) */
|
/* .. who would ever need more than 8 texture layers.. :-) */
|
||||||
|
|
||||||
COGL_MATERIAL_LAYER_COMBINE_SRC_CONSTANT = GL_CONSTANT,
|
COGL_MATERIAL_LAYER_COMBINE_SRC_CONSTANT = CGL_CONSTANT,
|
||||||
COGL_MATERIAL_LAYER_COMBINE_SRC_PRIMARY_COLOR = GL_PRIMARY_COLOR,
|
COGL_MATERIAL_LAYER_COMBINE_SRC_PRIMARY_COLOR = CGL_PRIMARY_COLOR,
|
||||||
COGL_MATERIAL_LAYER_COMBINE_SRC_PREVIOUS = GL_PREVIOUS
|
COGL_MATERIAL_LAYER_COMBINE_SRC_PREVIOUS = CGL_PREVIOUS
|
||||||
} CoglMaterialLayerCombineSrc;
|
} CoglMaterialLayerCombineSrc;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#include "cogl-handle.h"
|
#include "cogl-handle.h"
|
||||||
|
|
||||||
#include "cogl-material-private.h"
|
#include "cogl-material-private.h"
|
||||||
|
#include "cogl-texture-private.h"
|
||||||
|
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -18,7 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_COGL_GLES2
|
#ifdef HAVE_COGL_GLES2
|
||||||
#define glAlphaFunc cogl_wrap_glAlphaFunc
|
#include "../gles/cogl-gles2-wrapper.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void _cogl_material_free (CoglMaterial *tex);
|
static void _cogl_material_free (CoglMaterial *tex);
|
||||||
|
@ -159,14 +159,7 @@
|
|||||||
|
|
||||||
#elif defined (HAVE_COGL_GLES2)
|
#elif defined (HAVE_COGL_GLES2)
|
||||||
|
|
||||||
#define glVertexPointer cogl_wrap_glVertexPointer
|
#include "../gles/cogl-gles2-wrapper.h"
|
||||||
#define glNormalPointer cogl_wrap_glNormalPointer
|
|
||||||
#define glTexCoordPointer cogl_wrap_glTexCoordPointer
|
|
||||||
#define glColorPointer cogl_wrap_glColorPointer
|
|
||||||
#define glDrawArrays cogl_wrap_glDrawArrays
|
|
||||||
|
|
||||||
#define glEnableClientState cogl_wrap_glEnableClientState
|
|
||||||
#define glDisableClientState cogl_wrap_glDisableClientState
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -668,6 +668,9 @@ typedef GLuint COGLuint;
|
|||||||
#define CGL_COMPRESSED_SLUMINANCE_EXT GL_COMPRESSED_SLUMINANCE_EXT
|
#define CGL_COMPRESSED_SLUMINANCE_EXT GL_COMPRESSED_SLUMINANCE_EXT
|
||||||
#define CGL_COMPRESSED_SLUMINANCE_ALPHA_EXT GL_COMPRESSED_SLUMINANCE_ALPHA_EXT
|
#define CGL_COMPRESSED_SLUMINANCE_ALPHA_EXT GL_COMPRESSED_SLUMINANCE_ALPHA_EXT
|
||||||
|
|
||||||
|
#define CGL_DOT3_RGB GL_DOT3_RGB
|
||||||
|
#define CGL_DOT3_RGBA GL_DOT3_RGBA
|
||||||
|
|
||||||
/* extras */
|
/* extras */
|
||||||
|
|
||||||
#define CGL_TEXTURE_2D GL_TEXTURE_2D
|
#define CGL_TEXTURE_2D GL_TEXTURE_2D
|
||||||
|
@ -263,9 +263,6 @@ G_BEGIN_DECLS
|
|||||||
#define CGL_LIGHT_MODEL_TWO_SIDE GL_LIGHT_MODEL_TWO_SIDE
|
#define CGL_LIGHT_MODEL_TWO_SIDE GL_LIGHT_MODEL_TWO_SIDE
|
||||||
|
|
||||||
/* LightParameter */
|
/* LightParameter */
|
||||||
#define CGL_AMBIENT GL_AMBIENT
|
|
||||||
#define CGL_DIFFUSE GL_DIFFUSE
|
|
||||||
#define CGL_SPECULAR GL_SPECULAR
|
|
||||||
#define CGL_POSITION GL_POSITION
|
#define CGL_POSITION GL_POSITION
|
||||||
#define CGL_SPOT_DIRECTION GL_SPOT_DIRECTION
|
#define CGL_SPOT_DIRECTION GL_SPOT_DIRECTION
|
||||||
#define CGL_SPOT_EXPONENT GL_SPOT_EXPONENT
|
#define CGL_SPOT_EXPONENT GL_SPOT_EXPONENT
|
||||||
@ -301,8 +298,6 @@ G_BEGIN_DECLS
|
|||||||
#define CGL_SET GL_SET
|
#define CGL_SET GL_SET
|
||||||
|
|
||||||
/* MaterialParameter */
|
/* MaterialParameter */
|
||||||
#define CGL_EMISSION GL_EMISSION
|
|
||||||
#define CGL_SHININESS GL_SHININESS
|
|
||||||
#define CGL_AMBIENT_AND_DIFFUSE GL_AMBIENT_AND_DIFFUSE
|
#define CGL_AMBIENT_AND_DIFFUSE GL_AMBIENT_AND_DIFFUSE
|
||||||
|
|
||||||
/* MatrixMode */
|
/* MatrixMode */
|
||||||
@ -354,9 +349,7 @@ G_BEGIN_DECLS
|
|||||||
#define CGL_EXTENSIONS GL_EXTENSIONS
|
#define CGL_EXTENSIONS GL_EXTENSIONS
|
||||||
|
|
||||||
/* TextureEnvMode */
|
/* TextureEnvMode */
|
||||||
#define CGL_MODULATE GL_MODULATE
|
|
||||||
#define CGL_DECAL GL_DECAL
|
#define CGL_DECAL GL_DECAL
|
||||||
#define CGL_ADD GL_ADD
|
|
||||||
/* GL_BLEND */
|
/* GL_BLEND */
|
||||||
/* GL_REPLACE */
|
/* GL_REPLACE */
|
||||||
|
|
||||||
@ -410,16 +403,7 @@ G_BEGIN_DECLS
|
|||||||
#define CGL_BUFFER_SIZE GL_BUFFER_SIZE
|
#define CGL_BUFFER_SIZE GL_BUFFER_SIZE
|
||||||
#define CGL_BUFFER_USAGE GL_BUFFER_USAGE
|
#define CGL_BUFFER_USAGE GL_BUFFER_USAGE
|
||||||
#define CGL_BUFFER_ACCESS GL_BUFFER_ACCESS
|
#define CGL_BUFFER_ACCESS GL_BUFFER_ACCESS
|
||||||
#define CGL_SUBTRACT GL_SUBTRACT
|
|
||||||
#define CGL_COMBINE GL_COMBINE
|
|
||||||
#define CGL_COMBINE_RGB GL_COMBINE_RGB
|
|
||||||
#define CGL_COMBINE_ALPHA GL_COMBINE_ALPHA
|
|
||||||
#define CGL_RGB_SCALE GL_RGB_SCALE
|
#define CGL_RGB_SCALE GL_RGB_SCALE
|
||||||
#define CGL_ADD_SIGNED GL_ADD_SIGNED
|
|
||||||
#define CGL_INTERPOLATE GL_INTERPOLATE
|
|
||||||
#define CGL_CONSTANT GL_CONSTANT
|
|
||||||
#define CGL_PRIMARY_COLOR GL_PRIMARY_COLOR
|
|
||||||
#define CGL_PREVIOUS GL_PREVIOUS
|
|
||||||
#define CGL_ALPHA_SCALE GL_ALPHA_SCALE
|
#define CGL_ALPHA_SCALE GL_ALPHA_SCALE
|
||||||
#define CGL_POINT_SPRITE_OES GL_POINT_SPRITE_OES
|
#define CGL_POINT_SPRITE_OES GL_POINT_SPRITE_OES
|
||||||
#define CGL_COORD_REPLACE_OES GL_COORD_REPLACE_OES
|
#define CGL_COORD_REPLACE_OES GL_COORD_REPLACE_OES
|
||||||
@ -478,6 +462,189 @@ typedef GLuint COGLuint;
|
|||||||
|
|
||||||
#define CLUTTER_COGL_HAS_GLES 1
|
#define CLUTTER_COGL_HAS_GLES 1
|
||||||
|
|
||||||
|
/* These aren't always defined under GLES 2 but if they are then we
|
||||||
|
should probably use the GL_* macro instead of assuming the
|
||||||
|
number */
|
||||||
|
#ifdef GL_MODULATE
|
||||||
|
#define CGL_MODULATE GL_MODULATE
|
||||||
|
#else
|
||||||
|
#define CGL_MODULATE 0x2100
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_ADD
|
||||||
|
#define CGL_ADD GL_ADD
|
||||||
|
#else
|
||||||
|
#define CGL_ADD 0x0104
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_ADD_SIGNED
|
||||||
|
#define CGL_ADD_SIGNED GL_ADD_SIGNED
|
||||||
|
#else
|
||||||
|
#define CGL_ADD_SIGNED 0x8574
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_INTERPOLATE
|
||||||
|
#define CGL_INTERPOLATE GL_INTERPOLATE
|
||||||
|
#else
|
||||||
|
#define CGL_INTERPOLATE 0x8575
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_SUBTRACT
|
||||||
|
#define CGL_SUBTRACT GL_SUBTRACT
|
||||||
|
#else
|
||||||
|
#define CGL_SUBTRACT 0x84e7
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_DOT3_RGB
|
||||||
|
#define CGL_DOT3_RGB GL_DOT3_RGB
|
||||||
|
#else
|
||||||
|
#define CGL_DOT3_RGB 0x86ae
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_DOT3_RGBA
|
||||||
|
#define CGL_DOT3_RGBA GL_DOT3_RGBA
|
||||||
|
#else
|
||||||
|
#define CGL_DOT3_RGBA 0x86af
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_CONSTANT
|
||||||
|
#define CGL_CONSTANT GL_CONSTANT
|
||||||
|
#else
|
||||||
|
#define CGL_CONSTANT 0x8576
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_PRIMARY_COLOR
|
||||||
|
#define CGL_PRIMARY_COLOR GL_PRIMARY_COLOR
|
||||||
|
#else
|
||||||
|
#define CGL_PRIMARY_COLOR 0x8577
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_PREVIOUS
|
||||||
|
#define CGL_PREVIOUS GL_PREVIOUS
|
||||||
|
#else
|
||||||
|
#define CGL_PREVIOUS 0x8578
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_COMBINE
|
||||||
|
#define CGL_COMBINE GL_COMBINE
|
||||||
|
#else
|
||||||
|
#define CGL_COMBINE 0x8570
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_COMBINE_RGB
|
||||||
|
#define CGL_COMBINE_RGB GL_COMBINE_RGB
|
||||||
|
#else
|
||||||
|
#define CGL_COMBINE_RGB 0x8571
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_COMBINE_ALPHA
|
||||||
|
#define CGL_COMBINE_ALPHA GL_COMBINE_ALPHA
|
||||||
|
#else
|
||||||
|
#define CGL_COMBINE_ALPHA 0x8572
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_SRC0_RGB
|
||||||
|
#define CGL_SRC0_RGB GL_SRC0_RGB
|
||||||
|
#else
|
||||||
|
#define CGL_SRC0_RGB 0x8580
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_OPERAND0_RGB
|
||||||
|
#define CGL_OPERAND0_RGB GL_OPERAND0_RGB
|
||||||
|
#else
|
||||||
|
#define CGL_OPERAND0_RGB 0x8590
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_SRC1_RGB
|
||||||
|
#define CGL_SRC1_RGB GL_SRC1_RGB
|
||||||
|
#else
|
||||||
|
#define CGL_SRC1_RGB 0x8581
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_OPERAND1_RGB
|
||||||
|
#define CGL_OPERAND1_RGB GL_OPERAND1_RGB
|
||||||
|
#else
|
||||||
|
#define CGL_OPERAND1_RGB 0x8591
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_SRC2_RGB
|
||||||
|
#define CGL_SRC2_RGB GL_SRC2_RGB
|
||||||
|
#else
|
||||||
|
#define CGL_SRC2_RGB 0x8582
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_OPERAND2_RGB
|
||||||
|
#define CGL_OPERAND2_RGB GL_OPERAND2_RGB
|
||||||
|
#else
|
||||||
|
#define CGL_OPERAND2_RGB 0x8592
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_SRC0_ALPHA
|
||||||
|
#define CGL_SRC0_ALPHA GL_SRC0_ALPHA
|
||||||
|
#else
|
||||||
|
#define CGL_SRC0_ALPHA 0x8588
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_OPERAND0_ALPHA
|
||||||
|
#define CGL_OPERAND0_ALPHA GL_OPERAND0_ALPHA
|
||||||
|
#else
|
||||||
|
#define CGL_OPERAND0_ALPHA 0x8598
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_SRC1_ALPHA
|
||||||
|
#define CGL_SRC1_ALPHA GL_SRC1_ALPHA
|
||||||
|
#else
|
||||||
|
#define CGL_SRC1_ALPHA 0x8589
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_OPERAND1_ALPHA
|
||||||
|
#define CGL_OPERAND1_ALPHA GL_OPERAND1_ALPHA
|
||||||
|
#else
|
||||||
|
#define CGL_OPERAND1_ALPHA 0x8599
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_SRC2_ALPHA
|
||||||
|
#define CGL_SRC2_ALPHA GL_SRC2_ALPHA
|
||||||
|
#else
|
||||||
|
#define CGL_SRC2_ALPHA 0x858a
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_OPERAND2_ALPHA
|
||||||
|
#define CGL_OPERAND2_ALPHA GL_OPERAND2_ALPHA
|
||||||
|
#else
|
||||||
|
#define CGL_OPERAND2_ALPHA 0x859a
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_AMBIENT
|
||||||
|
#define CGL_AMBIENT GL_AMBIENT
|
||||||
|
#else
|
||||||
|
#define CGL_AMBIENT 0x1200
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_DIFFUSE
|
||||||
|
#define CGL_DIFFUSE GL_DIFFUSE
|
||||||
|
#else
|
||||||
|
#define CGL_DIFFUSE 0x1201
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_SPECULAR
|
||||||
|
#define CGL_SPECULAR GL_SPECULAR
|
||||||
|
#else
|
||||||
|
#define CGL_SPECULAR 0x1202
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_EMISSION
|
||||||
|
#define CGL_EMISSION GL_EMISSION
|
||||||
|
#else
|
||||||
|
#define CGL_EMISSION 0x1600
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef GL_SHININESS
|
||||||
|
#define CGL_SHININESS GL_SHININESS
|
||||||
|
#else
|
||||||
|
#define CGL_SHININESS 0x1601
|
||||||
|
#endif
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -31,6 +31,11 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
/* We don't want to get the remaps from the gl* functions to the
|
||||||
|
cogl_wrap_gl* functions in this file because we need to be able to
|
||||||
|
call the base version */
|
||||||
|
#define COGL_GLES2_WRAPPER_NO_REMAP 1
|
||||||
|
|
||||||
#include "cogl.h"
|
#include "cogl.h"
|
||||||
#include "cogl-gles2-wrapper.h"
|
#include "cogl-gles2-wrapper.h"
|
||||||
#include "cogl-fixed-vertex-shader.h"
|
#include "cogl-fixed-vertex-shader.h"
|
||||||
@ -803,13 +808,21 @@ cogl_wrap_glMultMatrix (const float *m)
|
|||||||
void
|
void
|
||||||
cogl_wrap_glMultMatrixf (const GLfloat *m)
|
cogl_wrap_glMultMatrixf (const GLfloat *m)
|
||||||
{
|
{
|
||||||
float new_matrix[16];
|
cogl_wrap_glMultMatrix (m);
|
||||||
int i;
|
}
|
||||||
|
|
||||||
for (i = 0; i < 16; i++)
|
void
|
||||||
new_matrix[i] = (m[i]);
|
cogl_wrap_glLoadMatrixf (const GLfloat *m)
|
||||||
|
{
|
||||||
|
float *old_matrix;
|
||||||
|
|
||||||
cogl_wrap_glMultMatrix (new_matrix);
|
_COGL_GET_GLES2_WRAPPER (w, NO_RETVAL);
|
||||||
|
|
||||||
|
old_matrix = cogl_gles2_get_matrix_stack_top (w);
|
||||||
|
|
||||||
|
memcpy (old_matrix, m, sizeof (float) * 16);
|
||||||
|
|
||||||
|
cogl_gles2_wrapper_update_matrix (w, w->matrix_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1275,7 +1288,7 @@ cogl_gles2_wrapper_bind_texture (GLenum target, GLuint texture,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
cogl_wrap_glTexEnvf (GLenum target, GLenum pname, GLfloat param)
|
cogl_wrap_glTexEnvi (GLenum target, GLenum pname, GLfloat param)
|
||||||
{
|
{
|
||||||
/* This function is only used to set the texture mode once to
|
/* This function is only used to set the texture mode once to
|
||||||
GL_MODULATE. The shader is hard-coded to modulate the texture so
|
GL_MODULATE. The shader is hard-coded to modulate the texture so
|
||||||
@ -1591,6 +1604,13 @@ cogl_wrap_glTexParameteri (GLenum target, GLenum pname, GLfloat param)
|
|||||||
glTexParameteri (target, pname, param);
|
glTexParameteri (target, pname, param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
cogl_wrap_glMaterialfv (GLenum face, GLenum pname, const GLfloat *params)
|
||||||
|
{
|
||||||
|
/* FIXME: the GLES 2 backend doesn't yet support lighting so this
|
||||||
|
function can't do anything */
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_cogl_gles2_clear_cache_for_program (CoglHandle user_program)
|
_cogl_gles2_clear_cache_for_program (CoglHandle user_program)
|
||||||
{
|
{
|
||||||
|
@ -259,6 +259,36 @@ struct _CoglGles2WrapperShader
|
|||||||
#define GL_EXP 0x8000
|
#define GL_EXP 0x8000
|
||||||
#define GL_EXP2 0x8001
|
#define GL_EXP2 0x8001
|
||||||
|
|
||||||
|
#define GL_ADD CGL_ADD
|
||||||
|
#define GL_ADD_SIGNED CGL_ADD_SIGNED
|
||||||
|
#define GL_INTERPOLATE CGL_INTERPOLATE
|
||||||
|
#define GL_SUBTRACT CGL_SUBTRACT
|
||||||
|
#define GL_DOT3_RGB CGL_DOT3_RGB
|
||||||
|
#define GL_DOT3_RGBA CGL_DOT3_RGBA
|
||||||
|
#define GL_CONSTANT CGL_CONSTANT
|
||||||
|
#define GL_PRIMARY_COLOR CGL_PRIMARY_COLOR
|
||||||
|
#define GL_PREVIOUS CGL_PREVIOUS
|
||||||
|
#define GL_COMBINE CGL_COMBINE
|
||||||
|
#define GL_COMBINE_RGB CGL_COMBINE_RGB
|
||||||
|
#define GL_COMBINE_ALPHA CGL_COMBINE_ALPHA
|
||||||
|
#define GL_SRC0_RGB CGL_SRC0_RGB
|
||||||
|
#define GL_OPERAND0_RGB CGL_OPERAND0_RGB
|
||||||
|
#define GL_SRC1_RGB CGL_SRC1_RGB
|
||||||
|
#define GL_OPERAND1_RGB CGL_OPERAND1_RGB
|
||||||
|
#define GL_SRC2_RGB CGL_SRC2_RGB
|
||||||
|
#define GL_OPERAND2_RGB CGL_OPERAND2_RGB
|
||||||
|
#define GL_SRC0_ALPHA CGL_SRC0_ALPHA
|
||||||
|
#define GL_OPERAND0_ALPHA CGL_OPERAND0_ALPHA
|
||||||
|
#define GL_SRC1_ALPHA CGL_SRC1_ALPHA
|
||||||
|
#define GL_OPERAND1_ALPHA CGL_OPERAND1_ALPHA
|
||||||
|
#define GL_SRC2_ALPHA CGL_SRC2_ALPHA
|
||||||
|
#define GL_OPERAND2_ALPHA CGL_OPERAND2_ALPHA
|
||||||
|
#define GL_AMBIENT CGL_AMBIENT
|
||||||
|
#define GL_DIFFUSE CGL_DIFFUSE
|
||||||
|
#define GL_SPECULAR CGL_SPECULAR
|
||||||
|
#define GL_EMISSION CGL_EMISSION
|
||||||
|
#define GL_SHININESS CGL_SHININESS
|
||||||
|
|
||||||
#endif /* GL_MODELVIEW */
|
#endif /* GL_MODELVIEW */
|
||||||
|
|
||||||
void cogl_gles2_wrapper_init (CoglGles2Wrapper *wrapper);
|
void cogl_gles2_wrapper_init (CoglGles2Wrapper *wrapper);
|
||||||
@ -269,6 +299,7 @@ void cogl_wrap_glPopMatrix ();
|
|||||||
void cogl_wrap_glMatrixMode (GLenum mode);
|
void cogl_wrap_glMatrixMode (GLenum mode);
|
||||||
void cogl_wrap_glLoadIdentity ();
|
void cogl_wrap_glLoadIdentity ();
|
||||||
void cogl_wrap_glMultMatrixf (const GLfloat *m);
|
void cogl_wrap_glMultMatrixf (const GLfloat *m);
|
||||||
|
void cogl_wrap_glLoadMatrixf (const GLfloat *m);
|
||||||
void cogl_wrap_glFrustumf (GLfloat left, GLfloat right,
|
void cogl_wrap_glFrustumf (GLfloat left, GLfloat right,
|
||||||
GLfloat bottom, GLfloat top,
|
GLfloat bottom, GLfloat top,
|
||||||
GLfloat z_near, GLfloat z_far);
|
GLfloat z_near, GLfloat z_far);
|
||||||
@ -291,7 +322,7 @@ void cogl_wrap_glColorPointer (GLint size, GLenum type, GLsizei stride,
|
|||||||
void cogl_wrap_glNormalPointer (GLenum type, GLsizei stride,
|
void cogl_wrap_glNormalPointer (GLenum type, GLsizei stride,
|
||||||
const GLvoid *pointer);
|
const GLvoid *pointer);
|
||||||
|
|
||||||
void cogl_wrap_glTexEnvf (GLenum target, GLenum pname, GLfloat param);
|
void cogl_wrap_glTexEnvi (GLenum target, GLenum pname, GLfloat param);
|
||||||
|
|
||||||
void cogl_wrap_glClientActiveTexture (GLenum texture);
|
void cogl_wrap_glClientActiveTexture (GLenum texture);
|
||||||
void cogl_wrap_glActiveTexture (GLenum texture);
|
void cogl_wrap_glActiveTexture (GLenum texture);
|
||||||
@ -319,47 +350,52 @@ void cogl_wrap_glTexParameteri (GLenum target, GLenum pname, GLfloat param);
|
|||||||
void cogl_gles2_wrapper_bind_texture (GLenum target, GLuint texture,
|
void cogl_gles2_wrapper_bind_texture (GLenum target, GLuint texture,
|
||||||
GLenum internal_format);
|
GLenum internal_format);
|
||||||
|
|
||||||
|
void cogl_wrap_glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
|
||||||
|
|
||||||
/* This function is only available on GLES 2 */
|
/* This function is only available on GLES 2 */
|
||||||
#define cogl_wrap_glGenerateMipmap glGenerateMipmap
|
#define cogl_wrap_glGenerateMipmap glGenerateMipmap
|
||||||
|
|
||||||
void _cogl_gles2_clear_cache_for_program (CoglHandle program);
|
void _cogl_gles2_clear_cache_for_program (CoglHandle program);
|
||||||
|
|
||||||
|
/* Remap the missing GL functions to use the wrappers */
|
||||||
|
#ifndef COGL_GLES2_WRAPPER_NO_REMAP
|
||||||
|
#define glDrawArrays cogl_wrap_glDrawArrays
|
||||||
|
#define glDrawElements cogl_wrap_glDrawElements
|
||||||
|
#define glPushMatrix cogl_wrap_glPushMatrix
|
||||||
|
#define glPopMatrix cogl_wrap_glPopMatrix
|
||||||
|
#define glMatrixMode cogl_wrap_glMatrixMode
|
||||||
|
#define glLoadIdentity cogl_wrap_glLoadIdentity
|
||||||
|
#define glMultMatrixf cogl_wrap_glMultMatrixf
|
||||||
|
#define glLoadMatrixf cogl_wrap_glLoadMatrixf
|
||||||
|
#define glFrustumf cogl_wrap_glFrustumf
|
||||||
|
#define glScalef cogl_wrap_glScalef
|
||||||
|
#define glTranslatef cogl_wrap_glTranslatef
|
||||||
|
#define glRotatef cogl_wrap_glRotatef
|
||||||
|
#define glOrthof cogl_wrap_glOrthof
|
||||||
|
#define glEnable cogl_wrap_glEnable
|
||||||
|
#define glDisable cogl_wrap_glDisable
|
||||||
|
#define glTexCoordPointer cogl_wrap_glTexCoordPointer
|
||||||
|
#define glVertexPointer cogl_wrap_glVertexPointer
|
||||||
|
#define glColorPointer cogl_wrap_glColorPointer
|
||||||
|
#define glNormalPointer cogl_wrap_glNormalPointer
|
||||||
|
#define glTexEnvi cogl_wrap_glTexEnvi
|
||||||
|
#define glActiveTexture cogl_wrap_glActiveTexture
|
||||||
|
#define glClientActiveTexture cogl_wrap_glClientActiveTexture
|
||||||
|
#define glEnableClientState cogl_wrap_glEnableClientState
|
||||||
|
#define glDisableClientState cogl_wrap_glDisableClientState
|
||||||
|
#define glAlphaFunc cogl_wrap_glAlphaFunc
|
||||||
|
#define glColor4f cogl_wrap_glColor4f
|
||||||
|
#define glClipPlanef cogl_wrap_glClipPlanef
|
||||||
|
#define glGetIntegerv cogl_wrap_glGetIntegerv
|
||||||
|
#define glGetFloatv cogl_wrap_glGetFloatv
|
||||||
|
#define glFogf cogl_wrap_glFogf
|
||||||
|
#define glFogfv cogl_wrap_glFogfv
|
||||||
|
#define glTexParameteri cogl_wrap_glTexParameteri
|
||||||
|
#define glMaterialfv cogl_wrap_glMaterialfv
|
||||||
|
#endif /* COGL_GLES2_WRAPPER_NO_REMAP */
|
||||||
|
|
||||||
#else /* HAVE_COGL_GLES2 */
|
#else /* HAVE_COGL_GLES2 */
|
||||||
|
|
||||||
/* If we're not using GL ES 2 then just use the GL functions
|
|
||||||
directly */
|
|
||||||
|
|
||||||
#define cogl_wrap_glDrawArrays glDrawArrays
|
|
||||||
#define cogl_wrap_glDrawElements glDrawElements
|
|
||||||
#define cogl_wrap_glPushMatrix glPushMatrix
|
|
||||||
#define cogl_wrap_glPopMatrix glPopMatrix
|
|
||||||
#define cogl_wrap_glMatrixMode glMatrixMode
|
|
||||||
#define cogl_wrap_glLoadIdentity glLoadIdentity
|
|
||||||
#define cogl_wrap_glMultMatrixf glMultMatrixf
|
|
||||||
#define cogl_wrap_glFrustumf glFrustumf
|
|
||||||
#define cogl_wrap_glScalef glScalef
|
|
||||||
#define cogl_wrap_glTranslatef glTranslatef
|
|
||||||
#define cogl_wrap_glRotatef glRotatef
|
|
||||||
#define cogl_wrap_glOrthof glOrthof
|
|
||||||
#define cogl_wrap_glEnable glEnable
|
|
||||||
#define cogl_wrap_glDisable glDisable
|
|
||||||
#define cogl_wrap_glTexCoordPointer glTexCoordPointer
|
|
||||||
#define cogl_wrap_glVertexPointer glVertexPointer
|
|
||||||
#define cogl_wrap_glColorPointer glColorPointer
|
|
||||||
#define cogl_wrap_glNormalPointer glNormalPointer
|
|
||||||
#define cogl_wrap_glTexEnvf glTexEnvf
|
|
||||||
#define cogl_wrap_glActiveTexture glActiveTexture
|
|
||||||
#define cogl_wrap_glEnableClientState glEnableClientState
|
|
||||||
#define cogl_wrap_glDisableClientState glDisableClientState
|
|
||||||
#define cogl_wrap_glAlphaFunc glAlphaFunc
|
|
||||||
#define cogl_wrap_glColor4f glColor4f
|
|
||||||
#define cogl_wrap_glClipPlanef glClipPlanef
|
|
||||||
#define cogl_wrap_glGetIntegerv glGetIntegerv
|
|
||||||
#define cogl_wrap_glGetFloatv glGetFloatv
|
|
||||||
#define cogl_wrap_glFogf glFogf
|
|
||||||
#define cogl_wrap_glFogfv glFogfv
|
|
||||||
#define cogl_wrap_glTexParameteri glTexParameteri
|
|
||||||
|
|
||||||
/* The extra third parameter of the bind texture wrapper isn't needed
|
/* The extra third parameter of the bind texture wrapper isn't needed
|
||||||
so we can just directly call glBindTexture */
|
so we can just directly call glBindTexture */
|
||||||
#define cogl_gles2_wrapper_bind_texture(target, texture, internal_format) \
|
#define cogl_gles2_wrapper_bind_texture(target, texture, internal_format) \
|
||||||
|
Loading…
Reference in New Issue
Block a user