[cogl] Get rid of the foreign shell and compositor APIs
- From: Neil Roberts <nroberts src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cogl] Get rid of the foreign shell and compositor APIs
- Date: Tue, 9 Jul 2013 12:47:51 +0000 (UTC)
commit 8ca36a1d1ab7236fec0f4d7b7361ca96e14c32be
Author: Neil Roberts <neil linux intel com>
Date: Wed Jul 3 18:48:15 2013 +0100
Get rid of the foreign shell and compositor APIs
The Wayland 1.0 protocol supports multiple independent components querying the
available interfaces by retreiving their own wl_registry object so the
application doesn't need to pass them down anymore.
Reviewed-by: Robert Bragg <robert linux intel com>
cogl/cogl-renderer-private.h | 2 -
cogl/cogl-wayland-renderer.h | 85 --------------------------------
cogl/winsys/cogl-winsys-egl-wayland.c | 79 ++---------------------------
doc/reference/cogl2/cogl2-sections.txt | 4 --
4 files changed, 6 insertions(+), 164 deletions(-)
---
diff --git a/cogl/cogl-renderer-private.h b/cogl/cogl-renderer-private.h
index b5ebd7b..dfc79c6 100644
--- a/cogl/cogl-renderer-private.h
+++ b/cogl/cogl-renderer-private.h
@@ -77,8 +77,6 @@ struct _CoglRenderer
#if defined (COGL_HAS_EGL_PLATFORM_WAYLAND_SUPPORT)
struct wl_display *foreign_wayland_display;
- struct wl_compositor *foreign_wayland_compositor;
- struct wl_shell *foreign_wayland_shell;
#endif
#ifdef COGL_HAS_SDL_SUPPORT
diff --git a/cogl/cogl-wayland-renderer.h b/cogl/cogl-wayland-renderer.h
index 2b18b58..3f9e434 100644
--- a/cogl/cogl-wayland-renderer.h
+++ b/cogl/cogl-wayland-renderer.h
@@ -44,15 +44,6 @@ COGL_BEGIN_DECLS
* to work with instead of leaving Cogl to automatically connect to a
* wayland compositor.
*
- * <note>If you use this API you must also explicitly set foreign
- * Wayland compositor and shell objects using the
- * cogl_wayland_renderer_set_foreign_compositor() and
- * cogl_wayland_renderer_set_foreign_shell() respectively. This ie
- * because Wayland doesn't currently provide a way to retrospectively
- * query these interfaces so the expectation is that if you have taken
- * ownership of the display then you will also have been notified of
- * the compositor and shell interfaces which Cogl needs to use.</note>
- *
* Since: 1.8
* Stability: unstable
*/
@@ -82,82 +73,6 @@ cogl_wayland_renderer_set_foreign_display (CoglRenderer *renderer,
struct wl_display *
cogl_wayland_renderer_get_display (CoglRenderer *renderer);
-/**
- * cogl_wayland_renderer_set_foreign_compositor:
- * @renderer: A #CoglRenderer
- * @compositor: A Wayland compositor
- *
- * Allows you to explicitly notify Cogl of a Wayland compositor
- * interface to use. This API should be used in conjunction with
- * cogl_wayland_renderer_set_foreign_display() because if you are
- * connecting to a wayland compositor manually that will also mean you
- * will be notified on connection of the available interfaces that
- * can't be queried retrosectively with the current Wayland protocol.
- *
- * Since: 1.8
- * Stability: unstable
- */
-void
-cogl_wayland_renderer_set_foreign_compositor (CoglRenderer *renderer,
- struct wl_compositor *compositor);
-
-/**
- * cogl_wayland_renderer_get_compositor:
- * @renderer: A #CoglRenderer
- *
- * Retrieves the Wayland compositor interface that Cogl is using. If a
- * foreign compositor has been specified using
- * cogl_wayland_renderer_set_foreign_compositor() then that compositor
- * will be returned. If no foreign compositor has been specified then
- * the compositor that Cogl is notified of internally will be returned
- * unless the renderer has not yet been connected (either implicitly
- * or explicitly by calling cogl_renderer_connect()) in which case
- * %NULL is returned.
- *
- * Since: 1.8
- * Stability: unstable
- */
-struct wl_compositor *
-cogl_wayland_renderer_get_compositor (CoglRenderer *renderer);
-
-/**
- * cogl_wayland_renderer_set_foreign_shell:
- * @renderer: A #CoglRenderer
- * @shell: A Wayland shell
- *
- * Allows you to explicitly notify Cogl of a Wayland shell interface
- * to use. This API should be used in conjunction with
- * cogl_wayland_renderer_set_foreign_display() because if you are
- * connecting to a wayland compositor manually that will also mean you
- * will be notified on connection of the available interfaces that
- * can't be queried retrosectively with the current Wayland protocol.
- *
- * Since: 1.10
- * Stability: unstable
- */
-void
-cogl_wayland_renderer_set_foreign_shell (CoglRenderer *renderer,
- struct wl_shell *shell);
-
-/**
- * cogl_wayland_renderer_get_shell:
- * @renderer: A #CoglRenderer
- *
- * Retrieves the Wayland shell interface that Cogl is using. If a
- * foreign shell has been specified using
- * cogl_wayland_renderer_set_foreign_shell() then that shell
- * will be returned. If no foreign shell has been specified then
- * the shell that Cogl is notified of internally will be returned
- * unless the renderer has not yet been connected (either implicitly
- * or explicitly by calling cogl_renderer_connect()) in which case
- * %NULL is returned.
- *
- * Since: 1.10
- * Stability: unstable
- */
-struct wl_shell *
-cogl_wayland_renderer_get_shell (CoglRenderer *renderer);
-
COGL_END_DECLS
#endif /* __COGL_WAYLAND_RENDERER_H__ */
diff --git a/cogl/winsys/cogl-winsys-egl-wayland.c b/cogl/winsys/cogl-winsys-egl-wayland.c
index 0af2cfb..fad0cae 100644
--- a/cogl/winsys/cogl-winsys-egl-wayland.c
+++ b/cogl/winsys/cogl-winsys-egl-wayland.c
@@ -197,15 +197,6 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer,
if (renderer->foreign_wayland_display)
{
wayland_renderer->wayland_display = renderer->foreign_wayland_display;
- /* XXX: For now we have to assume that if a foreign display is
- * given then a foreign compositor and shell must also have been
- * given because wayland doesn't provide a way to
- * retrospectively be notified of the these objects. */
- g_assert (renderer->foreign_wayland_compositor);
- g_assert (renderer->foreign_wayland_shell);
- wayland_renderer->wayland_compositor =
- renderer->foreign_wayland_compositor;
- wayland_renderer->wayland_shell = renderer->foreign_wayland_shell;
}
else
{
@@ -217,14 +208,14 @@ _cogl_winsys_renderer_connect (CoglRenderer *renderer,
"Failed to connect wayland display");
goto error;
}
+ }
- wayland_renderer->wayland_registry =
- wl_display_get_registry (wayland_renderer->wayland_display);
+ wayland_renderer->wayland_registry =
+ wl_display_get_registry (wayland_renderer->wayland_display);
- wl_registry_add_listener (wayland_renderer->wayland_registry,
- ®istry_listener,
- egl_renderer);
- }
+ wl_registry_add_listener (wayland_renderer->wayland_registry,
+ ®istry_listener,
+ egl_renderer);
/*
* Ensure that that we've received the messages setting up the
@@ -572,64 +563,6 @@ cogl_wayland_renderer_get_display (CoglRenderer *renderer)
return NULL;
}
-void
-cogl_wayland_renderer_set_foreign_compositor (CoglRenderer *renderer,
- struct wl_compositor *compositor)
-{
- _COGL_RETURN_IF_FAIL (cogl_is_renderer (renderer));
-
- /* NB: Renderers are considered immutable once connected */
- _COGL_RETURN_IF_FAIL (!renderer->connected);
-
- renderer->foreign_wayland_compositor = compositor;
-}
-
-struct wl_compositor *
-cogl_wayland_renderer_get_compositor (CoglRenderer *renderer)
-{
- _COGL_RETURN_VAL_IF_FAIL (cogl_is_renderer (renderer), NULL);
-
- if (renderer->foreign_wayland_compositor)
- return renderer->foreign_wayland_compositor;
- else if (renderer->connected)
- {
- CoglRendererEGL *egl_renderer = renderer->winsys;
- CoglRendererWayland *wayland_renderer = egl_renderer->platform;
- return wayland_renderer->wayland_compositor;
- }
- else
- return NULL;
-}
-
-void
-cogl_wayland_renderer_set_foreign_shell (CoglRenderer *renderer,
- struct wl_shell *shell)
-{
- _COGL_RETURN_IF_FAIL (cogl_is_renderer (renderer));
-
- /* NB: Renderers are considered immutable once connected */
- _COGL_RETURN_IF_FAIL (!renderer->connected);
-
- renderer->foreign_wayland_shell = shell;
-}
-
-struct wl_shell *
-cogl_wayland_renderer_get_shell (CoglRenderer *renderer)
-{
- _COGL_RETURN_VAL_IF_FAIL (cogl_is_renderer (renderer), NULL);
-
- if (renderer->foreign_wayland_shell)
- return renderer->foreign_wayland_shell;
- else if (renderer->connected)
- {
- CoglRendererEGL *egl_renderer = renderer->winsys;
- CoglRendererWayland *wayland_renderer = egl_renderer->platform;
- return wayland_renderer->wayland_shell;
- }
- else
- return NULL;
-}
-
struct wl_surface *
cogl_wayland_onscreen_get_surface (CoglOnscreen *onscreen)
{
diff --git a/doc/reference/cogl2/cogl2-sections.txt b/doc/reference/cogl2/cogl2-sections.txt
index 5a1356f..1a6feee 100644
--- a/doc/reference/cogl2/cogl2-sections.txt
+++ b/doc/reference/cogl2/cogl2-sections.txt
@@ -90,10 +90,6 @@ cogl_win32_renderer_set_event_retrieval_enabled
<SUBSECTION>
cogl_wayland_renderer_set_foreign_display
cogl_wayland_renderer_get_display
-cogl_wayland_renderer_set_foreign_compositor
-cogl_wayland_renderer_get_compositor
-cogl_wayland_renderer_set_foreign_shell
-cogl_wayland_renderer_get_shell
</SECTION>
<SECTION>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]