Compare commits
11 Commits
wip/alexl/
...
3.89.2
Author | SHA1 | Date | |
---|---|---|---|
|
e64947662a | ||
|
a2f0c860ee | ||
|
924efd988d | ||
|
961286b7cd | ||
|
a571e53491 | ||
|
2b4dfeec7c | ||
|
230d27b079 | ||
|
22110ef5a4 | ||
|
2d4b46f4f9 | ||
|
4ee45b76ca | ||
|
cfade39459 |
80
NEWS
80
NEWS
@@ -1,3 +1,83 @@
|
||||
Overview of Changes in GTK+ 3.89.2
|
||||
==================================
|
||||
|
||||
* gtk4-icon-browser works again
|
||||
|
||||
* gtk-encode symbolic works for icons with names containing dots
|
||||
|
||||
* GtkFlowBox and GtkListBox have been changed to no longer emit
|
||||
the ::selected-children-changed signal during destruction
|
||||
|
||||
* gtk-demo has gained an example for using PangoTabArray with GtkTextView
|
||||
|
||||
* We now support CSS border-spacing in GtkGrid, GtkBox and in gadgets
|
||||
|
||||
* The rendering in GDK and GSK has been further refactored. We now
|
||||
only draw toplevel windows, and we always redraw the whole window.
|
||||
|
||||
* A Vulkan implementation has been added in parallel to the GL one
|
||||
|
||||
* Dropped APIs:
|
||||
gdk_window_process_updates
|
||||
gdk_window_process_all_updates
|
||||
gdk_window_reparent
|
||||
support for native and foreign subwindows
|
||||
gsk_render_node_{append/prepend/insert} variations
|
||||
gsk_render_node_make_immutable
|
||||
gtk_cairo_should_draw_window
|
||||
gtk_snapshot_append
|
||||
GtkJunctionSides
|
||||
|
||||
* New APIs:
|
||||
gdk_rgba_is_clear
|
||||
gdk_rgba_is_opaque
|
||||
GdkDrawContext: A base class for vulkan and gl contexts
|
||||
Render node subclasses
|
||||
GskRoundedRect
|
||||
gtk_container_snapshot_child
|
||||
|
||||
* The GSK_USE_SOFTWARE environment variable has been generalized as GSK_RENDERER.
|
||||
Use GSK_RENDERER=help to learn about possible values. Other environment variables
|
||||
that have gained new possible values in clude GSK_DEBUG=vulkan and GTK_DEBUG=snapshot.
|
||||
|
||||
* Bugs fixed
|
||||
749012 GtkStack: Don't emit notify::visible-child during destruction
|
||||
771242 opening menu for certain types of GtkComboBox causes Gdk-CRITICAL assertion...
|
||||
772371 Take advantage of Unicode
|
||||
773299 Ensure GTK+-4.x builds and works on Windows (MSVC in particular)
|
||||
774265 No tilt for wintab devices
|
||||
774534 input shape and opaque region not applied without begin_paint()/end_paint()
|
||||
774686 GtkMenu does not unref all GtkCheckMenuItem it creates
|
||||
774695 GtkProgressbar needs full and empty classes
|
||||
774743 GtkNotebook does not unref all GtkBuiltinIcon it creates
|
||||
774760 inspector: ensure controller is a GtkGesture
|
||||
774784 Failed to get desktop session proxy is not an error!
|
||||
774790 GtkTextHandle does not unref all GtkAdjustment it references
|
||||
774893 Application font sizes scaling gets clamped to 1.00 when starting GtkInspector
|
||||
774915 Destroying the parent of a subsurface causes _gdk_window_destroy_hierarchy: ...
|
||||
774917 child subsurfaces need to be placed relative to their parent
|
||||
774939 GtkLabelAccessible: Initialize link before setting parent
|
||||
775038 Build: Add wayland to GSKs dependencies
|
||||
775212 GtkScaleButton does not unref all GtkAdjustment it references
|
||||
775316 gtk_drag_source_set_icon_pixbuf references the pixbuf received once too much
|
||||
775319 gdk_window_get_toplevel() fails to return the toplevel of a child subsurface
|
||||
775410 gsk/Makefile.am runs g-ir-scanner before libgsk-4.la is linked
|
||||
775525 gtk_flow_box_get_child_at_index shouldn't crash with an invalid index
|
||||
775651 GdkX11-4.0.gir, GdkWin32-4.0.gir, and Gsk-4.0.gir are generated before Gdk-4...
|
||||
776132 Mention the difference between gdk_window_create_similar_image_surface and c...
|
||||
776187 flowbox: Add gtk_flow_box_get_child_at_pos to gtk3
|
||||
776306 flowbox: Sometimes emits child-activated during rubberband selection
|
||||
|
||||
* Translation updates
|
||||
Czech
|
||||
German
|
||||
Hungarian
|
||||
Italian
|
||||
Kazakh
|
||||
Russian
|
||||
Spanish
|
||||
|
||||
|
||||
Overview of Changes in GTK+ 3.89.1
|
||||
==================================
|
||||
|
||||
|
@@ -10,7 +10,7 @@
|
||||
|
||||
m4_define([gtk_major_version], [3])
|
||||
m4_define([gtk_minor_version], [89])
|
||||
m4_define([gtk_micro_version], [1])
|
||||
m4_define([gtk_micro_version], [2])
|
||||
m4_define([gtk_interface_age], [0])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
|
@@ -34,13 +34,16 @@ IGNORE_HFILES= \
|
||||
gdkdisplaymanagerprivate.h \
|
||||
gdkdisplayprivate.h \
|
||||
gdkdndprivate.h \
|
||||
gdkdrawcontextprivate.h \
|
||||
gdkframeclockprivate.h \
|
||||
gdkglcontextprivate.h \
|
||||
gdkkeysprivate.h \
|
||||
gdkmonitorprivate.h \
|
||||
gdkscreenprivate.h \
|
||||
gdkseatdefaultprivate.h \
|
||||
gdkseatprivate.h \
|
||||
gdkvisualprivate.h \
|
||||
gdkvulkancontextprivate.h \
|
||||
keyname-table.h \
|
||||
win32 \
|
||||
x11 \
|
||||
|
@@ -36,6 +36,7 @@
|
||||
<xi:include href="xml/gdkframetimings.xml" />
|
||||
<xi:include href="xml/gdkdrawingcontext.xml" />
|
||||
<xi:include href="xml/gdkglcontext.xml" />
|
||||
<xi:include href="xml/gdkvulkancontext.xml" />
|
||||
<xi:include href="xml/events.xml" />
|
||||
<xi:include href="xml/event_structs.xml" />
|
||||
<xi:include href="xml/keys.xml" />
|
||||
|
@@ -127,7 +127,6 @@ gdk_display_supports_clipboard_persistence
|
||||
gdk_display_store_clipboard
|
||||
gdk_display_supports_shapes
|
||||
gdk_display_supports_input_shapes
|
||||
gdk_display_supports_composite
|
||||
gdk_display_get_app_launch_context
|
||||
gdk_display_notify_startup_complete
|
||||
gdk_display_get_default_seat
|
||||
@@ -180,21 +179,8 @@ GdkScreen
|
||||
gdk_screen_get_default
|
||||
gdk_screen_get_root_window
|
||||
gdk_screen_get_display
|
||||
gdk_screen_get_number
|
||||
gdk_screen_get_toplevel_windows
|
||||
gdk_screen_get_n_monitors
|
||||
gdk_screen_get_primary_monitor
|
||||
gdk_screen_get_monitor_geometry
|
||||
gdk_screen_get_monitor_workarea
|
||||
gdk_screen_get_monitor_at_point
|
||||
gdk_screen_get_monitor_at_window
|
||||
gdk_screen_get_monitor_height_mm
|
||||
gdk_screen_get_monitor_width_mm
|
||||
gdk_screen_get_monitor_plug_name
|
||||
gdk_screen_get_monitor_scale_factor
|
||||
gdk_screen_get_setting
|
||||
gdk_screen_get_font_options
|
||||
gdk_screen_set_font_options
|
||||
gdk_screen_get_resolution
|
||||
gdk_screen_set_resolution
|
||||
|
||||
@@ -317,10 +303,7 @@ gdk_window_resize
|
||||
gdk_window_move_resize
|
||||
gdk_window_scroll
|
||||
gdk_window_move_region
|
||||
gdk_window_flush
|
||||
gdk_window_has_native
|
||||
gdk_window_ensure_native
|
||||
gdk_window_reparent
|
||||
gdk_window_raise
|
||||
gdk_window_lower
|
||||
gdk_window_restack
|
||||
@@ -336,13 +319,13 @@ gdk_window_beep
|
||||
gdk_window_get_scale_factor
|
||||
gdk_window_set_opaque_region
|
||||
gdk_window_create_gl_context
|
||||
gdk_window_create_vulkan_context
|
||||
gdk_window_mark_paint_from_clip
|
||||
|
||||
<SUBSECTION>
|
||||
gdk_window_get_clip_region
|
||||
gdk_window_begin_draw_frame
|
||||
gdk_window_end_draw_frame
|
||||
gdk_window_should_draw
|
||||
gdk_window_get_visible_region
|
||||
|
||||
<SUBSECTION>
|
||||
@@ -373,10 +356,6 @@ gdk_window_input_shape_combine_region
|
||||
gdk_window_set_child_input_shapes
|
||||
gdk_window_merge_child_input_shapes
|
||||
gdk_window_set_title
|
||||
gdk_window_set_background
|
||||
gdk_window_set_background_rgba
|
||||
gdk_window_set_background_pattern
|
||||
gdk_window_get_background_pattern
|
||||
GDK_PARENT_RELATIVE
|
||||
gdk_window_set_cursor
|
||||
gdk_window_get_cursor
|
||||
@@ -542,6 +521,7 @@ gdk_cairo_region
|
||||
gdk_cairo_region_create_from_surface
|
||||
gdk_cairo_surface_create_from_pixbuf
|
||||
gdk_cairo_draw_from_gl
|
||||
gdk_cairo_surface_upload_to_gl
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
@@ -679,6 +659,7 @@ gdk_device_get_last_event_window
|
||||
<SUBSECTION>
|
||||
gdk_device_tool_get_serial
|
||||
gdk_device_tool_get_tool_type
|
||||
gdk_device_tool_get_hardware_id
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GDK_TYPE_AXIS_USE
|
||||
@@ -698,6 +679,8 @@ GDK_TYPE_DEVICE
|
||||
GdkDeviceClass
|
||||
gdk_device_get_type
|
||||
gdk_device_type_get_type
|
||||
gdk_device_tool_get_type
|
||||
gdk_device_tool_new
|
||||
GDK_MAX_TIMECOORD_AXES
|
||||
</SECTION>
|
||||
|
||||
@@ -1373,3 +1356,23 @@ GDK_TYPE_DRAWING_CONTEXT
|
||||
GDK_DRAWING_CONTEXT
|
||||
GDK_IS_DRAWING_CONTEXT
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gdkvulkancontext</FILE>
|
||||
GdkVulkanContext
|
||||
gdk_vulkan_context_get_device
|
||||
gdk_vulkan_context_get_draw_index
|
||||
gdk_vulkan_context_get_draw_semaphore
|
||||
gdk_vulkan_context_get_image
|
||||
gdk_vulkan_context_get_image_format
|
||||
gdk_vulkan_context_get_instance
|
||||
gdk_vulkan_context_get_n_images
|
||||
gdk_vulkan_context_get_physical_device
|
||||
gdk_vulkan_context_get_queue
|
||||
gdk_vulkan_context_get_queue_family_index
|
||||
|
||||
<SUBSECTION Standard>
|
||||
gdk_vulkan_context_get_type
|
||||
gdk_vulkan_error_quark
|
||||
gdk_vulkan_strerror
|
||||
</SECTION>
|
||||
|
@@ -18,7 +18,6 @@
|
||||
<title>API Reference</title>
|
||||
<xi:include href="xml/GskRenderer.xml" />
|
||||
<xi:include href="xml/GskRenderNode.xml" />
|
||||
<xi:include href="xml/GskRenderNodeIter.xml" />
|
||||
</reference>
|
||||
|
||||
<index id="api-index-full">
|
||||
|
@@ -1,3 +1,2 @@
|
||||
gsk_render_node_get_type
|
||||
gsk_render_node_iter_get_type
|
||||
gsk_renderer_get_type
|
||||
|
@@ -23,7 +23,7 @@ DISTCLEANFILES =
|
||||
noinst_LTLIBRARIES =
|
||||
|
||||
if HAVE_VULKAN
|
||||
gsk_private_vulan_source_h = \
|
||||
gsk_private_vulkan_source_h = \
|
||||
gskvulkanblendpipelineprivate.h \
|
||||
gskvulkanbufferprivate.h \
|
||||
gskvulkancolorpipelineprivate.h \
|
||||
|
@@ -604,7 +604,6 @@ gsk_gl_renderer_add_render_item (GskGLRenderer *self,
|
||||
RenderItem *parent)
|
||||
{
|
||||
graphene_rect_t viewport;
|
||||
graphene_rect_t bounds;
|
||||
RenderItem item;
|
||||
RenderItem *ritem = NULL;
|
||||
int program_id;
|
||||
@@ -618,24 +617,22 @@ gsk_gl_renderer_add_render_item (GskGLRenderer *self,
|
||||
if (scale_factor < 1)
|
||||
scale_factor = 1;
|
||||
|
||||
gsk_render_node_get_bounds (node, &bounds);
|
||||
|
||||
item.node = node;
|
||||
item.name = node->name != NULL ? node->name : "unnamed";
|
||||
|
||||
/* The texture size */
|
||||
item.size.width = bounds.size.width * scale_factor;
|
||||
item.size.height = bounds.size.height * scale_factor;
|
||||
item.size.width = node->bounds.size.width * scale_factor;
|
||||
item.size.height = node->bounds.size.height * scale_factor;
|
||||
|
||||
/* Each render item is an axis-aligned bounding box that we
|
||||
* transform using the given transformation matrix
|
||||
*/
|
||||
item.min.x = bounds.origin.x;
|
||||
item.min.y = bounds.origin.y;
|
||||
item.min.x = node->bounds.origin.x;
|
||||
item.min.y = node->bounds.origin.y;
|
||||
item.min.z = 0.f;
|
||||
|
||||
item.max.x = item.min.x + bounds.size.width;
|
||||
item.max.y = item.min.y + bounds.size.height;
|
||||
item.max.x = item.min.x + node->bounds.size.width;
|
||||
item.max.y = item.min.y + node->bounds.size.height;
|
||||
item.max.z = 0.f;
|
||||
|
||||
/* The location of the item, in normalized world coordinates */
|
||||
@@ -763,17 +760,14 @@ gsk_gl_renderer_add_render_item (GskGLRenderer *self,
|
||||
|
||||
default:
|
||||
{
|
||||
graphene_rect_t bounds;
|
||||
cairo_surface_t *surface;
|
||||
cairo_t *cr;
|
||||
|
||||
gsk_render_node_get_bounds (node, &bounds);
|
||||
|
||||
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
|
||||
ceil (bounds.size.width),
|
||||
ceil (bounds.size.height));
|
||||
ceil (node->bounds.size.width),
|
||||
ceil (node->bounds.size.height));
|
||||
cr = cairo_create (surface);
|
||||
cairo_translate (cr, -bounds.origin.x, -bounds.origin.y);
|
||||
cairo_translate (cr, -node->bounds.origin.x, -node->bounds.origin.y);
|
||||
|
||||
gsk_render_node_draw (node, cr);
|
||||
|
||||
|
@@ -616,7 +616,7 @@ gsk_renderer_unrealize (GskRenderer *renderer)
|
||||
* using the given #GdkDrawingContext.
|
||||
*
|
||||
* The @renderer will acquire a reference on the #GskRenderNode tree while
|
||||
* the rendering is in progress, and will make the tree immutable.
|
||||
* the rendering is in progress.
|
||||
*
|
||||
* Since: 3.90
|
||||
*/
|
||||
@@ -635,7 +635,6 @@ gsk_renderer_render (GskRenderer *renderer,
|
||||
g_return_if_fail (context == priv->drawing_context);
|
||||
|
||||
priv->root_node = gsk_render_node_ref (root);
|
||||
gsk_render_node_make_immutable (priv->root_node);
|
||||
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
gsk_profiler_reset (priv->profiler);
|
||||
|
@@ -35,8 +35,8 @@
|
||||
*
|
||||
* Render nodes are meant to be transient; once they have been associated
|
||||
* to a #GskRenderer it's safe to release any reference you have on them.
|
||||
* Once a #GskRenderNode has been rendered, it is marked as immutable, and
|
||||
* cannot be modified.
|
||||
* All #GskRenderNodes are immutable, you can only specify their properties
|
||||
* during construction.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
@@ -68,13 +68,11 @@ G_DEFINE_BOXED_TYPE (GskRenderNode, gsk_render_node,
|
||||
static void
|
||||
gsk_render_node_finalize (GskRenderNode *self)
|
||||
{
|
||||
self->is_mutable = TRUE;
|
||||
|
||||
self->node_class->finalize (self);
|
||||
|
||||
g_clear_pointer (&self->name, g_free);
|
||||
|
||||
g_slice_free1 (self->node_class->struct_size, self);
|
||||
g_free (self);
|
||||
}
|
||||
|
||||
/*< private >
|
||||
@@ -84,14 +82,14 @@ gsk_render_node_finalize (GskRenderNode *self)
|
||||
* Returns: (transfer full): the newly created #GskRenderNode
|
||||
*/
|
||||
GskRenderNode *
|
||||
gsk_render_node_new (const GskRenderNodeClass *node_class)
|
||||
gsk_render_node_new (const GskRenderNodeClass *node_class, gsize extra_size)
|
||||
{
|
||||
GskRenderNode *self;
|
||||
|
||||
|
||||
g_return_val_if_fail (node_class != NULL, NULL);
|
||||
g_return_val_if_fail (node_class->node_type != GSK_NOT_A_RENDER_NODE, NULL);
|
||||
|
||||
self = g_slice_alloc0 (node_class->struct_size);
|
||||
self = g_malloc0 (node_class->struct_size + extra_size);
|
||||
|
||||
self->node_class = node_class;
|
||||
|
||||
@@ -100,8 +98,6 @@ gsk_render_node_new (const GskRenderNodeClass *node_class)
|
||||
self->min_filter = GSK_SCALING_FILTER_NEAREST;
|
||||
self->mag_filter = GSK_SCALING_FILTER_NEAREST;
|
||||
|
||||
self->is_mutable = TRUE;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@@ -180,7 +176,7 @@ gsk_render_node_get_bounds (GskRenderNode *node,
|
||||
g_return_if_fail (GSK_IS_RENDER_NODE (node));
|
||||
g_return_if_fail (bounds != NULL);
|
||||
|
||||
node->node_class->get_bounds (node, bounds);
|
||||
graphene_rect_init_from_rect (bounds, &node->bounds);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -237,23 +233,6 @@ gsk_render_node_get_name (GskRenderNode *node)
|
||||
return node->name;
|
||||
}
|
||||
|
||||
/*< private >
|
||||
* gsk_render_node_make_immutable:
|
||||
* @node: a #GskRenderNode
|
||||
*
|
||||
* Marks @node, and all its children, as immutable.
|
||||
*/
|
||||
void
|
||||
gsk_render_node_make_immutable (GskRenderNode *node)
|
||||
{
|
||||
if (!node->is_mutable)
|
||||
return;
|
||||
|
||||
node->node_class->make_immutable (node);
|
||||
|
||||
node->is_mutable = FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
* gsk_render_node_draw:
|
||||
* @node: a #GskRenderNode
|
||||
@@ -279,14 +258,11 @@ gsk_render_node_draw (GskRenderNode *node,
|
||||
|
||||
if (!GSK_RENDER_MODE_CHECK (GEOMETRY))
|
||||
{
|
||||
graphene_rect_t frame;
|
||||
|
||||
gsk_render_node_get_bounds (node, &frame);
|
||||
GSK_NOTE (CAIRO, g_print ("CLIP = { .x = %g, .y = %g, .width = %g, .height = %g }\n",
|
||||
frame.origin.x, frame.origin.y,
|
||||
frame.size.width, frame.size.height));
|
||||
node->bounds.origin.x, node->bounds.origin.y,
|
||||
node->bounds.size.width, node->bounds.size.height));
|
||||
|
||||
cairo_rectangle (cr, frame.origin.x, frame.origin.y, frame.size.width, frame.size.height);
|
||||
cairo_rectangle (cr, node->bounds.origin.x, node->bounds.origin.y, node->bounds.size.width, node->bounds.size.height);
|
||||
cairo_clip (cr);
|
||||
}
|
||||
|
||||
@@ -298,12 +274,9 @@ gsk_render_node_draw (GskRenderNode *node,
|
||||
|
||||
if (GSK_RENDER_MODE_CHECK (GEOMETRY))
|
||||
{
|
||||
graphene_rect_t frame;
|
||||
|
||||
gsk_render_node_get_bounds (node, &frame);
|
||||
|
||||
cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
|
||||
cairo_rectangle (cr, frame.origin.x - 1, frame.origin.y - 1, frame.size.width + 2, frame.size.height + 2);
|
||||
cairo_rectangle (cr, node->bounds.origin.x - 1, node->bounds.origin.y - 1,
|
||||
node->bounds.size.width + 2, node->bounds.size.height + 2);
|
||||
cairo_set_line_width (cr, 2);
|
||||
cairo_set_source_rgba (cr, 0, 0, 0, 0.5);
|
||||
cairo_stroke (cr);
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -23,8 +23,7 @@ struct _GskRenderNode
|
||||
GskScalingFilter min_filter;
|
||||
GskScalingFilter mag_filter;
|
||||
|
||||
/* Bit fields; leave at the end */
|
||||
gboolean is_mutable : 1;
|
||||
graphene_rect_t bounds;
|
||||
};
|
||||
|
||||
struct _GskRenderNodeClass
|
||||
@@ -33,16 +32,11 @@ struct _GskRenderNodeClass
|
||||
gsize struct_size;
|
||||
const char *type_name;
|
||||
void (* finalize) (GskRenderNode *node);
|
||||
void (* make_immutable) (GskRenderNode *node);
|
||||
void (* draw) (GskRenderNode *node,
|
||||
cairo_t *cr);
|
||||
void (* get_bounds) (GskRenderNode *node,
|
||||
graphene_rect_t *bounds);
|
||||
};
|
||||
|
||||
GskRenderNode *gsk_render_node_new (const GskRenderNodeClass *node_class);
|
||||
|
||||
void gsk_render_node_make_immutable (GskRenderNode *node);
|
||||
GskRenderNode *gsk_render_node_new (const GskRenderNodeClass *node_class, gsize extra_size);
|
||||
|
||||
void gsk_render_node_get_bounds (GskRenderNode *node,
|
||||
graphene_rect_t *frame);
|
||||
|
@@ -171,20 +171,20 @@ gsk_vulkan_render_pass_upload_fallback (GskVulkanRenderPass *self,
|
||||
GskVulkanRender *render,
|
||||
GskVulkanUploader *uploader)
|
||||
{
|
||||
graphene_rect_t bounds;
|
||||
GskRenderNode *node;
|
||||
cairo_surface_t *surface;
|
||||
cairo_t *cr;
|
||||
|
||||
gsk_render_node_get_bounds (op->node, &bounds);
|
||||
node = op->node;
|
||||
|
||||
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
|
||||
ceil (bounds.size.width),
|
||||
ceil (bounds.size.height));
|
||||
ceil (node->bounds.size.width),
|
||||
ceil (node->bounds.size.height));
|
||||
cr = cairo_create (surface);
|
||||
cairo_translate (cr, -bounds.origin.x, -bounds.origin.y);
|
||||
cairo_translate (cr, -node->bounds.origin.x, -node->bounds.origin.y);
|
||||
|
||||
gsk_render_node_draw (node, cr);
|
||||
|
||||
gsk_render_node_draw (op->node, cr);
|
||||
|
||||
cairo_destroy (cr);
|
||||
|
||||
op->source = gsk_vulkan_image_new_from_data (uploader,
|
||||
@@ -303,26 +303,20 @@ gsk_vulkan_render_pass_collect_vertex_data (GskVulkanRenderPass *self,
|
||||
case GSK_VULKAN_OP_SURFACE:
|
||||
case GSK_VULKAN_OP_TEXTURE:
|
||||
{
|
||||
graphene_rect_t bounds;
|
||||
|
||||
gsk_render_node_get_bounds (op->render.node, &bounds);
|
||||
op->render.vertex_offset = offset + n_bytes;
|
||||
gsk_vulkan_blend_pipeline_collect_vertex_data (GSK_VULKAN_BLEND_PIPELINE (op->render.pipeline),
|
||||
data + n_bytes + offset,
|
||||
&bounds);
|
||||
&op->render.node->bounds);
|
||||
n_bytes += op->render.vertex_count;
|
||||
}
|
||||
break;
|
||||
|
||||
case GSK_VULKAN_OP_COLOR:
|
||||
{
|
||||
graphene_rect_t bounds;
|
||||
|
||||
gsk_render_node_get_bounds (op->render.node, &bounds);
|
||||
op->render.vertex_offset = offset + n_bytes;
|
||||
gsk_vulkan_color_pipeline_collect_vertex_data (GSK_VULKAN_COLOR_PIPELINE (op->render.pipeline),
|
||||
data + n_bytes + offset,
|
||||
&bounds,
|
||||
&op->render.node->bounds,
|
||||
gsk_color_node_peek_color (op->render.node));
|
||||
n_bytes += op->render.vertex_count;
|
||||
}
|
||||
|
@@ -165,7 +165,6 @@ gtk_snapshot_finish (GtkSnapshot *snapshot)
|
||||
* @keep_coordinates: If %TRUE, the current offset and clip will be kept.
|
||||
* Otherwise, the clip will be unset and the offset will be reset to
|
||||
* (0, 0).
|
||||
* @bounds: the bounds for the new node
|
||||
* @name: (transfer none): a printf() style format string for the name for the new node
|
||||
* @...: arguments to insert into the format string
|
||||
*
|
||||
@@ -540,7 +539,7 @@ gtk_snapshot_push_shadow (GtkSnapshot *snapshot,
|
||||
* Removes the top element from the stack of render nodes,
|
||||
* making the node underneath the current node again.
|
||||
*
|
||||
* Returns: (transfer full) (allow none): A #GskRenderNode for
|
||||
* Returns: (transfer full) (nullable): A #GskRenderNode for
|
||||
* the contents that were rendered to @snapshot since
|
||||
* the corresponding gtk_snapshot_push() call
|
||||
*
|
||||
@@ -632,8 +631,8 @@ gtk_snapshot_translate_2d (GtkSnapshot *snapshot,
|
||||
/**
|
||||
* gtk_snapshot_get_offset:
|
||||
* @snapshot: a #GtkSnapshot
|
||||
* @x: (out allow-none): return location for x offset
|
||||
* @y: (out allow-none): return location for y offset
|
||||
* @x: (out) (optional): return location for x offset
|
||||
* @y: (out) (optional): return location for y offset
|
||||
*
|
||||
* Queries the offset managed by @snapshot. This offset is the
|
||||
* accumulated sum of calls to gtk_snapshot_translate_2d().
|
||||
|
Reference in New Issue
Block a user