| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Adapt all our tests and examples to the new initialization api.
|
|
|
|
| |
Supporting separately initialized gdk is just not worth it.
|
|
|
|
|
| |
This is our ultimate goal: no more commandline argument handling.
Lots of callers will have to be updated.
|
|
|
|
|
| |
Now that gtk_get_option_group and gtk_parse_args are no longer
public, we can get rid of them.
|
|
|
|
| |
We have environment variables that cover this.
|
|
|
|
| |
We don't need it, GLib has an environment variable for this.
|
|
|
|
| |
We don't need it; the environment variable is enough.
|
|
|
|
|
| |
We want to get rid of commandline option handling in GTK+.
This is a step in that direction.
|
|
|
|
|
| |
We want to stop handling commandline arguments, and that is the
sole purpose of this function. So it has to go
|
|
|
|
|
|
| |
We want to simplify our initialization code and remove all commandline
argument handling from it. The first stop for this is to reduce the
number of gtk_init variants we have.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Forces a full redraw every frame.
This is done generically, so it's supported on every renderer.
For widget-factory first page (with the spinner spinning and progressbar
pulsing), I get these numbers per frame:
action clipped full redraw
snapshot 0ms 7-10ms
cairo rendering 0ms 10-15ms
Vulkan rendering 3-5ms 18-20ms
Vulkan expected * 0ms 1-2ms
GL rendering unsupported 55-62ms
* expected means disabling rendering of unsupported render nodes,
instead of doing fallback drawing. So it overestimates the performance,
because borders and box-shadows are disabled.
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's faster to render once for every rectangle in the clip region than
rendering the outline of the clip region.
Especially because this reduces the time necessary to build up the frame
data.
In widget-factory (where we have 3 rectangles), this leads to a 5x
speedup in the rendering time rendering alone.
Snapshotting time goes from 10ms to ~1ms, which is another huge
improvement.
|
|
|
|
|
| |
... and use those in begin_frame() to ensure all of the invalid area
gets invalidated.
|
|
|
|
|
|
|
|
| |
Note: We interpolate premultiplied colors as per the CSS spec. This i
different from Cairo, which interpolates unpremultiplied.
So in testcases with translucent gradients, it's actually Cairo that is
wrong.
|
| |
|
|
|
|
|
|
|
| |
That way, I don't need to recreate all the tests I don't care about.
This is particularly useful when I want to change the size of the
testcase.
|
| |
|
|
|
|
|
| |
I stole one of their shader functions, and if I steal, I might as well
do it right.
|
|
|
|
|
|
|
|
| |
Example:
repeating-linear-gradient(red 50%, blue 50%)
Those gradients in Firefox draw a solid image of the last color, so do
the same here.
|
|
|
|
|
| |
I don't want to sort them later for the shader preparation, so make
sure they come in ordered.
|
|
|
|
|
| |
This makes rendering textures work when the top left of the rendered
texture is not at (0, 0).
|
| |
|
|
|
|
| |
Also, split a MAX() onto its own line to match the others.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Homogeneous branches repeated the calculation/assignment of the initial
space available to children. This avoids that by shuffling some code.
Perhaps more importantly, in doing that, I ended up with some ambiguous
names, and Company and I realised how vague the pre-existing naming was.
"size" becomes "extra_space", as this is what it represents. Conversely,
"extra" becomes "size_given_to_child" (albeit still given out in two
different ways depending on whether the Box is homogeneous). My hope is
that these sections of code are now somewhat less baffling than before!
|
|
|
|
| |
The spacing was already saved in a variable just above.
|
| |
|
| |
|
|
|
|
|
| |
This way we can rerun fast tests lots of times - not so much for
averaging times, but more for sysprof'ing.
|
|
|
|
| |
In this test, Cairo is almost as fast as Vulkan. I wonder why.
|
| |
|
|
|
|
|
| |
... not SRGB. SRGB messes up alpha compositing, GdkRGBA and everything
else.
|
| |
|
|
|
|
| |
We can now clip to cicular rounded rectangles when drawing colors.
|
|
|
|
|
|
| |
As a side effect, the clipping data is now available inside shaders.
Not that any shader would use them yet, but they could!
|
|
|
|
|
| |
Instead of storing the wire format, store the true structs and only
convert to the wire format when needed.
|
|
|
|
| |
... and use it for the cases in Vulkan where we fall back to Cairo.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Invalidating the style might cause invalidation of the texture. So we
end up with a pointer to freed memory.
SAD!
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- Print benchmark output in fallback path
- Always run rendering, even when no filename given
- Don't require a filename when running with --benchmark
|
|
|
|
| |
Make the last 2 cell renderers create the cairo node themselves.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|