[cogl/wip/cogl-1.14: 71/177] Add cogl_sdl_onscreen_get_window()
- From: Robert Bragg <rbragg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cogl/wip/cogl-1.14: 71/177] Add cogl_sdl_onscreen_get_window()
- Date: Mon, 21 Jan 2013 15:50:54 +0000 (UTC)
commit 30fe9a545a1f291f58b14d0ce4908f45e3a640c4
Author: Neil Roberts <neil linux intel com>
Date: Mon Nov 26 13:07:36 2012 +0000
Add cogl_sdl_onscreen_get_window()
This adds a function to get a pointer to the SDL_Window associated
with a CoglOnscreen when using the SDL2 winsys.
Reviewed-by: Robert Bragg <robert linux intel com>
(cherry picked from commit 071f4b80daa8a2f967746a30b3acf014d74f781a)
cogl/cogl-sdl.h | 17 +++++++++++++++++
cogl/winsys/cogl-winsys-sdl2.c | 16 ++++++++++++++++
.../cogl-2.0-experimental-sections.txt | 1 +
3 files changed, 34 insertions(+), 0 deletions(-)
---
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/cogl-2.0-experimental/cogl-2.0-experimental-sections.txt b/doc/reference/cogl-2.0-experimental/cogl-2.0-experimental-sections.txt
index 1944951..5ccab9e 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
@@ -822,4 +822,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>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]