app: bring back Debug -> Benchmark Projection
This commit is contained in:
@ -43,6 +43,14 @@ static const GimpActionEntry debug_actions[] =
|
|||||||
G_CALLBACK (debug_mem_profile_cmd_callback),
|
G_CALLBACK (debug_mem_profile_cmd_callback),
|
||||||
NULL },
|
NULL },
|
||||||
|
|
||||||
|
{ "debug-benchmark-projection", NULL,
|
||||||
|
"Benchmark _Projection", NULL,
|
||||||
|
"Invalidates the entire projection, measures the time it takes to "
|
||||||
|
"validate (render) the part that is visible in the active diaplay, "
|
||||||
|
"and print the result to stdout.",
|
||||||
|
G_CALLBACK (debug_benchmark_projection_cmd_callback),
|
||||||
|
NULL },
|
||||||
|
|
||||||
{ "debug-show-image-graph", NULL,
|
{ "debug-show-image-graph", NULL,
|
||||||
"Show Image _Graph", NULL,
|
"Show Image _Graph", NULL,
|
||||||
"Creates a new image showing the GEGL graph of this image",
|
"Creates a new image showing the GEGL graph of this image",
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "core/gimplayer.h"
|
#include "core/gimplayer.h"
|
||||||
#include "core/gimppickable.h"
|
#include "core/gimppickable.h"
|
||||||
#include "core/gimpprojectable.h"
|
#include "core/gimpprojectable.h"
|
||||||
|
#include "core/gimpprojection.h"
|
||||||
|
|
||||||
#include "gegl/gimp-gegl-utils.h"
|
#include "gegl/gimp-gegl-utils.h"
|
||||||
|
|
||||||
@ -55,6 +56,7 @@
|
|||||||
|
|
||||||
/* local function prototypes */
|
/* local function prototypes */
|
||||||
|
|
||||||
|
static gboolean debug_benchmark_projection (GimpDisplay *display);
|
||||||
static gboolean debug_show_image_graph (GimpImage *source_image);
|
static gboolean debug_show_image_graph (GimpImage *source_image);
|
||||||
|
|
||||||
static void debug_dump_menus_recurse_menu (GtkWidget *menu,
|
static void debug_dump_menus_recurse_menu (GtkWidget *menu,
|
||||||
@ -88,6 +90,16 @@ debug_mem_profile_cmd_callback (GtkAction *action,
|
|||||||
gimp_debug_memsize = FALSE;
|
gimp_debug_memsize = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
debug_benchmark_projection_cmd_callback (GtkAction *action,
|
||||||
|
gpointer data)
|
||||||
|
{
|
||||||
|
GimpDisplay *display;
|
||||||
|
return_if_no_display (display, data);
|
||||||
|
|
||||||
|
g_idle_add ((GSourceFunc) debug_benchmark_projection, g_object_ref (display));
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
debug_show_image_graph_cmd_callback (GtkAction *action,
|
debug_show_image_graph_cmd_callback (GtkAction *action,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
@ -270,6 +282,29 @@ debug_dump_attached_data_cmd_callback (GtkAction *action,
|
|||||||
|
|
||||||
/* private functions */
|
/* private functions */
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
debug_benchmark_projection (GimpDisplay *display)
|
||||||
|
{
|
||||||
|
GimpImage *image = gimp_display_get_image (display);
|
||||||
|
GimpProjection *projection = gimp_image_get_projection (image);
|
||||||
|
|
||||||
|
GIMP_TIMER_START ();
|
||||||
|
|
||||||
|
gimp_image_invalidate (image,
|
||||||
|
0, 0,
|
||||||
|
gimp_image_get_width (image),
|
||||||
|
gimp_image_get_height (image));
|
||||||
|
gimp_projection_flush_now (projection);
|
||||||
|
|
||||||
|
gimp_display_flush_now (display);
|
||||||
|
|
||||||
|
GIMP_TIMER_END ("Validation of the entire projection");
|
||||||
|
|
||||||
|
g_object_unref (display);
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
debug_show_image_graph (GimpImage *source_image)
|
debug_show_image_graph (GimpImage *source_image)
|
||||||
{
|
{
|
||||||
|
@ -26,20 +26,22 @@
|
|||||||
|
|
||||||
#ifdef ENABLE_DEBUG_MENU
|
#ifdef ENABLE_DEBUG_MENU
|
||||||
|
|
||||||
void debug_mem_profile_cmd_callback (GtkAction *action,
|
void debug_mem_profile_cmd_callback (GtkAction *action,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
void debug_dump_menus_cmd_callback (GtkAction *action,
|
void debug_benchmark_projection_cmd_callback (GtkAction *action,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
void debug_dump_managers_cmd_callback (GtkAction *action,
|
void debug_show_image_graph_cmd_callback (GtkAction *action,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
void debug_dump_keyboard_shortcuts_cmd_callback (GtkAction *action,
|
void debug_dump_menus_cmd_callback (GtkAction *action,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
void debug_dump_attached_data_cmd_callback (GtkAction *action,
|
void debug_dump_managers_cmd_callback (GtkAction *action,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
void debug_benchmark_projection_cmd_callback (GtkAction *action,
|
void debug_dump_keyboard_shortcuts_cmd_callback (GtkAction *action,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
void debug_show_image_graph_cmd_callback (GtkAction *action,
|
void debug_dump_attached_data_cmd_callback (GtkAction *action,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
|
void debug_benchmark_projection_cmd_callback (GtkAction *action,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
#endif /* ENABLE_DEBUG_MENU */
|
#endif /* ENABLE_DEBUG_MENU */
|
||||||
|
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
<!-- The debug-menu is automatically excluded for stable releases -->
|
<!-- The debug-menu is automatically excluded for stable releases -->
|
||||||
<menu action="debug-menu" name="Debug">
|
<menu action="debug-menu" name="Debug">
|
||||||
<menuitem action="debug-mem-profile" />
|
<menuitem action="debug-mem-profile" />
|
||||||
|
<menuitem action="debug-benchmark-projection" />
|
||||||
<menuitem action="debug-show-image-graph" />
|
<menuitem action="debug-show-image-graph" />
|
||||||
<separator />
|
<separator />
|
||||||
<menuitem action="debug-dump-items" />
|
<menuitem action="debug-dump-items" />
|
||||||
|
Reference in New Issue
Block a user