Merge branch 'wip/otte/for-main' into 'main'
rendernode: Use different hilights See merge request GNOME/gtk!6694
This commit is contained in:
@@ -389,8 +389,6 @@ gsk_gl_renderer_render (GskRenderer *renderer,
|
||||
|
||||
gsk_gl_driver_begin_frame (self->driver, self->command_queue);
|
||||
job = gsk_gl_render_job_new (self->driver, &viewport, scale, render_region, 0, clear_framebuffer);
|
||||
if (GSK_RENDERER_DEBUG_CHECK (GSK_RENDERER (self), FALLBACK))
|
||||
gsk_gl_render_job_set_debug_fallback (job, TRUE);
|
||||
gsk_gl_render_job_render (job, root);
|
||||
gsk_gl_driver_end_frame (self->driver);
|
||||
gsk_gl_render_job_free (job);
|
||||
@@ -475,8 +473,6 @@ gsk_gl_renderer_render_texture (GskRenderer *renderer,
|
||||
{
|
||||
gsk_gl_driver_begin_frame (self->driver, self->command_queue);
|
||||
job = gsk_gl_render_job_new (self->driver, viewport, 1, NULL, render_target->framebuffer_id, TRUE);
|
||||
if (GSK_RENDERER_DEBUG_CHECK (GSK_RENDERER (self), FALLBACK))
|
||||
gsk_gl_render_job_set_debug_fallback (job, TRUE);
|
||||
gsk_gl_render_job_render_flipped (job, root);
|
||||
texture_id = gsk_gl_driver_release_render_target (self->driver, render_target, FALSE);
|
||||
texture = gsk_gl_driver_create_gdk_texture (self->driver, texture_id, gdk_format);
|
||||
|
||||
@@ -167,9 +167,6 @@ struct _GskGLRenderJob
|
||||
|
||||
guint source_is_glyph_atlas : 1;
|
||||
|
||||
/* If we should be rendering red zones over fallback nodes */
|
||||
guint debug_fallback : 1;
|
||||
|
||||
/* In some cases we might want to avoid clearing the framebuffer
|
||||
* because we're going to render over the existing contents.
|
||||
*/
|
||||
@@ -1232,22 +1229,6 @@ gsk_gl_render_job_visit_as_fallback (GskGLRenderJob *job,
|
||||
cairo_rectangle (cr, 0, 0, surface_width / fabs (scale_x), surface_height / fabs (scale_y));
|
||||
cairo_fill (cr);
|
||||
cairo_restore (cr);
|
||||
|
||||
if (job->debug_fallback)
|
||||
{
|
||||
cairo_move_to (cr, 0, 0);
|
||||
cairo_rectangle (cr, 0, 0, node->bounds.size.width, node->bounds.size.height);
|
||||
if (GSK_RENDER_NODE_TYPE (node) == GSK_CAIRO_NODE)
|
||||
cairo_set_source_rgba (cr, 0.3, 0, 1, 0.25);
|
||||
else
|
||||
cairo_set_source_rgba (cr, 1, 0, 0, 0.25);
|
||||
cairo_fill_preserve (cr);
|
||||
if (GSK_RENDER_NODE_TYPE (node) == GSK_CAIRO_NODE)
|
||||
cairo_set_source_rgba (cr, 0.3, 0, 1, 1);
|
||||
else
|
||||
cairo_set_source_rgba (cr, 1, 0, 0, 1);
|
||||
cairo_stroke (cr);
|
||||
}
|
||||
cairo_destroy (cr);
|
||||
|
||||
/* Create texture to upload */
|
||||
@@ -4580,15 +4561,6 @@ gsk_gl_render_job_render (GskGLRenderJob *job,
|
||||
gdk_profiler_add_mark (start_time, GDK_PROFILER_CURRENT_TIME-start_time, "Execute GL command queue", "");
|
||||
}
|
||||
|
||||
void
|
||||
gsk_gl_render_job_set_debug_fallback (GskGLRenderJob *job,
|
||||
gboolean debug_fallback)
|
||||
{
|
||||
g_return_if_fail (job != NULL);
|
||||
|
||||
job->debug_fallback = !!debug_fallback;
|
||||
}
|
||||
|
||||
static int
|
||||
get_framebuffer_format (GdkGLContext *context,
|
||||
guint framebuffer)
|
||||
|
||||
@@ -33,6 +33,4 @@ void gsk_gl_render_job_render (GskGLRenderJob *job
|
||||
GskRenderNode *root);
|
||||
void gsk_gl_render_job_render_flipped (GskGLRenderJob *job,
|
||||
GskRenderNode *root);
|
||||
void gsk_gl_render_job_set_debug_fallback (GskGLRenderJob *job,
|
||||
gboolean debug_fallback);
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ static const GdkDebugKey gsk_debug_keys[] = {
|
||||
{ "vulkan", GSK_DEBUG_VULKAN, "Vulkan renderer information" },
|
||||
{ "shaders", GSK_DEBUG_SHADERS, "Information about shaders" },
|
||||
{ "surface", GSK_DEBUG_SURFACE, "Information about surfaces" },
|
||||
{ "fallback", GSK_DEBUG_FALLBACK, "Information about fallbacks" },
|
||||
{ "fallback", GSK_DEBUG_FALLBACK, "Information about fallback usage in renderers" },
|
||||
{ "glyphcache", GSK_DEBUG_GLYPH_CACHE, "Information about glyph caching" },
|
||||
{ "verbose", GSK_DEBUG_VERBOSE, "Print verbose output while rendering" },
|
||||
{ "geometry", GSK_DEBUG_GEOMETRY, "Show borders (when using cairo)" },
|
||||
|
||||
@@ -434,11 +434,18 @@ gsk_render_node_draw_fallback (GskRenderNode *node,
|
||||
/* pink, black
|
||||
* black, pink
|
||||
*/
|
||||
static const guint32 pixels[] = { 0xFFFF00CC, 0xFF000000,
|
||||
0xFF000000, 0xFFFF00CC };
|
||||
static const guint32 fallback_pixels[] = { 0xFFFF00CC, 0xFF000000,
|
||||
0xFF000000, 0xFFFF00CC };
|
||||
static const guint32 cairo_pixels[] = { 0xFF9900FF, 0xFF000000,
|
||||
0xFF000000, 0xFF9900FF };
|
||||
const guint32 *pixels;
|
||||
cairo_surface_t *surface;
|
||||
|
||||
cairo_save (cr);
|
||||
if (GSK_RENDER_NODE_TYPE (node) == GSK_CAIRO_NODE)
|
||||
pixels = cairo_pixels;
|
||||
else
|
||||
pixels = fallback_pixels;
|
||||
surface = cairo_image_surface_create_for_data ((guchar *) pixels,
|
||||
CAIRO_FORMAT_ARGB32,
|
||||
2, 2,
|
||||
|
||||
@@ -92,7 +92,7 @@ struct _GtkInspectorVisual
|
||||
GtkWidget *debug_box;
|
||||
GtkWidget *fps_switch;
|
||||
GtkWidget *updates_switch;
|
||||
GtkWidget *fallback_switch;
|
||||
GtkWidget *cairo_switch;
|
||||
GtkWidget *baselines_switch;
|
||||
GtkWidget *layout_switch;
|
||||
GtkWidget *focus_switch;
|
||||
@@ -388,25 +388,25 @@ updates_activate (GtkSwitch *sw,
|
||||
}
|
||||
|
||||
static void
|
||||
fallback_activate (GtkSwitch *sw,
|
||||
GParamSpec *pspec,
|
||||
GtkInspectorVisual *vis)
|
||||
cairo_activate (GtkSwitch *sw,
|
||||
GParamSpec *pspec,
|
||||
GtkInspectorVisual *vis)
|
||||
{
|
||||
GtkInspectorWindow *iw;
|
||||
gboolean fallback;
|
||||
gboolean active;
|
||||
guint flags;
|
||||
GList *toplevels, *l;
|
||||
|
||||
fallback = gtk_switch_get_active (sw);
|
||||
active = gtk_switch_get_active (sw);
|
||||
iw = GTK_INSPECTOR_WINDOW (gtk_widget_get_root (GTK_WIDGET (vis)));
|
||||
if (iw == NULL)
|
||||
return;
|
||||
|
||||
flags = gsk_get_debug_flags ();
|
||||
if (fallback)
|
||||
flags = flags | GSK_DEBUG_FALLBACK;
|
||||
if (active)
|
||||
flags = flags | GSK_DEBUG_CAIRO;
|
||||
else
|
||||
flags = flags & ~GSK_DEBUG_FALLBACK;
|
||||
flags = flags & ~GSK_DEBUG_CAIRO;
|
||||
gsk_set_debug_flags (flags);
|
||||
|
||||
toplevels = gtk_window_list_toplevels ();
|
||||
@@ -1055,9 +1055,9 @@ row_activated (GtkListBox *box,
|
||||
GtkSwitch *sw = GTK_SWITCH (vis->updates_switch);
|
||||
gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
|
||||
}
|
||||
else if (gtk_widget_is_ancestor (vis->fallback_switch, GTK_WIDGET (row)))
|
||||
else if (gtk_widget_is_ancestor (vis->cairo_switch, GTK_WIDGET (row)))
|
||||
{
|
||||
GtkSwitch *sw = GTK_SWITCH (vis->fallback_switch);
|
||||
GtkSwitch *sw = GTK_SWITCH (vis->cairo_switch);
|
||||
gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
|
||||
}
|
||||
else if (gtk_widget_is_ancestor (vis->baselines_switch, GTK_WIDGET (row)))
|
||||
@@ -1199,7 +1199,7 @@ gtk_inspector_visual_class_init (GtkInspectorVisualClass *klass)
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, font_scale_adjustment);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, fps_switch);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, updates_switch);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, fallback_switch);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, cairo_switch);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, baselines_switch);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, layout_switch);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorVisual, focus_switch);
|
||||
@@ -1208,7 +1208,7 @@ gtk_inspector_visual_class_init (GtkInspectorVisualClass *klass)
|
||||
|
||||
gtk_widget_class_bind_template_callback (widget_class, fps_activate);
|
||||
gtk_widget_class_bind_template_callback (widget_class, updates_activate);
|
||||
gtk_widget_class_bind_template_callback (widget_class, fallback_activate);
|
||||
gtk_widget_class_bind_template_callback (widget_class, cairo_activate);
|
||||
gtk_widget_class_bind_template_callback (widget_class, direction_changed);
|
||||
gtk_widget_class_bind_template_callback (widget_class, baselines_activate);
|
||||
gtk_widget_class_bind_template_callback (widget_class, layout_activate);
|
||||
|
||||
@@ -427,23 +427,24 @@
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkListBoxRow">
|
||||
<property name="tooltip-text" translatable="yes">Tints all the places where the current renderer uses Cairo instead of the GPU.</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="spacing">40</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="fallback_label">
|
||||
<property name="label" translatable="yes">Show Fallback Rendering</property>
|
||||
<object class="GtkLabel" id="cairo_label">
|
||||
<property name="label" translatable="yes">Show Cairo Rendering</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">baseline</property>
|
||||
<property name="xalign">0.0</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSwitch" id="fallback_switch">
|
||||
<object class="GtkSwitch" id="cairo_switch">
|
||||
<property name="halign">end</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="hexpand">1</property>
|
||||
<signal name="notify::active" handler="fallback_activate"/>
|
||||
<signal name="notify::active" handler="cairo_activate"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
@@ -718,7 +719,7 @@
|
||||
<widget name="hidpi_label"/>
|
||||
<widget name="animation_label"/>
|
||||
<widget name="updates_label"/>
|
||||
<widget name="fallback_label"/>
|
||||
<widget name="cairo_label"/>
|
||||
<widget name="baselines_label"/>
|
||||
<widget name="layout_label_box"/>
|
||||
<widget name="focus_label"/>
|
||||
|
||||
Reference in New Issue
Block a user