From dbadd3bcbed41d2a68128ab01e3e80fd0fdb479e Mon Sep 17 00:00:00 2001 From: Armin Burgmeier Date: Mon, 4 Aug 2014 16:23:04 -0400 Subject: [PATCH] mape: Show rendering time in statusbar --- CMakeLists.txt | 4 ++-- src/mape/editview.c | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 580c03b67..ed754b576 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -852,7 +852,7 @@ if(USE_GTK) include_directories(${GTK3_INCLUDE_DIRS}) link_directories(${GTK3_LIBRARY_DIRS}) else() - pkg_check_modules(GTK REQUIRED "glib-2.0 >= 2.24" "gtk+-2.0 >= 2.20") + pkg_check_modules(GTK REQUIRED "glib-2.0 >= 2.28" "gtk+-2.0 >= 2.20") include_directories(${GTK_INCLUDE_DIRS}) link_directories(${GTK_LIBRARY_DIRS}) endif() @@ -864,7 +864,7 @@ if (PKG_CONFIG_FOUND) if (USE_GTK3) pkg_check_modules(MAPE_GTK glib-2.0>=2.32 gthread-2.0 gtk+-3.0>=3.4 gtksourceview-3.0) else() - pkg_check_modules(MAPE_GTK glib-2.0>=2.24 gthread-2.0 gtk+-2.0>=2.20 gtksourceview-2.0) + pkg_check_modules(MAPE_GTK glib-2.0>=2.28 gthread-2.0 gtk+-2.0>=2.20 gtksourceview-2.0) endif() endif() if(MAPE_GTK_FOUND) diff --git a/src/mape/editview.c b/src/mape/editview.c index 972320f86..6556dcb86 100644 --- a/src/mape/editview.c +++ b/src/mape/editview.c @@ -34,6 +34,7 @@ struct _ThreadData { MapeTextureMap* tex_map; guint map_width; guint map_height; + gint64 start_time; }; typedef struct _ThreadResult ThreadResult; @@ -42,6 +43,7 @@ struct _ThreadResult { GdkPixbuf* pixbuf; GError* error; guint idle_id; + gint64 start_time; }; static void mape_edit_view_set_filename(MapeEditView* view, @@ -270,6 +272,9 @@ mape_edit_view_thread_result(gpointer data_) ThreadResult* result; MapeEditView* view; + gint64 now; + gchar* time_text; + result = (ThreadResult*)data_; view = result->view; @@ -284,10 +289,16 @@ mape_edit_view_thread_result(gpointer data_) } else { - mape_statusbar_set_compile( - view->statusbar, - "Landscape rendered successfully" + now = g_get_monotonic_time(); + g_assert(now >= result->start_time); + + time_text = g_strdup_printf( + "Landscape rendered successfully (%.2fs)", + (now - result->start_time) / 1000000. ); + + mape_statusbar_set_compile(view->statusbar, time_text); + g_free(time_text); } mape_pre_view_update(view->pre_view, result->pixbuf); @@ -328,6 +339,7 @@ static gpointer mape_edit_view_thread_entry(gpointer data_) result->view = data->view; result->pixbuf = res_buf; result->error = error; + result->start_time = data->start_time; g_free(data->source); g_free(data->file_path); @@ -745,6 +757,7 @@ void mape_edit_view_reload(MapeEditView* edit_view) data->map_width = edit_view->map_width; data->map_height = edit_view->map_height; + data->start_time = g_get_monotonic_time(); if(edit_view->fixed_seed == TRUE) mape_random_seed(edit_view->random_seed);