[Cogl] [PATCH 4/7] onscreen: remove _swap_buffers_callback apis
Robert Bragg
robert at sixbynine.org
Fri Feb 15 08:57:06 PST 2013
From: Robert Bragg <robert at linux.intel.com>
This removes the cogl_onscreen_add/remove_swap_buffers_callback which
have been deprecated by the new cogl_onscreen_add/remove_frame_callback
api.
---
cogl/cogl-context-private.h | 3 --
cogl/cogl-context.c | 6 ---
cogl/cogl-onscreen.c | 72 ----------------------------------
cogl/cogl-onscreen.h | 49 -----------------------
doc/reference/cogl2/cogl2-sections.txt | 3 --
5 files changed, 133 deletions(-)
diff --git a/cogl/cogl-context-private.h b/cogl/cogl-context-private.h
index 5d7aacd..b601e33 100644
--- a/cogl/cogl-context-private.h
+++ b/cogl/cogl-context-private.h
@@ -173,9 +173,6 @@ struct _CoglContext
gboolean have_last_offscreen_allocate_flags;
CoglOffscreenAllocateFlags last_offscreen_allocate_flags;
- GHashTable *swap_callback_closures;
- int next_swap_callback_id;
-
CoglOnscreenEventList onscreen_events_queue;
CoglGLES2Context *current_gles2_context;
diff --git a/cogl/cogl-context.c b/cogl/cogl-context.c
index 003940a..926cff4 100644
--- a/cogl/cogl-context.c
+++ b/cogl/cogl-context.c
@@ -287,9 +287,6 @@ cogl_context_new (CoglDisplay *display,
context->current_draw_buffer_state_flushed = 0;
context->current_draw_buffer_changes = COGL_FRAMEBUFFER_STATE_ALL;
- context->swap_callback_closures =
- g_hash_table_new (g_direct_hash, g_direct_equal);
-
COGL_TAILQ_INIT (&context->onscreen_events_queue);
g_queue_init (&context->gles2_context_stack);
@@ -451,9 +448,6 @@ _cogl_context_free (CoglContext *context)
if (context->blit_texture_pipeline)
cogl_object_unref (context->blit_texture_pipeline);
- if (context->swap_callback_closures)
- g_hash_table_destroy (context->swap_callback_closures);
-
g_warn_if_fail (context->gles2_context_stack.length == 0);
if (context->journal_flush_attributes_array)
diff --git a/cogl/cogl-onscreen.c b/cogl/cogl-onscreen.c
index de92e64..e79bf22 100644
--- a/cogl/cogl-onscreen.c
+++ b/cogl/cogl-onscreen.c
@@ -352,78 +352,6 @@ cogl_onscreen_remove_frame_callback (CoglOnscreen *onscreen,
g_slice_free (CoglFrameClosure, closure);
}
-typedef struct _SwapBufferCallbackState
-{
- CoglSwapBuffersNotify callback;
- void *user_data;
-} SwapBufferCallbackState;
-
-static void
-destroy_swap_buffers_callback_state (void *user_data)
-{
- g_slice_free (SwapBufferCallbackState, user_data);
-}
-
-static void
-shim_swap_buffers_callback (CoglOnscreen *onscreen,
- CoglFrameEvent event,
- CoglFrameInfo *info,
- void *user_data)
-{
- SwapBufferCallbackState *state = user_data;
-
- /* XXX: Note that technically it is a change in semantics for this
- * interface to forward _SYNC events here and also makes the api
- * name somewhat missleading.
- *
- * In practice though this interface is currently used by
- * applications for throttling, not because they are strictly
- * interested in knowing when a frame has been presented and so
- * forwarding _SYNC events should serve them better.
- */
- if (event == COGL_FRAME_EVENT_SYNC)
- state->callback (COGL_FRAMEBUFFER (onscreen), state->user_data);
-}
-
-unsigned int
-cogl_onscreen_add_swap_buffers_callback (CoglOnscreen *onscreen,
- CoglSwapBuffersNotify callback,
- void *user_data)
-{
- CoglContext *ctx = COGL_FRAMEBUFFER (onscreen)->context;
- SwapBufferCallbackState *state = g_slice_new (SwapBufferCallbackState);
- CoglFrameClosure *closure;
- unsigned int id = ctx->next_swap_callback_id++;
-
- state->callback = callback;
- state->user_data = user_data;
-
- closure =
- cogl_onscreen_add_frame_callback (onscreen,
- shim_swap_buffers_callback,
- state,
- destroy_swap_buffers_callback_state);
-
- g_hash_table_insert (ctx->swap_callback_closures,
- GINT_TO_POINTER (id),
- closure);
-
- return id;
-}
-
-void
-cogl_onscreen_remove_swap_buffers_callback (CoglOnscreen *onscreen,
- unsigned int id)
-{
- CoglContext *ctx = COGL_FRAMEBUFFER (onscreen)->context;
- CoglFrameClosure *closure = g_hash_table_lookup (ctx->swap_callback_closures,
- GINT_TO_POINTER (id));
-
- _COGL_RETURN_IF_FAIL (closure);
-
- cogl_onscreen_remove_frame_callback (onscreen, closure);
-}
-
void
cogl_onscreen_set_swap_throttled (CoglOnscreen *onscreen,
CoglBool throttled)
diff --git a/cogl/cogl-onscreen.h b/cogl/cogl-onscreen.h
index 0a59eb8..13b51a1 100644
--- a/cogl/cogl-onscreen.h
+++ b/cogl/cogl-onscreen.h
@@ -543,55 +543,6 @@ void
cogl_onscreen_remove_frame_callback (CoglOnscreen *onscreen,
CoglFrameClosure *closure);
-typedef void (*CoglSwapBuffersNotify) (CoglFramebuffer *framebuffer,
- void *user_data);
-
-/**
- * cogl_onscreen_add_swap_buffers_callback:
- * @onscreen: A #CoglOnscreen framebuffer
- * @callback: A callback function to call when a swap has completed
- * @user_data: A private pointer to be passed to @callback
- *
- * Installs a @callback function that should be called whenever a swap buffers
- * request (made using cogl_onscreen_swap_buffers()) for the given
- * @onscreen completes.
- *
- * <note>Applications should check for the %COGL_FEATURE_ID_SWAP_BUFFERS_EVENT
- * feature before using this API. It's currently undefined when and if
- * registered callbacks will be called if this feature is not supported.</note>
- *
- * We recommend using this mechanism when available to manually throttle your
- * applications (in conjunction with cogl_onscreen_set_swap_throttled()) so
- * your application will be able to avoid long blocks in the driver caused by
- * throttling when you request to swap buffers too quickly.
- *
- * Return value: a unique identifier that can be used to remove to remove
- * the callback later.
- * Since: 1.10
- * Stability: unstable
- * Deprecated: 1.14: Use cogl_onscreen_add_swap_complete_callback
- */
-unsigned int
-cogl_onscreen_add_swap_buffers_callback (CoglOnscreen *onscreen,
- CoglSwapBuffersNotify callback,
- void *user_data);
-
-/**
- * cogl_onscreen_remove_swap_buffers_callback:
- * @onscreen: A #CoglOnscreen framebuffer
- * @id: An identifier returned from cogl_onscreen_add_swap_buffers_callback()
- *
- * Removes a callback that was previously registered
- * using cogl_onscreen_add_swap_buffers_callback().
- *
- * Since: 1.10
- * Stability: unstable
- * Deprecated: 1.14: Use cogl_onscreen_remove_swap_complete_callback
- */
-void
-cogl_onscreen_remove_swap_buffers_callback (CoglOnscreen *onscreen,
- unsigned int id);
-
/**
* cogl_onscreen_set_resizable:
* @onscreen: A #CoglOnscreen framebuffer
diff --git a/doc/reference/cogl2/cogl2-sections.txt b/doc/reference/cogl2/cogl2-sections.txt
index 235add3..722677a 100644
--- a/doc/reference/cogl2/cogl2-sections.txt
+++ b/doc/reference/cogl2/cogl2-sections.txt
@@ -551,9 +551,6 @@ cogl_onscreen_hide
cogl_onscreen_swap_buffers
cogl_onscreen_swap_region
cogl_onscreen_set_swap_throttled
-CoglSwapBuffersNotify
-cogl_onscreen_add_swap_buffers_callback
-cogl_onscreen_remove_swap_buffers_callback
</SECTION>
<SECTION>
--
1.8.1.1
More information about the Cogl
mailing list