| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
For when you're in a debugger and need to have a closer look at this
node...
|
|
|
|
|
| |
It's the same warning we use inside GTK for when stuff weirdly goes
wrong.
|
|
|
|
|
|
| |
The more you know:
Not including config.h causes the public API implemented in this file to
not be exported in the resulting library.
|
| |
|
| |
|
|
|
|
| |
Now users can download pixels and make everything slooooooow.
|
|
|
|
|
| |
I want to reuse the name gsk_texture_download() for downloading the
actual bytes.
|
|
|
|
|
|
|
|
| |
... 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.
|
|
|
|
| |
Just query it locally.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
The function was removed when gsk_render_node_draw() was and
gsk_renderer_realize() was refactored respectively.
|
|
|
|
| |
I'll need it in tests/testsuite soon.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of a separate allocation for any arrays in the render node
we allocate these as part of the render node itself, using C99
flexible arrays.
This leads to less allocations, which is nice, but the major reason
for this is that it allows us to change the allocation scheme further
in the future. For instance, we want to do stack-like allocation so
that all the render-nodes for an entire frame are allocated in one
(or a few) chunks.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
| |
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.
|
|
|
|
| |
... and use them.
|
|
|
|
|
|
|
| |
... 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!
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
... and replace _gtk_rounded_box_grow() and _gtk_rounded_box_shrink()
with it.
|
|
|
|
|
| |
The color comes in instance data now, no need to abuse push constants
for it.
|
|
|
|
| |
It's now handled by the color pipeline.
|
|
|
|
|
| |
This way, we don't need push constants or per-vertex data, we can render
colored rectangles completely via instance data.
|
| |
|
| |
|
| |
|
|
|
|
| |
That way, different pipelines can draw different kinds of data.
|
|
|
|
| |
So far that's just a simple pipeline that doesn't do anything.
|
| |
|
|
|
|
| |
And implement stack crossfades with it.
|
|
|
|
| |
Doesn't seem to help much though...
|
|
|
|
| |
It's the thing that makes sure pixels end up on the GPU.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This is not enabled by default. Use GSK_RENDERING_MODE=staging-buffer to
use the code.
|
|
|
|
|
| |
That function does actually sometimes return NULL and is documented to
do so, so handle that case in the renderers (by omitting the node).
|
| |
|
|
|
|
| |
Implement blend mode support in GTK background compositing with it.
|
|
|
|
| |
This brings GSK blend modes in line with the CSS spec.
|
|
|
|
| |
And use it to draw solid colors with a 2nd pipeline.
|
|
|
|
| |
This way, we can share the layout between different pipelines.
|