| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
When sending render nodes from the client to the daemon we add an id,
and whenever we're about to re-send the entire tree node we instead
send the old id. We track all the nodes for the previous frame
of the surface this way.
Having the id on the daemon side will allow us do to much better deltas.
|
| |
|
|
|
|
|
|
| |
Since nodes are now cached we just store the fallback as a
texture in a hashtable indexed by the node. If its unused for
5 frames we drop it.
|
| |
|
|
|
|
| |
This can be helpful when debugging broadway.
|
|
|
|
| |
These are trivial anyway
|
|
|
|
| |
... and add a property for it.
|
|
|
|
|
| |
Renderers don't need a display until they get realized. And once they
get realized, they can look up the display from the surface.
|
|
|
|
|
|
|
|
|
| |
gsk/gskenums.h:181: Error: Gsk: multiple "@GSK_TRANSFORM_CATEGORY_2D" parameters for identifier "GskTransformCategory":
* @GSK_TRANSFORM_CATEGORY_2D: The matrix is a 2D matrix. This is equivalent
^
gsk/gsktransform.c:1342: Warning: Gsk: gsk_transform_to_2d: unknown parameter 'm' in documentation comment, should be 'self'
gsk/gsktransform.c:1368: Warning: Gsk: gsk_transform_to_2d: invalid return annotation
gsk/gsktransform.c:1461: Warning: Gsk: gsk_transform_to_translate: unknown parameter 'm' in documentation comment, should be 'self'
|
|
|
|
| |
That one was missing and killing performance in the fishbowl.
|
| |
|
|
|
|
| |
Otherwise we remove them, causing additional texture uploads.
|
|
|
|
|
| |
This commit adds gsk_transform_perspective(), gtk_snapshot_perspective()
and support for perspective() in the CSS syntax.
|
|
|
|
|
|
|
|
| |
This reinstates diffing in the same way that it worked for offset nodes.
It would be possible to add diffing for affine transforms or even all
transforms, but I think this is unnecessary right now - and also quite
expensive to compute.
|
|
|
|
| |
This is the optimization from bbd4e2f60d9e060fbe3b0c2dcebcd1d6b7335a2a
|
|
|
|
|
|
|
|
|
|
|
| |
Make the API expect a tranform of the proper category instead of
doing the check ourselves and returning TRUE/FALSE.
The benefit is that the mai use case is switch (transform->category)
statements and in those we know the category and don't need to check
TRUE/FALSE.
Using the wrong matrix will now cause a g_warning().
|
|
|
|
|
|
|
|
| |
... instead of computing it every time we need it.
This should be faster and we want to use it a lot more prominently.
Also, we have the struct memory available anyway.
|
|
|
|
|
|
| |
And use it.
And test it.
|
|
|
|
|
| |
This used to be a good idea back when GskTransform was intended to be
used for transitions, but without it, it's not anymore.
|
|
|
|
| |
We were printing the wrong variable.
|
|
|
|
|
| |
This is mainly for accuracy: We can guarantee the math we do for 2D
rotations results in a 2D matrix.
|
|
|
|
| |
Also rename it from GskMatrixCategory to GskTransformCategory.
|
|
|
|
|
| |
It is not interesting to users of GskTransform how it is made up
internally. Users should just use the gsk_transform_to_*() APIs.
|
|
|
|
| |
This is an attempt to push GskTransform deeper into the stack.
|
|
|
|
|
|
|
|
|
|
| |
In particular, add a per-category querying API for the matrix:
- gsk_transform_to_translate()
- gsk_transform_to_affine()
- gsk_transform_to_2d()
- gsk_transform_to_matrix()
This way, code can use the relevant one for the given category.
|
|
|
|
| |
The renaming of the prefix makes this a large patch.
|
|
|
|
| |
Keep it private for now, but it's very useful when debugging.
|
|
|
|
|
|
| |
Since we can do partial redraws, dropping every shadow that's been
unused for one frame happens too fast. This is also a problem when a
shadow gets drawn on a texture for a few frames.
|
|
|
|
|
|
| |
This can happen for certain transform nodes. The transform node's
child's bounds are fine, but the transform node bounds are all nan.
Just ignore those bounds since we can't meaningfully render them anyway.
|
|
|
|
|
|
| |
If the given matrix is explicitly of category IDENTITY, we don't need to
do anything, and in the 2D_TRANSLATE case, just offset the child bounds.
Those are the two most common cases.
|
| |
|
| |
|
|
|
|
|
| |
Some rounded rect intersections can actually be done and even expressed
as a single rounded rectangle.
|
| |
|
|
|
|
|
| |
Use the category we get from transform nodes and add ops_ API to supply
one when we set a graphene_matrix_t directly.
|
|
|
|
|
| |
Both the clip we use and the viewport we set should contain the entire
texture size and not potentially clip the last pixel.
|
| |
|
|
|
|
|
|
| |
The code didn't change, it was just shuffled around to make the
with_bounds() versions of the text rendering unnecessary and instead
pass through the generic append_node() path.
|
|
|
|
| |
This is adding functions for the remaining render nodes.
|
|
|
|
|
|
|
|
|
| |
They were a neat idea while they lasted. But now, it's time for
categorized transform nodes, where matrices with
GSK_MATRIX_CATEGORY_2D_TRANSLATE are the exact replacement.
Renderers have not been adapted for this purpose, so they (continue to)
run slow paths.
|
|
|
|
| |
We'll use that soon.
|
|
|
|
|
|
|
|
|
|
| |
The first set of glyphs is created with a timestamp of 1. Later we
subtract the glyph timestamp from the cache timestamp, meaning we end up
with numbers ending in 9, e.g. 59. Now unfortunately !(60 <= 59), so we
do not end up incrasing the old_pixels count of the cache. Later we then
call lookup() and DEcrease the old_pixels count, which makes the
unsigned int wrap and cause a huge old_pixels value, which causes us to
drop the cache.
|
|
|
|
| |
We don't use it after we've rendered to it, just its size and data.
|
|
|
|
|
|
| |
The @filename@ directive will use the full path of the file being parsed
for enumeration types; we should use @basename@, instead, as it improves
the reproducibility of the build by using only the file name.
|
|
|
|
|
|
|
|
|
| |
Some of the flags got lost in the meson transition or were demoted from
error flags to warning flags.
This commit reintroduces them.
It also includes fixes for the code that had warnings with those flags.
The big one being -Wshadow.
|
|
|
|
| |
We usually want to do that, but it's wrong for e.g. crossfade nodes.
|
| |
|
|
|
|
|
|
| |
This broke the overlay blur demoe when resizing the window to a size
that would completely move the image below a button, causing the
GtkSnapshot code to remove the clip node below the blur node.
|
|
|
|
| |
Fixes #1475
|
| |
|