summaryrefslogtreecommitdiff
path: root/cogl/cogl-renderer.h
diff options
context:
space:
mode:
authorRobert Bragg <robert@linux.intel.com>2011-06-20 13:29:12 +0100
committerRobert Bragg <robert@linux.intel.com>2011-06-30 14:33:11 +0100
commitb3a105c576a00fdecd27982811ef6b085009291a (patch)
treefc4e4dd0c7d5f39b0a5e742db7a28d2cdb1b7682 /cogl/cogl-renderer.h
parentc4eb869bd737b2b27c95f1bf9123e34343e80741 (diff)
downloadcogl-b3a105c576a00fdecd27982811ef6b085009291a.tar.gz
renderer: Expose winsys ID setter/getters
This adds API to let you override the choice of Cogl's winsys backend. Previously it was only possible to override the winsys using the COGL_RENDERER environment variable, but it's useful for something like Clutter to be able to control the winsys via API without needing environment variable tricks. This also adds API to query back the winsys chosen by Cogl, in case you don't set an explicit override. Signed-off-by: Neil Roberts <neil@linux.intel.com>
Diffstat (limited to 'cogl/cogl-renderer.h')
-rw-r--r--cogl/cogl-renderer.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/cogl/cogl-renderer.h b/cogl/cogl-renderer.h
index 38b7fe90..2c6d9d0e 100644
--- a/cogl/cogl-renderer.h
+++ b/cogl/cogl-renderer.h
@@ -67,6 +67,61 @@ cogl_renderer_new (void);
/* optional configuration APIs */
+/**
+ * CoglWinsysID:
+ * @COGL_WINSYS_ID_ANY: Implies no preference for which backend is used
+ * @COGL_WINSYS_ID_STUB: Use the no-op stub backend
+ * @COGL_WINSYS_ID_GLX: Use the GLX window system binding API
+ * @COGL_WINSYS_ID_EGL: Use the Khronos EGL window system binding API
+ * @COGL_WINSYS_ID_WGL: Use the Microsoft Windows WGL binding API
+ *
+ * Identifies specific window system backends that Cogl supports.
+ *
+ * These can be used to query what backend Cogl is using or to try and
+ * explicitly select a backend to use.
+ */
+typedef enum
+{
+ COGL_WINSYS_ID_ANY,
+ COGL_WINSYS_ID_STUB,
+ COGL_WINSYS_ID_GLX,
+ COGL_WINSYS_ID_EGL,
+ COGL_WINSYS_ID_WGL
+} CoglWinsysID;
+
+/**
+ * cogl_renderer_set_winsys_id:
+ * @renderer: A #CoglRenderer
+ * @winsys_id: An ID of the winsys you explicitly want to use.
+ *
+ * This allows you to explicitly select a winsys backend to use instead
+ * of letting Cogl automatically select a backend.
+ *
+ * if you select an unsupported backend then cogl_renderer_connect()
+ * will fail and report an error.
+ *
+ * This may only be called on an un-connected #CoglRenderer.
+ */
+#define cogl_renderer_set_winsys_id cogl_renderer_set_winsys_id_EXP
+void
+cogl_renderer_set_winsys_id (CoglRenderer *renderer,
+ CoglWinsysID winsys_id);
+
+/**
+ * cogl_renderer_get_winsys_id:
+ * @renderer: A #CoglRenderer
+ *
+ * Queries which window system backend Cogl has chosen to use.
+ *
+ * This may only be called on a connected #CoglRenderer.
+ *
+ * Returns: The #CoglWinsysID corresponding to the chosen window
+ * system backend.
+ */
+#define cogl_renderer_get_winsys_id cogl_renderer_get_winsys_id_EXP
+CoglWinsysID
+cogl_renderer_get_winsys_id (CoglRenderer *renderer);
+
#define cogl_renderer_handle_native_event cogl_renderer_handle_native_event_EXP
/*
* cogl_renderer_handle_native_event: