Small code clean up

Make ClutterTexture slightly more similar to the rest of the code base.
This commit is contained in:
Emmanuele Bassi 2009-07-12 01:27:31 +01:00
parent 1920b03381
commit 5a554bf063

View File

@ -1708,7 +1708,7 @@ clutter_texture_thread_idle_func (gpointer user_data)
} }
static gboolean static gboolean
clutter_texture_repaint_upload_func (gpointer user_data) texture_repaint_upload_func (gpointer user_data)
{ {
gulong start_time; gulong start_time;
@ -1717,23 +1717,31 @@ clutter_texture_repaint_upload_func (gpointer user_data)
if (upload_list) if (upload_list)
{ {
start_time = clutter_get_timestamp (); start_time = clutter_get_timestamp ();
do
{
ClutterTextureAsyncData *data = upload_list->data;
clutter_texture_thread_idle_func (data);
upload_list = g_list_remove (upload_list, data);
}
/* continue uploading textures as long as we havent spent more /* continue uploading textures as long as we havent spent more
* then 5ms doing so this stage redraw cycle. * then 5ms doing so this stage redraw cycle.
*/ */
do
{
ClutterTextureAsyncData *data = upload_list->data;
clutter_texture_thread_idle_func (data);
upload_list = g_list_remove (upload_list, data);
}
while (upload_list && clutter_get_timestamp () < start_time + 5 * 1000); while (upload_list && clutter_get_timestamp () < start_time + 5 * 1000);
} }
if (upload_list) if (upload_list)
{ {
_clutter_master_clock_ensure_next_iteration ( ClutterMasterClock *master_clock;
_clutter_master_clock_get_default());
master_clock = _clutter_master_clock_get_default ();
_clutter_master_clock_ensure_next_iteration (master_clock);
} }
g_static_mutex_unlock (&upload_list_mutex); g_static_mutex_unlock (&upload_list_mutex);
return TRUE; return TRUE;
} }
@ -1771,6 +1779,8 @@ clutter_texture_thread_func (gpointer user_data, gpointer pool_data)
} }
else else
{ {
ClutterMasterClock *master_clock = _clutter_master_clock_get_default ();
/* Make sure we give the image to GL in the main thread, where we /* Make sure we give the image to GL in the main thread, where we
* hold the main Clutter lock. Once load_idle is non-NULL then the * hold the main Clutter lock. Once load_idle is non-NULL then the
* main thread is guaranteed not to set the abort flag. It can't * main thread is guaranteed not to set the abort flag. It can't
@ -1778,23 +1788,23 @@ clutter_texture_thread_func (gpointer user_data, gpointer pool_data)
* idle handler now without the possibility of calling the * idle handler now without the possibility of calling the
* callback after it is aborted */ * callback after it is aborted */
g_static_mutex_lock (&upload_list_mutex); g_static_mutex_lock (&upload_list_mutex);
if (repaint_upload_func == 0) if (repaint_upload_func == 0)
{ {
repaint_upload_func = clutter_threads_add_repaint_func ( repaint_upload_func =
clutter_texture_repaint_upload_func, clutter_threads_add_repaint_func (texture_repaint_upload_func,
NULL, NULL); NULL, NULL);
} }
upload_list = g_list_append (upload_list, data); upload_list = g_list_append (upload_list, data);
data->upload_queued = TRUE; data->upload_queued = TRUE;
g_static_mutex_unlock (&upload_list_mutex); g_static_mutex_unlock (&upload_list_mutex);
g_mutex_unlock (data->mutex); g_mutex_unlock (data->mutex);
_clutter_master_clock_ensure_next_iteration ( _clutter_master_clock_ensure_next_iteration (master_clock);
_clutter_master_clock_get_default());
} }
return;
} }
static gboolean static gboolean