diff --git a/gdk/gdkcolor.c b/gdk/gdkcolor.c index a7dc080346..19b6e277d1 100644 --- a/gdk/gdkcolor.c +++ b/gdk/gdkcolor.c @@ -229,20 +229,6 @@ gdk_color_from_rgba (GdkColor *self, gdk_color_finish (&tmp); } -/*< private > - * gdk_color_get_depth: - * @self: a `GdkColor` - * - * Returns the preferred depth for the color state of @self. - * - * Returns: the preferred depth - */ -GdkMemoryDepth -(gdk_color_get_depth) (const GdkColor *self) -{ - return gdk_color_state_get_depth (self->color_state); -} - /*< private > * gdk_color_print: * @self: the `GdkColor` to print diff --git a/gdk/gdkcolorimpl.h b/gdk/gdkcolorimpl.h index 64242497cf..8103b34f89 100644 --- a/gdk/gdkcolorimpl.h +++ b/gdk/gdkcolorimpl.h @@ -129,10 +129,3 @@ _gdk_color_to_float (const GdkColor *self, values); } -#define gdk_color_get_depth(self) _gdk_color_get_depth ((self)) -static inline GdkMemoryDepth -_gdk_color_get_depth (const GdkColor *self) -{ - return gdk_color_state_get_depth (self->color_state); -} - diff --git a/gdk/gdkcolorprivate.h b/gdk/gdkcolorprivate.h index 93369100a9..f12f298ecb 100644 --- a/gdk/gdkcolorprivate.h +++ b/gdk/gdkcolorprivate.h @@ -83,7 +83,6 @@ gboolean gdk_color_equal (const GdkColor *color1, const GdkColor *color2); gboolean gdk_color_is_clear (const GdkColor *self); gboolean gdk_color_is_opaque (const GdkColor *self); -GdkMemoryDepth gdk_color_get_depth (const GdkColor *self); void gdk_color_convert (GdkColor *self, GdkColorState *color_state, diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c index d60073dc70..9927ce1494 100644 --- a/gsk/gl/gskglrenderer.c +++ b/gsk/gl/gskglrenderer.c @@ -407,7 +407,8 @@ gsk_gl_renderer_render_texture (GskRenderer *renderer, /* Don't use float textures for SRGB or node-editor turns on high * depth unconditionally. */ - if (gsk_render_node_get_preferred_depth (root) != GDK_MEMORY_U8 && + if (gsk_render_node_get_preferred_depth (root) != GDK_MEMORY_NONE && + gsk_render_node_get_preferred_depth (root) != GDK_MEMORY_U8 && gsk_render_node_get_preferred_depth (root) != GDK_MEMORY_U8_SRGB && gdk_gl_context_check_version (self->context, "3.0", "3.0")) { diff --git a/gsk/gpu/gskgpudownloadop.c b/gsk/gpu/gskgpudownloadop.c index 967fc97a98..b81732eb71 100644 --- a/gsk/gpu/gskgpudownloadop.c +++ b/gsk/gpu/gskgpudownloadop.c @@ -119,6 +119,7 @@ gsk_gpu_download_op_vk_create (GskGpuDownloadOp *self) guchar *data; gsize width, height, stride; GdkMemoryFormat format; + GdkMemoryTextureBuilder *builder; data = gsk_gpu_buffer_map (self->buffer); width = gsk_gpu_image_get_width (self->image); @@ -126,11 +127,16 @@ gsk_gpu_download_op_vk_create (GskGpuDownloadOp *self) format = gsk_gpu_image_get_format (self->image); stride = width * gdk_memory_format_bytes_per_pixel (format); bytes = g_bytes_new (data, stride * height); - self->texture = gdk_memory_texture_new (width, - height, - format, - bytes, - stride); + + builder = gdk_memory_texture_builder_new (); + gdk_memory_texture_builder_set_width (builder, width); + gdk_memory_texture_builder_set_height (builder, height); + gdk_memory_texture_builder_set_format (builder, format); + gdk_memory_texture_builder_set_bytes (builder, bytes); + gdk_memory_texture_builder_set_stride (builder, stride); + self->texture = gdk_memory_texture_builder_build (builder); + + g_object_unref (builder); g_bytes_unref (bytes); gsk_gpu_buffer_unmap (self->buffer, 0); } @@ -296,9 +302,7 @@ gsk_gpu_download_op_gl_command (GskGpuOp *op, GdkGLContext *context; guint texture_id; - /* Don't use the renderer context, the texture might survive the frame - * and its surface */ - context = gdk_display_get_gl_context (gsk_gpu_device_get_display (gsk_gpu_frame_get_device (frame))); + context = GDK_GL_CONTEXT (gsk_gpu_frame_get_context (frame)); texture_id = gsk_gl_image_get_texture_id (GSK_GL_IMAGE (self->image)); #ifdef HAVE_DMABUF @@ -334,14 +338,16 @@ gsk_gpu_download_op_gl_command (GskGpuOp *op, #endif data = g_new (GskGLTextureData, 1); - data->context = g_object_ref (context); + /* Don't use the renderer context for the texture, + * the texture might survive the frame and its surface */ + data->context = g_object_ref (gdk_display_get_gl_context (gsk_gpu_device_get_display (gsk_gpu_frame_get_device (frame)))); data->texture_id = texture_id; if (gdk_gl_context_has_feature (context, GDK_GL_FEATURE_SYNC)) data->sync = glFenceSync (GL_SYNC_GPU_COMMANDS_COMPLETE, 0); builder = gdk_gl_texture_builder_new (); - gdk_gl_texture_builder_set_context (builder, context); + gdk_gl_texture_builder_set_context (builder, data->context); gdk_gl_texture_builder_set_id (builder, data->texture_id); gdk_gl_texture_builder_set_format (builder, gsk_gpu_image_get_format (self->image)); gdk_gl_texture_builder_set_width (builder, gsk_gpu_image_get_width (self->image)); diff --git a/gsk/gpu/gskgpunodeprocessor.c b/gsk/gpu/gskgpunodeprocessor.c index 77cb5fb552..6ab7c120fb 100644 --- a/gsk/gpu/gskgpunodeprocessor.c +++ b/gsk/gpu/gskgpunodeprocessor.c @@ -501,10 +501,7 @@ gsk_gpu_node_processor_rect_to_device_shrink (GskGpuNodeProcessor *self, { graphene_rect_t tmp; - graphene_rect_offset_r (rect, - self->offset.x, - self->offset.y, - &tmp); + gsk_rect_init_offset (&tmp, rect, &self->offset); if (!gsk_gpu_node_processor_rect_clip_to_device (self, &tmp, &tmp)) return FALSE; @@ -990,9 +987,7 @@ gsk_gpu_node_processor_add_node_clipped (GskGpuNodeProcessor *self, return; } - graphene_rect_offset_r (clip_bounds, - self->offset.x, self->offset.y, - &clip); + gsk_rect_init_offset (&clip, clip_bounds, &self->offset); gsk_gpu_clip_init_copy (&old_clip, &self->clip); @@ -1731,9 +1726,7 @@ gsk_gpu_node_processor_add_color_node (GskGpuNodeProcessor *self, graphene_rect_t rect, clipped; float clear_color[4]; - graphene_rect_offset_r (&node->bounds, - self->offset.x, self->offset.y, - &rect); + gsk_rect_init_offset (&rect, &node->bounds, &self->offset); gsk_rect_intersection (&self->clip.rect.bounds, &rect, &clipped); if (gsk_gpu_frame_should_optimize (self->frame, GSK_GPU_OPTIMIZE_CLEAR) && @@ -2406,7 +2399,7 @@ gsk_gpu_node_processor_add_outset_shadow_node (GskGpuNodeProcessor *self, gsk_rounded_rect_init_copy (&outline, gsk_outset_shadow_node_get_outline (node)); gsk_rounded_rect_shrink (&outline, -spread, -spread, -spread, -spread); - graphene_rect_offset (&outline.bounds, offset->x, offset->y); + gsk_rect_init_offset (&outline.bounds, &outline.bounds, offset); for (int i = 0; i < 4; i++) gdk_color_init_copy (&colors[i], color); @@ -3172,8 +3165,8 @@ gsk_gpu_node_processor_repeat_tile (GskGpuNodeProcessor *self, gsk_rect_init_offset (&offset_rect, rect, - - x * child_bounds->size.width, - - y * child_bounds->size.height); + &GRAPHENE_POINT_INIT (- x * child_bounds->size.width, + - y * child_bounds->size.height)); if (!gsk_rect_intersection (&offset_rect, child_bounds, &clipped_child_bounds)) { /* The math has gone wrong probably, someone should look at this. */ @@ -3561,9 +3554,7 @@ gsk_gpu_node_processor_add_subsurface_node (GskGpuNodeProcessor *self, cairo_rectangle_int_t int_clipped; graphene_rect_t rect, clipped; - graphene_rect_offset_r (&node->bounds, - self->offset.x, self->offset.y, - &rect); + gsk_rect_init_offset (&rect, &node->bounds, &self->offset); gsk_rect_intersection (&self->clip.rect.bounds, &rect, &clipped); if (gsk_gpu_frame_should_optimize (self->frame, GSK_GPU_OPTIMIZE_CLEAR) && diff --git a/gsk/gskrectprivate.h b/gsk/gskrectprivate.h index aad5e8812b..1c07b2a63d 100644 --- a/gsk/gskrectprivate.h +++ b/gsk/gskrectprivate.h @@ -28,12 +28,11 @@ gsk_rect_init_from_rect (graphene_rect_t *r, } static inline void -gsk_rect_init_offset (graphene_rect_t *r, - const graphene_rect_t *src, - float dx, - float dy) +gsk_rect_init_offset (graphene_rect_t *r, + const graphene_rect_t *src, + const graphene_point_t *offset) { - gsk_rect_init (r, src->origin.x + dx, src->origin.y + dy, src->size.width, src->size.height); + gsk_rect_init (r, src->origin.x + offset->x, src->origin.y + offset->y, src->size.width, src->size.height); } static inline gboolean G_GNUC_PURE diff --git a/gsk/gskrendernodeimpl.c b/gsk/gskrendernodeimpl.c index 52d9b81893..c3f0c9eefc 100644 --- a/gsk/gskrendernodeimpl.c +++ b/gsk/gskrendernodeimpl.c @@ -81,14 +81,6 @@ gsk_color_stops_are_opaque (const GskColorStop *stops, return TRUE; } -/* FIXME: Replace this once GdkColor lands */ -static inline GdkMemoryDepth -my_color_stops_get_depth (const GskColorStop *stops, - gsize n_stops) -{ - return gdk_color_state_get_depth (GDK_COLOR_STATE_SRGB); -} - static inline gboolean color_state_is_hdr (GdkColorState *color_state) { @@ -324,7 +316,7 @@ gsk_color_node_new2 (const GdkColor *color, node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; node->fully_opaque = gdk_color_is_opaque (color); - node->preferred_depth = gdk_color_get_depth (color); + node->preferred_depth = GDK_MEMORY_NONE; node->is_hdr = color_state_is_hdr (color->color_state); gdk_color_init_copy (&self->color, color); @@ -505,7 +497,7 @@ gsk_linear_gradient_node_new (const graphene_rect_t *bounds, node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; node->fully_opaque = gsk_color_stops_are_opaque (color_stops, n_color_stops); - node->preferred_depth = my_color_stops_get_depth (color_stops, n_color_stops); + node->preferred_depth = GDK_MEMORY_NONE; gsk_rect_init_from_rect (&node->bounds, bounds); gsk_rect_normalize (&node->bounds); @@ -561,7 +553,7 @@ gsk_repeating_linear_gradient_node_new (const graphene_rect_t *bounds, node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; node->fully_opaque = gsk_color_stops_are_opaque (color_stops, n_color_stops); - node->preferred_depth = my_color_stops_get_depth (color_stops, n_color_stops); + node->preferred_depth = GDK_MEMORY_NONE; gsk_rect_init_from_rect (&node->bounds, bounds); gsk_rect_normalize (&node->bounds); @@ -845,7 +837,7 @@ gsk_radial_gradient_node_new (const graphene_rect_t *bounds, node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; node->fully_opaque = gsk_color_stops_are_opaque (color_stops, n_color_stops); - node->preferred_depth = my_color_stops_get_depth (color_stops, n_color_stops); + node->preferred_depth = GDK_MEMORY_NONE; gsk_rect_init_from_rect (&node->bounds, bounds); gsk_rect_normalize (&node->bounds); @@ -917,7 +909,7 @@ gsk_repeating_radial_gradient_node_new (const graphene_rect_t *bounds, node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; node->fully_opaque = gsk_color_stops_are_opaque (color_stops, n_color_stops); - node->preferred_depth = my_color_stops_get_depth (color_stops, n_color_stops); + node->preferred_depth = GDK_MEMORY_NONE; gsk_rect_init_from_rect (&node->bounds, bounds); gsk_rect_normalize (&node->bounds); @@ -1319,7 +1311,7 @@ gsk_conic_gradient_node_new (const graphene_rect_t *bounds, node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; node->fully_opaque = gsk_color_stops_are_opaque (color_stops, n_color_stops); - node->preferred_depth = my_color_stops_get_depth (color_stops, n_color_stops); + node->preferred_depth = GDK_MEMORY_NONE; gsk_rect_init_from_rect (&node->bounds, bounds); gsk_rect_normalize (&node->bounds); @@ -1789,11 +1781,7 @@ gsk_border_node_new2 (const GskRoundedRect *outline, self = gsk_render_node_alloc (GSK_BORDER_NODE); node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; - node->preferred_depth = gdk_memory_depth_merge ( - gdk_memory_depth_merge (gdk_color_get_depth (&border_color[0]), - gdk_color_get_depth (&border_color[1])), - gdk_memory_depth_merge (gdk_color_get_depth (&border_color[2]), - gdk_color_get_depth (&border_color[3]))); + node->preferred_depth = GDK_MEMORY_NONE; gsk_rounded_rect_init_copy (&self->outline, outline); memcpy (self->border_width, border_width, sizeof (self->border_width)); @@ -2811,7 +2799,7 @@ gsk_inset_shadow_node_new2 (const GskRoundedRect *outline, self = gsk_render_node_alloc (GSK_INSET_SHADOW_NODE); node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; - node->preferred_depth = gdk_color_get_depth (color); + node->preferred_depth = GDK_MEMORY_NONE; gsk_rounded_rect_init_copy (&self->outline, outline); gdk_color_init_copy (&self->color, color); @@ -3207,7 +3195,7 @@ gsk_outset_shadow_node_new2 (const GskRoundedRect *outline, self = gsk_render_node_alloc (GSK_OUTSET_SHADOW_NODE); node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; - node->preferred_depth = gdk_color_get_depth (color); + node->preferred_depth = GDK_MEMORY_NONE; gsk_rounded_rect_init_copy (&self->outline, outline); gdk_color_init_copy (&self->color, color); @@ -5801,7 +5789,6 @@ gsk_shadow_node_new2 (GskRenderNode *child, GskShadowNode *self; GskRenderNode *node; gsize i; - GdkMemoryDepth depth; gboolean is_hdr; g_return_val_if_fail (GSK_IS_RENDER_NODE (child), NULL); @@ -5816,7 +5803,6 @@ gsk_shadow_node_new2 (GskRenderNode *child, self->n_shadows = n_shadows; self->shadows = g_new (GskShadow2, n_shadows); - depth = gsk_render_node_get_preferred_depth (child); is_hdr = gsk_render_node_is_hdr (child); for (i = 0; i < n_shadows; i++) @@ -5824,11 +5810,10 @@ gsk_shadow_node_new2 (GskRenderNode *child, gdk_color_init_copy (&self->shadows[i].color, &shadows[i].color); graphene_point_init_from_point (&self->shadows[i].offset, &shadows[i].offset); self->shadows[i].radius = shadows[i].radius; - depth = gdk_memory_depth_merge (depth, gdk_color_get_depth (&shadows[i].color)); is_hdr = is_hdr || color_state_is_hdr (shadows[i].color.color_state); } - node->preferred_depth = depth; + node->preferred_depth = gsk_render_node_get_preferred_depth (child); node->is_hdr = is_hdr; gsk_shadow_node_get_bounds (self, &node->bounds); @@ -6520,7 +6505,7 @@ gsk_text_node_new2 (PangoFont *font, self = gsk_render_node_alloc (GSK_TEXT_NODE); node = (GskRenderNode *) self; node->offscreen_for_opacity = FALSE; - node->preferred_depth = gdk_color_get_depth (color); + node->preferred_depth = GDK_MEMORY_NONE; node->is_hdr = color_state_is_hdr (color->color_state); self->fontmap = g_object_ref (pango_font_get_font_map (font)); diff --git a/gsk/gskroundedrect.c b/gsk/gskroundedrect.c index df2b1af370..5adbddb73d 100644 --- a/gsk/gskroundedrect.c +++ b/gsk/gskroundedrect.c @@ -309,7 +309,7 @@ gsk_rounded_rect_scale_affine (GskRoundedRect *dest, g_assert (dest != src); gsk_rect_scale (&src->bounds, scale_x, scale_y, &dest->bounds); - graphene_rect_offset (&dest->bounds, dx, dy); + gsk_rect_init_offset (&dest->bounds, &dest->bounds, &GRAPHENE_POINT_INIT (dx, dy)); scale_x = fabsf (scale_x); scale_y = fabsf (scale_y); diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index e9f594bc7f..5297ae5eb4 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -255,7 +255,6 @@ typedef struct guint modal : 1; guint resizable : 1; guint transient_parent_group : 1; - guint csd_requested : 1; guint client_decorated : 1; /* Decorations drawn client-side */ guint use_client_shadow : 1; /* Decorations use client-side shadows */ guint maximized : 1; @@ -3806,23 +3805,12 @@ update_window_actions (GtkWindow *window) update_csd_visibility (window); } -void -_gtk_window_request_csd (GtkWindow *window) -{ - GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - - priv->csd_requested = TRUE; -} - static gboolean gtk_window_should_use_csd (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); const char *csd_env; - if (priv->csd_requested) - return TRUE; - if (!priv->decorated) return FALSE; diff --git a/gtk/gtkwindowprivate.h b/gtk/gtkwindowprivate.h index 96d9dd110b..5c62b9d8cc 100644 --- a/gtk/gtkwindowprivate.h +++ b/gtk/gtkwindowprivate.h @@ -57,8 +57,6 @@ void _gtk_window_notify_keys_changed (GtkWindow *window); void _gtk_window_toggle_maximized (GtkWindow *window); -void _gtk_window_request_csd (GtkWindow *window); - /* Window groups */ GtkWindowGroup *_gtk_window_get_window_group (GtkWindow *window);