Adds "webgl" driver

This adds a COGL_DRIVER_WEBGL enum and a new driver description for
webgl in cogl-renderer.c. This also adds a COGL_DRIVER_FLAG_OPENGL_WEB
driver flag and a HAVE_COGL_WEBGL define which we can start to use to
handle special cases where webgl differs from gles2.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
This commit is contained in:
Robert Bragg 2013-05-11 20:02:43 +01:00
parent e07d0fc744
commit 2c167b7a4e
4 changed files with 22 additions and 2 deletions

View File

@ -68,7 +68,8 @@ typedef enum
COGL_PRIVATE_FEATURE_ANY_GL = 1L<<26,
COGL_PRIVATE_FEATURE_GL_FIXED = 1L<<27,
COGL_PRIVATE_FEATURE_GL_PROGRAMMABLE = 1L<<28,
COGL_PRIVATE_FEATURE_GL_EMBEDDED = 1L<<29
COGL_PRIVATE_FEATURE_GL_EMBEDDED = 1L<<29,
COGL_PRIVATE_FEATURE_GL_WEB = 1L<<30
} CoglPrivateFeatureFlags;
/* Sometimes when evaluating pipelines, either during comparisons or

View File

@ -155,6 +155,20 @@ static CoglDriverDescription _cogl_drivers[] =
&_cogl_texture_driver_gles,
COGL_GLES1_LIBNAME,
},
#endif
#ifdef USING_EMSCRIPTEN
{
COGL_DRIVER_WEBGL,
"webgl",
0,
COGL_PRIVATE_FEATURE_ANY_GL |
COGL_PRIVATE_FEATURE_GL_EMBEDDED |
COGL_PRIVATE_FEATURE_GL_PROGRAMMABLE |
COGL_PRIVATE_FEATURE_GL_WEB,
&_cogl_driver_gles,
&_cogl_texture_driver_gles,
NULL,
},
#endif
{
COGL_DRIVER_NOP,
@ -421,6 +435,8 @@ driver_id_to_name (CoglDriver id)
return "gles1";
case COGL_DRIVER_GLES2:
return "gles2";
case COGL_DRIVER_WEBGL:
return "webgl";
case COGL_DRIVER_NOP:
return "nop";
case COGL_DRIVER_ANY:

View File

@ -332,6 +332,7 @@ cogl_renderer_remove_constraint (CoglRenderer *renderer,
* @COGL_DRIVER_GL3: An OpenGL driver using the core GL 3.1 profile
* @COGL_DRIVER_GLES1: An OpenGL ES 1.1 driver.
* @COGL_DRIVER_GLES2: An OpenGL ES 2.0 driver.
* @COGL_DRIVER_WEBGL: A WebGL driver.
*
* Identifiers for underlying hardware drivers that may be used by
* Cogl for rendering.
@ -346,7 +347,8 @@ typedef enum
COGL_DRIVER_GL,
COGL_DRIVER_GL3,
COGL_DRIVER_GLES1,
COGL_DRIVER_GLES2
COGL_DRIVER_GLES2,
COGL_DRIVER_WEBGL
} CoglDriver;
/**

View File

@ -708,6 +708,7 @@ AS_IF([test "x$enable_gles2" = "xyes"],
[
GL_LIBRARY_DIRECTLY_LINKED=yes
COGL_GLES2_LIBNAME=""
AC_DEFINE([HAVE_COGL_WEBGL], 1, [Have WebGL for rendering])
],
[