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> (cherry picked from commit 2c167b7a4ee56241827322bbe7cb287b0628437c)
This commit is contained in:
parent
34658ea057
commit
3fc1a39db8
@ -68,7 +68,8 @@ typedef enum
|
|||||||
COGL_PRIVATE_FEATURE_ANY_GL = 1L<<26,
|
COGL_PRIVATE_FEATURE_ANY_GL = 1L<<26,
|
||||||
COGL_PRIVATE_FEATURE_GL_FIXED = 1L<<27,
|
COGL_PRIVATE_FEATURE_GL_FIXED = 1L<<27,
|
||||||
COGL_PRIVATE_FEATURE_GL_PROGRAMMABLE = 1L<<28,
|
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;
|
} CoglPrivateFeatureFlags;
|
||||||
|
|
||||||
/* Sometimes when evaluating pipelines, either during comparisons or
|
/* Sometimes when evaluating pipelines, either during comparisons or
|
||||||
|
@ -155,6 +155,20 @@ static CoglDriverDescription _cogl_drivers[] =
|
|||||||
&_cogl_texture_driver_gles,
|
&_cogl_texture_driver_gles,
|
||||||
COGL_GLES1_LIBNAME,
|
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
|
#endif
|
||||||
{
|
{
|
||||||
COGL_DRIVER_NOP,
|
COGL_DRIVER_NOP,
|
||||||
@ -425,6 +439,8 @@ driver_id_to_name (CoglDriver id)
|
|||||||
return "gles1";
|
return "gles1";
|
||||||
case COGL_DRIVER_GLES2:
|
case COGL_DRIVER_GLES2:
|
||||||
return "gles2";
|
return "gles2";
|
||||||
|
case COGL_DRIVER_WEBGL:
|
||||||
|
return "webgl";
|
||||||
case COGL_DRIVER_NOP:
|
case COGL_DRIVER_NOP:
|
||||||
return "nop";
|
return "nop";
|
||||||
case COGL_DRIVER_ANY:
|
case COGL_DRIVER_ANY:
|
||||||
|
@ -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_GL3: An OpenGL driver using the core GL 3.1 profile
|
||||||
* @COGL_DRIVER_GLES1: An OpenGL ES 1.1 driver.
|
* @COGL_DRIVER_GLES1: An OpenGL ES 1.1 driver.
|
||||||
* @COGL_DRIVER_GLES2: An OpenGL ES 2.0 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
|
* Identifiers for underlying hardware drivers that may be used by
|
||||||
* Cogl for rendering.
|
* Cogl for rendering.
|
||||||
@ -346,7 +347,8 @@ typedef enum
|
|||||||
COGL_DRIVER_GL,
|
COGL_DRIVER_GL,
|
||||||
COGL_DRIVER_GL3,
|
COGL_DRIVER_GL3,
|
||||||
COGL_DRIVER_GLES1,
|
COGL_DRIVER_GLES1,
|
||||||
COGL_DRIVER_GLES2
|
COGL_DRIVER_GLES2,
|
||||||
|
COGL_DRIVER_WEBGL
|
||||||
} CoglDriver;
|
} CoglDriver;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -731,6 +731,7 @@ AS_IF([test "x$enable_gles2" = "xyes"],
|
|||||||
[
|
[
|
||||||
GL_LIBRARY_DIRECTLY_LINKED=yes
|
GL_LIBRARY_DIRECTLY_LINKED=yes
|
||||||
COGL_GLES2_LIBNAME=""
|
COGL_GLES2_LIBNAME=""
|
||||||
|
AC_DEFINE([HAVE_COGL_WEBGL], 1, [Have WebGL for rendering])
|
||||||
],
|
],
|
||||||
|
|
||||||
[
|
[
|
||||||
|
Loading…
x
Reference in New Issue
Block a user