diff options
author | Damien Lespiau <damien.lespiau@intel.com> | 2011-08-25 17:26:44 +0100 |
---|---|---|
committer | Robert Bragg <robert@linux.intel.com> | 2011-09-05 17:54:46 +0100 |
commit | c36652a4c3948956965405d5be23fcb466f7ff55 (patch) | |
tree | 47118ed035d2beed36404f85997388332a76b3d8 | |
parent | 6a2e21183c5b3215aa4af27c155e7a75567293a3 (diff) | |
download | cogl-c36652a4c3948956965405d5be23fcb466f7ff55.tar.gz |
renderer: Add cogl_renderer_get_n_fragment_texture_units()
Add a method on the renderer to know how many texture image units are
accessible from fragment shaders.
https://bugzilla.gnome.org/show_bug.cgi?id=657347
Reviewed-by: Robert Bragg <robert@linux.intel.com>
-rw-r--r-- | cogl/cogl-renderer.c | 16 | ||||
-rw-r--r-- | cogl/cogl-renderer.h | 16 | ||||
-rw-r--r-- | doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-sections.txt | 1 |
3 files changed, 33 insertions, 0 deletions
diff --git a/cogl/cogl-renderer.c b/cogl/cogl-renderer.c index 7bd4746c..0ca3edd2 100644 --- a/cogl/cogl-renderer.c +++ b/cogl/cogl-renderer.c @@ -35,6 +35,7 @@ #include "cogl-internal.h" #include "cogl-private.h" #include "cogl-object.h" +#include "cogl-context-private.h" #include "cogl-renderer.h" #include "cogl-renderer-private.h" @@ -394,3 +395,18 @@ _cogl_renderer_get_proc_address (CoglRenderer *renderer, return winsys->renderer_get_proc_address (renderer, name); } + +int +cogl_renderer_get_n_fragment_texture_units (CoglRenderer *renderer) +{ + int n = 0; + + _COGL_GET_CONTEXT (ctx, 0); + +#if defined (HAVE_COGL_GL) || defined (HAVE_COGL_GLES2) + if (ctx->driver == COGL_DRIVER_GL || ctx->driver == COGL_DRIVER_GLES2) + GE (ctx, glGetIntegerv (GL_MAX_TEXTURE_IMAGE_UNITS, &n)); +#endif + + return n; +} diff --git a/cogl/cogl-renderer.h b/cogl/cogl-renderer.h index 5061c40c..15c0ff4b 100644 --- a/cogl/cogl-renderer.h +++ b/cogl/cogl-renderer.h @@ -114,6 +114,22 @@ cogl_renderer_set_winsys_id (CoglRenderer *renderer, CoglWinsysID cogl_renderer_get_winsys_id (CoglRenderer *renderer); +/** + * cogl_renderer_get_n_fragment_texture_units: + * @renderer: A #CoglRenderer + * + * Queries how many texture units can be used from fragment programs + * + * Returns: the number of texture image units. + * + * Since: 1.8 + * Stability: Unstable + */ +#define cogl_renderer_get_n_fragment_texture_units \ + cogl_renderer_get_n_fragment_texture_units_EXP +int +cogl_renderer_get_n_fragment_texture_units (CoglRenderer *renderer); + #define cogl_renderer_check_onscreen_template \ cogl_renderer_check_onscreen_template_EXP gboolean diff --git a/doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-sections.txt b/doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-sections.txt index 2237345a..571c84ba 100644 --- a/doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-sections.txt +++ b/doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-sections.txt @@ -14,6 +14,7 @@ cogl_object_set_user_data <FILE>cogl-renderer</FILE> <TITLE>CoglRenderer: Connect to a backend renderer</TITLE> cogl_renderer_new +cogl_renderer_get_n_fragment_texture_units cogl_renderer_connect <SUBSECTION> |