Alexander Larsson
22110ef5a4
gsk: Add bounds member to RenderNode
...
Instead of constantly recalculating this (especially recursively for
parents!) we do it only on construction, because everything is
immutable anyway. Also, most nodes had a bounds already and can
use the new parent member instead.
We also do direct access to the node bounds rather than calling
gsk_render_node_get_bounds in various places, which means
we do less copying.
2016-12-21 14:01:34 +01:00
Alexander Larsson
2d4b46f4f9
gsk: Drop gsk_render_node_make_immutable, nodes are always immutable
2016-12-21 14:01:34 +01:00
Alexander Larsson
4ee45b76ca
gsk docs: gsk_render_node_iter_get_type doesn't exist anymore
2016-12-21 14:01:34 +01:00
Baurzhan Muftakhidinov
cfade39459
Update Kazakh translation
2016-12-21 10:56:38 +00:00
Christian Kirbach
24eeea46fa
Update German translation
...
(cherry picked from commit e0856226c5
)
2016-12-20 19:11:43 +00:00
Benjamin Otte
def94f03e2
debug: Add GTK_DEBUG=snapshot
...
This causes the snapshotting algorithm to dump all widget nodes into
their own container node. We then name that group accordingly (ie
"GtkSwitch<0xdeadbeef>") so you can easily see which node belongs where.
The feature is toggleable in the inspector's visual tab.
There's a few problems with it, becuse GtkSnapshot optimized container
nodes away if they are not needed, so we are losing some widgets...
2016-12-20 19:26:40 +01:00
Benjamin Otte
acaa04c031
revealer: Implement snapshot()
...
The revealer needs to clip the child during animations, whcih draw() did
automatically, but snapshot() does not.
2016-12-20 19:26:40 +01:00
Benjamin Otte
c4065b9ee0
API: Export gtk_container_snapshot_child()
...
It's equivalent to gtk_container_propagate_draw() and then one is
public, too.
2016-12-20 19:26:40 +01:00
Benjamin Otte
22a657004b
debug: Remove pixel-cache debug categories
...
We have no more pixel cache, so they are kind of useless.
2016-12-20 19:26:40 +01:00
Debarshi Ray
2cbe057351
flowbox: Don't emit child-activated while dragging the pointer
...
https://bugzilla.gnome.org/show_bug.cgi?id=776306
2016-12-20 18:48:03 +01:00
Benjamin Otte
1b553478f6
cssimageradial: Handle "partial" gradients correctly
...
When the first/last color stop is not at 0%/100%, we need to start the
repeating at their offsets and not at 0%/100%.
Attached reftest demonstrates the problem.
2016-12-20 18:01:12 +01:00
Benjamin Otte
6c20ddc119
searchbar: Implement snapshot()
2016-12-20 18:01:12 +01:00
Benjamin Otte
0dbdf0c428
gadget: Remove gtk_css_gadget_draw()
...
And with it, remove the draw func from custom gadgets, that has been
NULL everywhere.
All gadgets are snapshot now.
2016-12-20 18:01:12 +01:00
Benjamin Otte
613194a246
colorswatch: Implement snapshot
2016-12-20 18:01:12 +01:00
Benjamin Otte
4d9eedafcd
roundedbox: Add gtk_rounded_boxes_init_for_style()
...
Instead of making people intiialize a rectangle and then applying border
radius manually, provide a constructor that does it for them.
While doing that, also allow people to instead request the padding box
or the content box.
Refactor all relevant code to use this new constructor.
2016-12-20 18:01:12 +01:00
Benjamin Otte
95a2a5c54c
gtk: Remove GtkJunctionSides
2016-12-20 18:01:12 +01:00
Benjamin Otte
f2f5941d65
testgtk: Remove resize grips example
...
Resize grips are gone. And just showing an empty window is not terribly
exciting.
2016-12-20 18:01:12 +01:00
Benjamin Otte
3f75b11982
frame: Implement snapshot()
2016-12-20 18:01:12 +01:00
Benjamin Otte
c87db76cb5
iconview: Implement snapshot()
2016-12-20 18:01:12 +01:00
Benjamin Otte
94e906c802
cellview: Implement snapshot()
...
This also adds gtk_cell_area_snapshot().
2016-12-20 18:01:12 +01:00
Benjamin Otte
2034e83a20
gsk: Add GskOutsetShadowNode
2016-12-20 18:01:12 +01:00
Benjamin Otte
fcc1f554d6
gsk: Add GskInsetShadowNode
...
And again lots of shadow code gets copied to GSK. But we're now almost
at a stage where widget-factory does not use cairo nodes anymore.
2016-12-20 18:01:12 +01:00
Benjamin Otte
4fc64ae3dd
gsk: Add contains/intersect functions for GskRoundedRect
...
... and use them.
2016-12-20 18:01:12 +01:00
Benjamin Otte
2480e0d575
gsk: Add GskShadowNode
...
... and make the icon rendering code use it.
This requires moving even more shadow renering code into GSK, but so be
it. At least the "shadows not implemented" warning is now gone!
2016-12-20 18:01:12 +01:00
Benjamin Otte
071c9a8221
API: gdk: Add gdk_rgba_is_clear() and gdk_rgba_is_opaque()
...
I want to use these inside GSK, and I'm not a fan of putting GdkRGBA
APIs into it or duplicating it into GTK.
So public API it is.
2016-12-20 18:01:12 +01:00
Benjamin Otte
15e8a22f08
gsk: Move gtk/gtkcairoblur.c to gsk/gskcairoblur.c
2016-12-20 18:01:11 +01:00
Benjamin Otte
6e31fc4300
inspector: Print node type in node properties
2016-12-20 18:01:11 +01:00
Benjamin Otte
75b76af221
gsk: Add GskBorderNode
...
The node draws a solid CSS border, which can be used to cover everything
but dashed and dotted borders (double, groove, inset, ...).
For different border styles, we overlay multiple nodes and set their
colors to transparent for sides with non-matching styles.
2016-12-20 18:01:11 +01:00
Benjamin Otte
9af468cdec
gtk: Remove unused argument from function
2016-12-20 18:01:11 +01:00
Benjamin Otte
a9809e5d30
gsk: Add gsk_rounded_rect_shrink()
...
... and replace _gtk_rounded_box_grow() and _gtk_rounded_box_shrink()
with it.
2016-12-20 18:01:11 +01:00
Benjamin Otte
1760e0d3f3
vulkan: Get rid of color in push constants
...
The color comes in instance data now, no need to abuse push constants
for it.
2016-12-20 18:01:11 +01:00
Benjamin Otte
1b90ce6b33
vulkan: Remove color from push constants
...
It's now handled by the color pipeline.
2016-12-20 18:01:11 +01:00
Benjamin Otte
b04eecf860
vulkan: Pass color rects in instance data
...
This way, we don't need push constants or per-vertex data, we can render
colored rectangles completely via instance data.
2016-12-20 18:01:11 +01:00
Benjamin Otte
4c74695a85
vulkan: Don't pass texture coordinates to the color pipeline
2016-12-20 18:01:11 +01:00
Benjamin Otte
5dfb74c70c
vulkan: Get vertex description from pipeline subclass
2016-12-20 18:01:11 +01:00
Benjamin Otte
b4f04d0c1d
vulkan: Split color and blend pipelines
2016-12-20 18:01:11 +01:00
Benjamin Otte
e68b18aa4e
vulkan: Move vertex data tracking to the pipeline subclass
...
That way, different pipelines can draw different kinds of data.
2016-12-20 18:01:11 +01:00
Benjamin Otte
9aecd6dd56
vulkan: Add GskVulkanBlendPipeline
...
So far that's just a simple pipeline that doesn't do anything.
2016-12-20 18:01:11 +01:00
Benjamin Otte
453478719d
vulkan: Make GskVulkanPipeline derivable
2016-12-20 18:01:11 +01:00
Benjamin Otte
65e9894450
menu: Implement snapshot() for the menu code
2016-12-20 18:01:11 +01:00
Benjamin Otte
e492a63e4c
paned: Implement snapshot()
2016-12-20 18:01:11 +01:00
Benjamin Otte
8ad7c435ca
cssimage: Implement snapshot() for cross-fade
2016-12-20 18:01:11 +01:00
Benjamin Otte
9822fe81a3
snapshot: Implement gtk_snapshot_push_opacity()
...
Use it in GtkWidget's opacity handling.
2016-12-20 18:01:11 +01:00
Benjamin Otte
6b29dbf26a
snapshot: Handle NULL returns in pop_and_append()
2016-12-20 18:01:11 +01:00
Benjamin Otte
30438c6e8b
gsk: Add cross-fade node
...
And implement stack crossfades with it.
2016-12-20 18:01:11 +01:00
Benjamin Otte
3e4fd32b54
vulkan: Batch upload image barriers together
...
Doesn't seem to help much though...
2016-12-20 18:01:11 +01:00
Benjamin Otte
7b9ace488b
vulkan: Add GskVulkanUploader
...
It's the thing that makes sure pixels end up on the GPU.
2016-12-20 18:01:11 +01:00
Benjamin Otte
85559d1fd9
vulkan: Split out command pool
...
This way we can pass the command pool around.
And that allows us to allocate and submitcustom buffers.
And that is necessary to make staging images work.
2016-12-20 18:01:11 +01:00
Benjamin Otte
ba7ac637bc
vulkan: Implement staging-buffer image upload
...
This is not enabled by default. Use GSK_RENDERING_MODE=staging-buffer to
use the code.
2016-12-20 18:01:11 +01:00
Benjamin Otte
81297857cc
snapshot: Convert Range, Scale, ColorScale
...
And of course Scrollbar, but that one does no drawing itself.
2016-12-20 18:01:11 +01:00