Benjamin Otte
9048d40bc2
vulkan: Fix mask shader to premultiply color
...
The inColor wasn't premultiplied, so the resulting colors were wrong
with translucent borders.
2017-12-02 16:21:58 +01:00
Benjamin Otte
abc8d61730
vulkan: Fix border shader to premultiply color
...
The inColor wasn't premultiplied, so the resulting colors were wrong
with translucent borders.
2017-12-02 16:21:58 +01:00
Timm Bäder
34e233e1c3
GskVulkanGlyphCache: Remove unused struct member
2017-12-01 07:30:25 +01:00
Alexander Larsson
521b09cc96
broadway: Send diffs of node trees
...
Reusing pre-created nodes is a lot faster both in terms of
dom modifications and of transfer sizes.
2017-11-30 21:57:42 +01:00
Matthias Clasen
9b582db492
gsk: Quiet a compiler warning
...
We insist on handling all cases in a switch, nowadays.
2017-11-24 08:51:22 -05:00
Alexander Larsson
820f999f14
broadway: Disable fallback spew by default
2017-11-23 10:48:29 +01:00
Alexander Larsson
12d3cd8f29
broadway: Handle cairo nodes
...
This means we can directly upload these as textures, rather than
create a new surface and draw it into that. We still have to upload,
but there isn't a lot we can do about this as for these nodes
we generally redraw everything each time.
2017-11-23 10:48:29 +01:00
Alexander Larsson
4d1eca0d57
broadway: Handle texture gsd nodes
2017-11-23 10:48:29 +01:00
Alexander Larsson
b74959a605
broadway: Add clip node
2017-11-23 10:48:29 +01:00
Alexander Larsson
7a180f554d
broadway: Don't log cache hits
2017-11-23 10:48:29 +01:00
Alexander Larsson
0d4a26f148
broadway: Cache color translated textures
...
These happen a lot due to the recolored symbolics
2017-11-23 10:48:29 +01:00
Alexander Larsson
9e5a22bbe5
broadway: Add opacity node
2017-11-23 10:48:29 +01:00
Alexander Larsson
9b1f6acc2b
broadway: Add shadow node
2017-11-23 10:48:29 +01:00
Alexander Larsson
cbbbf49043
broadway: Add node cache for text
2017-11-23 10:48:29 +01:00
Alexander Larsson
278370c8e5
broadway: Add linear gradient node
2017-11-23 10:48:29 +01:00
Alexander Larsson
f7ff6dbb66
broadway: Add RoundedClip node
2017-11-23 10:48:29 +01:00
Alexander Larsson
0083c084e4
broadway: Add inset shadow
2017-11-23 10:48:29 +01:00
Alexander Larsson
35ceb8e626
broadway: Add outset shadow node
2017-11-23 10:48:29 +01:00
Alexander Larsson
cf03229a99
broadway: Add border node
2017-11-23 10:48:29 +01:00
Alexander Larsson
0b38ab339e
broadway: Add color nodes
2017-11-23 10:48:29 +01:00
Alexander Larsson
f7d8ee041b
broadway: Initial version of using actual render nodes
2017-11-23 10:48:29 +01:00
Alexander Larsson
23845a57a9
broadway: Add GskBroadwayRenderer
...
This is a custom renderer for broadway windows, although at the
moment it doesn't really do anything other than the old cairo
fallbacks.
2017-11-23 10:46:47 +01:00
Emmanuele Bassi
481b5d1b89
Partially revert GskTexture → GdkTexture rename
...
Excessive use of sed when moving GskTexture to GDK; the GskTextureNode
should still live under the GSK namespace.
2017-11-04 15:06:00 +00:00
Benjamin Otte
bd287ba3cf
renderer: Assert having been unrealized in dispose
...
We cannot unrealize a renderer in the dispose function, because that
would cause this chain to happen:
gsk_gl_renderer_dispose
gsk_renderer_dispose
gsk_renderer_unrealize
gsk_gl_renderer_unrealize
So we would call into thje GL renderers unrealize when it has already
(partially) disposed itself and ause accesses to dead variables.
2017-11-04 15:22:25 +01:00
Benjamin Otte
ca3c23662c
GskTexture => GdkTexture
...
We want this thing to replace GdkPixbuf, so it has to live in GDK.
2017-11-04 00:07:13 +01:00
Benjamin Otte
6b3d979196
gskgl: Deal with being rerealized
2017-11-01 15:48:00 +01:00
Matthias Clasen
ca7c148687
gsk: Apply scale factor for fallback rendering
...
This fixes blurry text and icons whenever we apply shadows
in a hidpi window. Shadow nodes are the last ones that we
still use fallback for, and this was causing us to render
the text blurry.
2017-10-28 14:38:49 -04:00
Matthias Clasen
439e1054c4
Triival cleanup
...
No need to go to the window, we store a copy of the scale factor
in the render pass object.
2017-10-28 14:38:21 -04:00
Matthias Clasen
a0bbd14325
gsk: Scale glyphs in the glyph cache
...
Pass a scale factor when caching glyphs or looking them
up in the cache. The glyphs in the cache are rendered
with subpixel precision determined by the scale. Update
all callers to pass a scale factor according to the window
scale. This lets us render crisp glyphs on hidpi systems.
2017-10-28 13:13:31 -04:00
Matthias Clasen
dc0570cc17
gsk: Drop the GskRenderer::scale-factor property
...
This is can always be obtained from the window that is already
associated with the renderer, no need to maintain a separate
property for it.
2017-10-28 11:49:39 -04:00
Matthias Clasen
ea91ab1d99
gsk: Make text nodes more compact
...
The copy of the PangoGlyphString we do here was showing up
in some profiles. To avoid it, allocate the PangoGlyphInfo array
as part of the node itself. Update all callers to deal with
the slight api change required for this.
2017-10-27 17:13:40 -04:00
Benjamin Otte
e1572e003a
vulkan: No need to redefine gl_PerVertex
...
The compiler has those predefined, so use them.
2017-10-24 01:29:28 +02:00
Benjamin Otte
e4dbff6bfc
vulkan: Delete unused shaders
...
These have been renamed to .frag/.vert, apparently the originals weren't
deleted.
2017-10-24 01:29:28 +02:00
Emmanuele Bassi
dd4c800542
Remove unnecessary const
...
We return a scalar value, so we don't need it to be constant.
https://bugzilla.gnome.org/show_bug.cgi?id=789351
2017-10-23 15:23:09 +01:00
Matthias Clasen
9e78fbaac4
Fix compiler warnings
...
I overlooked these when I recently did the render node api changes.
2017-10-21 15:17:36 +02:00
Matthias Clasen
e474e9e274
Remove some outdated information
...
Render nodes don't have transformations, currently.
Only transform nodes do.
2017-10-20 13:54:01 +02:00
Matthias Clasen
b76c5abb57
Tweak transform node apis
...
Rename the getter to follow the peek naming scheme.
Update all callers.
2017-10-20 13:54:01 +02:00
Matthias Clasen
04f6b26205
gsk: Tweak text node apis
...
Rename getters to follow the peek naming pattern.
Update all callers.
2017-10-20 13:54:01 +02:00
Matthias Clasen
243bd4f0c8
gsk: Tweak cairo node apis
...
Rename the surface getter to peek, following other render
node getters, and make the surface-based constructor private,
since it is not something we want to encourage.
Update all callers.
2017-10-20 13:54:01 +02:00
Matthias Clasen
eee89587c3
Make render node getter public
...
Keeping these private does not really buy us anything.
2017-10-20 13:54:01 +02:00
Matthias Clasen
b564dd853c
Avoid super-luminous pixels
...
The color-matrix shader was creating pixels with r,g,b > a in
some cases, which leads to unexpected test failures. In particular
this as visible the opacity render node test for opacity 0.
2017-10-19 15:16:54 +02:00
Timm Bäder
af734c4007
rendernode: Don't leak mem_surface
2017-10-10 09:49:35 +02:00
Matthias Clasen
76aa237cce
Fix blendmode shader
...
My reading of the spec formulas was imperfect.
2017-10-08 21:12:22 -04:00
Matthias Clasen
090ec2e56f
Revise coordinate handling for blend nodes
...
This is the same change that was applied to cross-fade
nodes.
2017-10-08 20:06:33 -04:00
Matthias Clasen
5280a2c874
Revise the coordinate handling one more time
...
This makes the new reftests pass and hopefully does not
break other things.
2017-10-08 19:21:52 -04:00
Matthias Clasen
9a9aec05c0
vulkan: Fix cross-fade node coordinates
...
This is the same fix as was just committed for blendmode nodes.
2017-10-08 11:31:55 -04:00
Matthias Clasen
4d7b8f5a66
vulkan: Fix blendmode coordinate handling
...
We were node handling coordinates correctly when dealing
with differently sized child nodes in a blendmode node.
This was showing up in the gtk4-demo css blendmode example,
for blendmodes other than normal.
2017-10-08 09:02:35 -04:00
Matthias Clasen
fe6e80fdde
vulkan: Fix repeat node coordinates
...
We were not treating non-trivial child bounds right at all.
This was visible in the css blendmode cmyk example in gtk4-demo,
for the normal blendmode.
2017-10-08 09:02:35 -04:00
Umang Jain
a933c7c4bd
gsk: Move gsk_cairo_node_new_for_surface into public API
...
https://bugzilla.gnome.org/show_bug.cgi?id=788534
2017-10-08 18:22:34 +05:30
Umang Jain
74f8fc80d3
gsk: Fix serialization of cairo node
...
https://bugzilla.gnome.org/show_bug.cgi?id=788534
2017-10-08 18:22:34 +05:30