Benjamin Otte
c99b46c46d
tests: Add another test
...
In this test, Cairo is almost as fast as Vulkan. I wonder why.
2016-12-25 06:23:12 +01:00
Benjamin Otte
5878f9d8af
vulkan: Add shader for color drawing with rectangle clip
2016-12-25 06:23:12 +01:00
Benjamin Otte
b30225e67c
vulkan: We use VK_FORMAT_B8G8R8A8_UNORM
...
... not SRGB. SRGB messes up alpha compositing, GdkRGBA and everything
else.
2016-12-25 06:23:12 +01:00
Marek Černocký
16a9a82021
Updated Czech translation
2016-12-24 14:40:35 +01:00
Benjamin Otte
aa0ec774bf
vulkan: Add proof-of-concept clip implementation
...
We can now clip to cicular rounded rectangles when drawing colors.
2016-12-24 06:19:16 +01:00
Benjamin Otte
81c487b841
vulkan: Fold clip into push constants
...
As a side effect, the clipping data is now available inside shaders.
Not that any shader would use them yet, but they could!
2016-12-24 06:19:16 +01:00
Benjamin Otte
18b65a2378
vulkan: Change handling of push constants
...
Instead of storing the wire format, store the true structs and only
convert to the wire format when needed.
2016-12-24 06:19:16 +01:00
Benjamin Otte
b11b7dfb1a
gsk: Add debug category for fallbacks
...
... and use it for the cases in Vulkan where we fall back to Cairo.
2016-12-24 06:19:16 +01:00
Benjamin Otte
2bca24c455
gsk: Add GskVulkanClip
...
This is now tracking the clips added by the clip nodes.
If any particular node can't deal with a clip, it falls back to Cairo
rendering. But if it can, it will render it directly.
2016-12-24 06:19:16 +01:00
Benjamin Otte
1d84555729
iconhelper: Invalidate style before accessing texture
...
Invalidating the style might cause invalidation of the texture. So we
end up with a pointer to freed memory.
SAD!
2016-12-24 06:19:16 +01:00
Benjamin Otte
89d38ae93f
vulkan: Try combining draw calls
...
This gives a 5-7% speedup in the case where we're just drawing N colors
and nothing else. So it;s not tremendously useful, but noticeable.
2016-12-24 06:19:16 +01:00
Garrett Regier
23d10df6c6
gsk: Fix memory leak in gsk_render_node_write_to_file()
2016-12-23 07:22:41 -08:00
Piotr Drąg
2750bb5e87
Update POTFILES.in
2016-12-23 16:18:23 +01:00
Benjamin Otte
6cc08d60ef
calendar: Implement snapshot()
2016-12-23 12:07:22 +01:00
Benjamin Otte
b97e4e8631
tests: Improve rendernode test further
...
- Print benchmark output in fallback path
- Always run rendering, even when no filename given
- Don't require a filename when running with --benchmark
2016-12-23 11:31:35 +01:00
Benjamin Otte
a36e5ceea7
cellrenderer: Remove render() vfunc
...
Make the last 2 cell renderers create the cairo node themselves.
2016-12-23 11:11:52 +01:00
Benjamin Otte
513a8c46af
cellrendererpixbuf: Implement snapshot()
2016-12-23 10:50:04 +01:00
Benjamin Otte
a0f65d16bc
cellrendererprogress: Implement snapshot()
2016-12-23 10:44:49 +01:00
Benjamin Otte
b901572d86
cellrenderertoggle: Implement snapshot()
2016-12-23 09:31:54 +01:00
Benjamin Otte
c412a717f1
cellrenderertext: Implement snapshot()
2016-12-23 09:23:07 +01:00
Benjamin Otte
677c5bdedf
cellrenderer: Move snapshotting down into cell renderers
...
Now that every call to GtkCellArea is a snapshot call and no more cairo
calls are left, move the actual differentiation between Cairo and
Snapshot down to the cell renderer.
2016-12-23 09:23:04 +01:00
Benjamin Otte
af6e7cc169
tests: Add rendernode-create-tests
...
Little tool that creates a bunch of test files to throw add the
rendernode binary.
They should really be part of a testsuite, but we have none, so OI just
put them here.
2016-12-23 08:11:01 +01:00
Benjamin Otte
4bb0c70c11
gsk: Add docs and error handling to serialization API
2016-12-23 08:11:01 +01:00
Benjamin Otte
4e866ec06b
tests: Add some command-line flags to rendernode
2016-12-23 08:11:01 +01:00
Benjamin Otte
5e089c4345
gsk: Add gsk_render_node_write_to_file()
...
For when you're in a debugger and need to have a closer look at this
node...
2016-12-23 08:11:01 +01:00
Benjamin Otte
087ea8e531
gsk: Warn on cairo errors during gsk_render_node_draw()
...
It's the same warning we use inside GTK for when stuff weirdly goes
wrong.
2016-12-23 08:11:01 +01:00
Benjamin Otte
08f9a6078b
gsk: Include config.h
...
The more you know:
Not including config.h causes the public API implemented in this file to
not be exported in the resulting library.
2016-12-23 08:11:01 +01:00
Benjamin Otte
adcde3034e
gsk: Implement gsk_renderer_render_texture() on GL
2016-12-23 08:11:01 +01:00
Benjamin Otte
786d3a013e
vulkan: Implement gsk_renderer_render_texture()
2016-12-23 08:11:01 +01:00
Benjamin Otte
b0d5224de5
tests: Use gsk_renderer_render_texture()
...
Only keep the version that calls gsk_render_node_draw() if people
specify the --fallback option.
The actual renderer selection works just as for regular GTK. The easiest
way to influence it is setting the GSK_RENDERER environment variable.
2016-12-23 08:11:01 +01:00
Benjamin Otte
6c56793147
gsk: Add gsk_texture_download() API
...
Now users can download pixels and make everything slooooooow.
2016-12-23 08:11:01 +01:00
Benjamin Otte
d58799ff7a
gdk: Export gdk_cairo_surface_paint_pixbuf() into private header
2016-12-23 08:11:01 +01:00
Benjamin Otte
be8c999fe8
docs: Add GskTexture
2016-12-23 08:11:01 +01:00
Benjamin Otte
2d2209859e
gsk: Rename to gsk_texture_download_surface()
...
I want to reuse the name gsk_texture_download() for downloading the
actual bytes.
2016-12-23 08:11:01 +01:00
Benjamin Otte
373e08d6d4
gsk: Add gsk_renderer_render_texture()
...
... and implement it for the Cairo renderer.
It's an API that instructs a renderer to render to a texture.
So far this is mostly meant to be used for testing, but I could imagine
it being useful for rendering DND icons.
2016-12-23 08:11:01 +01:00
Benjamin Otte
98086014d8
gskcairo: Don't store the viewport in the global struct
...
Just query it locally.
2016-12-23 08:11:01 +01:00
Benjamin Otte
d2622d93ad
gsk: Don't overdraw with transparent
...
That code doesn't do anything.
And what the code should be doing (clearing the abckground) isn't
necessary as cairo drawing is guaranteed to clear the surface.
2016-12-23 08:11:01 +01:00
Benjamin Otte
df5e12fc1d
rendernode: Fix typo
2016-12-23 08:11:00 +01:00
Benjamin Otte
814b66e1a8
gsk: Remove nonexisting functions
...
The function was removed when gsk_render_node_draw() was and
gsk_renderer_realize() was refactored respectively.
2016-12-23 08:11:00 +01:00
Benjamin Otte
b4ac7ffed4
tests: Add a simple test to convert rendernode to png
...
Takes a rendernode file, outputs a PNG. Nothing more.
2016-12-23 08:11:00 +01:00
Benjamin Otte
735846cc82
gsk: Export gsk_render_node_get_bounds()
...
I'll need it in tests/testsuite soon.
2016-12-23 08:11:00 +01:00
Benjamin Otte
91c71b10e6
inspector: Add a render node save button
...
Now we can select buggy nodes, save them to a file, and add that file to
our testsuite.
2016-12-23 08:11:00 +01:00
Benjamin Otte
c88d279416
gsk: Add gsk_render_node_serialize/deserialize()
...
This does a conversion to/from GBytes and is intended for writing tests.
It's really crude but it works.
And that probably means Alex will (ab)use it for broadway.
2016-12-23 08:11:00 +01:00
Benjamin Otte
3a38bc9bf7
gsk: Remove spread member from GskShadow
...
I had originally thought I'd use GskShadow for box-shadow, but didn't in
the end.
So now it's only used for text-shadow and icon-shadow, and those don't
have a spread.
2016-12-23 08:11:00 +01:00
Marek Černocký
5fa1733944
Updated Czech translation
2016-12-22 23:50:53 +01:00
Benjamin Otte
0efeaf9508
treeview: Port rest of stuff to snapshot()
...
The only thing still drawn with Cairo are grid lines.
2016-12-22 03:37:32 +01:00
Benjamin Otte
f1825f5eff
treeview: Partially convert to snapshot()
...
The big fat scary bin drawing function that actually draws the cell
renderers - that one is still missing.
2016-12-22 03:37:32 +01:00
Chun-wei Fan
23edff1606
gtkcssimagelinear.c: Avoid VLAs
...
VLAs are not supported by Visual Studio and possibly other compilers that
are supported by GTK+-3.90+, and probably never will be, although it is a
C99 specification, and it became optional for C11. It is also not a part
of the newer compiler requirements that are listed out for GTK+-3.90.x.
There exist concerns about the implementation of VLAs in compilers that
support them as well, so change it to a g_newa() approach.
https://bugzilla.gnome.org/show_bug.cgi?id=773299
2016-12-22 08:40:32 +08:00
Matthias Clasen
e64947662a
3.89.2
2016-12-21 14:12:31 -05:00
Matthias Clasen
a2f0c860ee
Fix distcheck
2016-12-21 14:12:31 -05:00