[Cogl] [PATCH] Add cogl_sdl_onscreen_get_window()
Neil Roberts
neil at linux.intel.com
Mon Nov 26 07:15:14 PST 2012
This adds a function to get a pointer to the SDL_Window associated
with a CoglOnscreen when using the SDL2 winsys.
---
cogl/cogl-sdl.h | 17 +++++++++++++++++
cogl/winsys/cogl-winsys-sdl2.c | 16 ++++++++++++++++
doc/reference/cogl2/cogl2-sections.txt | 1 +
3 files changed, 34 insertions(+)
diff --git a/cogl/cogl-sdl.h b/cogl/cogl-sdl.h
index 05da036..0508649 100644
--- a/cogl/cogl-sdl.h
+++ b/cogl/cogl-sdl.h
@@ -29,6 +29,7 @@
#define __COGL_SDL_H__
#include <cogl/cogl-context.h>
+#include <cogl/cogl-onscreen.h>
#include <SDL.h>
#ifdef _MSC_VER
@@ -202,6 +203,22 @@ cogl_sdl_handle_event (CoglContext *context, SDL_Event *event);
void
cogl_sdl_idle (CoglContext *context);
+#if SDL_MAJOR_VERSION >= 2
+
+/**
+ * cogl_sdl_onscreen_get_window:
+ * @onscreen: A #CoglOnscreen
+ *
+ * Returns the underlying SDL_Window associated with an onscreen framebuffer.
+ *
+ * Since: 2.0
+ * Stability: unstable
+ */
+SDL_Window *
+cogl_sdl_onscreen_get_window (CoglOnscreen *onscreen);
+
+#endif /* SDL_MAJOR_VERSION */
+
G_END_DECLS
#endif /* __COGL_SDL_H__ */
diff --git a/cogl/winsys/cogl-winsys-sdl2.c b/cogl/winsys/cogl-winsys-sdl2.c
index 1c0fc31..8c0c256 100644
--- a/cogl/winsys/cogl-winsys-sdl2.c
+++ b/cogl/winsys/cogl-winsys-sdl2.c
@@ -38,6 +38,7 @@
#include "cogl-onscreen-private.h"
#include "cogl-winsys-sdl-private.h"
#include "cogl-error-private.h"
+#include "cogl-sdl.h"
typedef struct _CoglContextSdl2
{
@@ -510,6 +511,21 @@ _cogl_winsys_poll_dispatch (CoglContext *context,
}
}
+SDL_Window *
+cogl_sdl_onscreen_get_window (CoglOnscreen *onscreen)
+{
+ CoglOnscreenSdl2 *sdl_onscreen;
+
+ _COGL_RETURN_VAL_IF_FAIL (cogl_is_onscreen (onscreen), NULL);
+
+ if (!cogl_framebuffer_allocate (COGL_FRAMEBUFFER (onscreen), NULL))
+ return NULL;
+
+ sdl_onscreen = onscreen->winsys;
+
+ return sdl_onscreen->window;
+}
+
const CoglWinsysVtable *
_cogl_winsys_sdl_get_vtable (void)
{
diff --git a/doc/reference/cogl2/cogl2-sections.txt b/doc/reference/cogl2/cogl2-sections.txt
index 004c0c0..5d58d10 100644
--- a/doc/reference/cogl2/cogl2-sections.txt
+++ b/doc/reference/cogl2/cogl2-sections.txt
@@ -758,4 +758,5 @@ cogl_sdl_renderer_set_event_type
cogl_sdl_renderer_get_event_type
cogl_sdl_handle_event
cogl_sdl_idle
+cogl_sdl_onscreen_get_window
</SECTION>
--
1.7.11.3.g3c3efa5
More information about the Cogl
mailing list