[cogl/msvc-support] Stub Winsys: Revert restoration of C99ism
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cogl/msvc-support] Stub Winsys: Revert restoration of C99ism
- Date: Thu, 15 Sep 2011 15:08:07 +0000 (UTC)
commit 7e592aed4bb9437488172d832798a258d71d9edb
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Thu Sep 15 23:24:59 2011 +0800
Stub Winsys: Revert restoration of C99ism
Seems that the Stub Winsys is required for all builds...
(Re-)purge C99ism from cogl-winsys-stub.c and don't filter out this file
for the time being.
cogl/Makefile.am | 6 ++--
cogl/winsys/cogl-winsys-stub.c | 52 +++++++++++++++++++++++-----------------
2 files changed, 33 insertions(+), 25 deletions(-)
---
diff --git a/cogl/Makefile.am b/cogl/Makefile.am
index 1b9cada..1351b38 100644
--- a/cogl/Makefile.am
+++ b/cogl/Makefile.am
@@ -398,7 +398,7 @@ dist-hook: ../build/win32/vs9/cogl.vcproj ../build/win32/vs10/cogl.vcxproj ../bu
../build/win32/vs9/cogl.vcproj: $(top_srcdir)/build/win32/vs9/cogl.vcprojin
for F in `echo $(cogl_sources_c) $(BUILT_SOURCES) | tr '/' '\\'`; do \
case $$F in \
- *-egl.c|*-glx.c|*-xlib*.c|*-x11.c|*.wgl.c|*-gl.c|*-gles.c|*-stub.c|*.h) ;; \
+ *-egl.c|*-glx.c|*-xlib*.c|*-x11.c|*.wgl.c|*-gl.c|*-gles.c|*.h) ;; \
*.c) echo ' <File RelativePath="..\..\..\cogl\'$$F'" />' \
;; \
esac; \
@@ -409,7 +409,7 @@ dist-hook: ../build/win32/vs9/cogl.vcproj ../build/win32/vs10/cogl.vcxproj ../bu
../build/win32/vs10/cogl.vcxproj: $(top_srcdir)/build/win32/vs10/cogl.vcxprojin
for F in `echo $(cogl_sources_c) $(BUILT_SOURCES) | tr '/' '\\'`; do \
case $$F in \
- *-egl.c|*-glx.c|*-xlib*.c|*-x11.c|*.wgl.c|*-gl.c|*-gles.c|*-stub.c|*.h) ;; \
+ *-egl.c|*-glx.c|*-xlib*.c|*-x11.c|*.wgl.c|*-gl.c|*-gles.c|*.h) ;; \
*.c) echo ' <ClCompile Include="..\..\..\cogl\'$$F'" />' \
;; \
esac; \
@@ -420,7 +420,7 @@ dist-hook: ../build/win32/vs9/cogl.vcproj ../build/win32/vs10/cogl.vcxproj ../bu
../build/win32/vs10/cogl.vcxproj.filters: $(top_srcdir)/build/win32/vs10/cogl.vcxproj.filtersin
for F in `echo $(cogl_sources_c) $(BUILT_SOURCES) | tr '/' '\\'`; do \
case $$F in \
- *-egl.c|*-glx.c|*-xlib*.c|*-x11.c|*.wgl.c|*-gl.c|*-gles.c|*-stub.c|*.h) ;; \
+ *-egl.c|*-glx.c|*-xlib*.c|*-x11.c|*.wgl.c|*-gl.c|*-gles.c|*.h) ;; \
*.c) echo ' <ClCompile Include="..\..\..\cogl\'$$F'"><Filter>Sources</Filter></ClCompile>' \
;; \
esac; \
diff --git a/cogl/winsys/cogl-winsys-stub.c b/cogl/winsys/cogl-winsys-stub.c
index d121c6a..42cf580 100644
--- a/cogl/winsys/cogl-winsys-stub.c
+++ b/cogl/winsys/cogl-winsys-stub.c
@@ -146,29 +146,37 @@ _cogl_winsys_onscreen_set_visibility (CoglOnscreen *onscreen,
{
}
-static CoglWinsysVtable _cogl_winsys_vtable =
- {
- .id = COGL_WINSYS_ID_STUB,
- .name = "STUB",
- .renderer_get_proc_address = _cogl_winsys_renderer_get_proc_address,
- .renderer_connect = _cogl_winsys_renderer_connect,
- .renderer_disconnect = _cogl_winsys_renderer_disconnect,
- .display_setup = _cogl_winsys_display_setup,
- .display_destroy = _cogl_winsys_display_destroy,
- .context_init = _cogl_winsys_context_init,
- .context_deinit = _cogl_winsys_context_deinit,
-
- .onscreen_init = _cogl_winsys_onscreen_init,
- .onscreen_deinit = _cogl_winsys_onscreen_deinit,
- .onscreen_bind = _cogl_winsys_onscreen_bind,
- .onscreen_swap_buffers = _cogl_winsys_onscreen_swap_buffers,
- .onscreen_update_swap_throttled =
- _cogl_winsys_onscreen_update_swap_throttled,
- .onscreen_set_visibility = _cogl_winsys_onscreen_set_visibility,
- };
-
const CoglWinsysVtable *
_cogl_winsys_stub_get_vtable (void)
{
- return &_cogl_winsys_vtable;
+ static gboolean vtable_inited = FALSE;
+ static CoglWinsysVtable vtable;
+
+ /* It would be nice if we could use C99 struct initializers here
+ like the GLX backend does. However this code is also to be
+ compiled using Visual Studio which (still!) doesn't support them
+ so we initialize it in code instead */
+ if (!vtable_inited)
+ {
+ vtable.id = COGL_WINSYS_ID_STUB;
+ vtable.name = "STUB";
+ vtable.renderer_get_proc_address = _cogl_winsys_renderer_get_proc_address;
+ vtable.renderer_connect = _cogl_winsys_renderer_connect;
+ vtable.renderer_disconnect = _cogl_winsys_renderer_disconnect;
+ vtable.display_setup = _cogl_winsys_display_setup;
+ vtable.display_destroy = _cogl_winsys_display_destroy;
+ vtable.context_init = _cogl_winsys_context_init;
+ vtable.context_deinit = _cogl_winsys_context_deinit;
+ vtable.onscreen_init = _cogl_winsys_onscreen_init;
+ vtable.onscreen_deinit = _cogl_winsys_onscreen_deinit;
+ vtable.onscreen_bind = _cogl_winsys_onscreen_bind;
+ vtable.onscreen_swap_buffers = _cogl_winsys_onscreen_swap_buffers;
+ vtable.onscreen_update_swap_throttled =
+ _cogl_winsys_onscreen_update_swap_throttled;
+ vtable.onscreen_set_visibility = _cogl_winsys_onscreen_set_visibility;
+
+ vtable_inited = TRUE;
+ }
+
+ return &vtable;
}
\ No newline at end of file
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]