Timm Bäder
d12dde07c3
gl renderer: Fix program uniform updating code
...
This breaks the initial uniform value, but we will fix that in a later
commit in a different way.
2020-01-07 17:27:15 +01:00
Timm Bäder
5191b6fccd
gl renderer: Only send clip corners if we need to
...
We change the clip bounds a lot more ofthen than the clip corners and
they are already split up in the shader, so only send the corners if we
need to.
2020-01-07 17:27:15 +01:00
Timm Bäder
2e6e6c1779
gl renderer: Fix color comparison
2020-01-07 17:27:15 +01:00
Timm Bäder
a29b8fbef4
gl renderer: Shorten debug output impl
...
This will leak a string but WHATEVER.
2020-01-07 17:27:15 +01:00
Timm Bäder
5b072e716c
gl renderer: Fix debug color output
2020-01-07 17:27:15 +01:00
Timm Bäder
49845795d9
gl renderer: Rewort passing rounded rects to shaders
2020-01-07 17:27:15 +01:00
Timm Bäder
ab04c74ec9
gl renderer: Don't copy border outline corner sizes around
...
We already offset + scale the outline and its corners, just pass those
directly to the shader.
2020-01-07 17:27:15 +01:00
Timm Bäder
4744bb9099
gl renderer: stop copying current color around
...
Just use a pointer now.
2020-01-07 17:27:15 +01:00
Timm Bäder
91522dda63
gl renderer: remove a memory leak
2020-01-07 17:27:15 +01:00
Timm Bäder
f85448ffbf
gl renderer: Split blurring a node into its own function
2020-01-07 17:27:15 +01:00
Timm Bäder
d3852ca33a
gl renderer: Remove some unused uniforms
2020-01-07 17:27:15 +01:00
Timm Bäder
9d9a730659
gl renderer: Drop a dead if statement
...
We already handle this earlier.
2020-01-07 17:27:15 +01:00
Timm Bäder
d868b23c76
gl renderer: Implement blurred inset shadow nodes
...
And with this...
Fixes #1101
2019-12-03 08:40:35 +01:00
Timm Bäder
b91913d10d
opbuffer: Remove unused op member
2019-12-03 08:40:35 +01:00
Timm Bäder
1854f3f49c
gl renderer: Cache current scale in RenderOpBuilder
...
We call ops_get_scale a lot, so this should be better. It will also make
a later x/y split for the scaling easier.
2019-12-03 08:40:34 +01:00
Timm Bäder
ca66e9788c
gl renderer: Save one level of indentation
2019-12-03 08:40:34 +01:00
Timm Bäder
fb5dc73841
gl renderer: Implement blurred shadow nodes
2019-12-03 08:40:34 +01:00
Timm Bäder
8d61d9f627
gl renderer: Take a TextureRegion in blur_texture
...
So we can refer to textures on a texture atlas.
2019-12-03 08:40:34 +01:00
Timm Bäder
22b6085c32
gl renderer: Scale blur radius
...
We scale the texture size, so as a consequence we have to scale the blur
radius.
2019-12-03 08:40:34 +01:00
Timm Bäder
2deb1a05a0
gl renderer: Add some often needed debug code
2019-12-03 08:40:34 +01:00
Timm Bäder
8ca46169b1
gl renderer: Blur shader improvements
...
Use a two-pass blur shader, fix a few other things and unify the
blurring of blur nodes and blurred outset shadow nodes.
Related to #1283
2019-12-03 08:40:34 +01:00
Timm Bäder
982890515d
gl renderer: Don't use g_assert() for code that should always run
...
g_assert can be compiled out.
2019-11-27 16:56:47 +01:00
Timm Bäder
1817025f46
gl renderer: Don't save repeat nodes to disk
...
This is just debuggin code someone forgot.
2019-11-27 16:47:14 +01:00
Timm Bäder
8f6de1f955
gl renderer: Load flipped-y offscreen vertex data directly
...
Instead of loading the unflipped version first and then flipping it.
Don't do it in add_render_ops either but only in the function actually
adding the render ops for the nodes, since those frequently have
early-out conditions that don't need the vertex data at all.
2019-11-26 09:09:25 +01:00
Timm Bäder
91f7ac2d58
gl renderer: Care more about 0×0 offscreen nodes
...
These never result in a rendering of course, but we must make sure not
to create a 0×0 texture for them, since that will cause problems later
on.
2019-11-26 09:09:25 +01:00
Timm Bäder
053360df85
gl renderer: Remove unused function
2019-11-19 11:06:08 +01:00
Timm Bäder
600ce68210
gl renderer: Add a short cut for repeat nodes that don't repeat
...
These happen and we don't even need to draw the child to a texture.
2019-11-19 10:45:02 +01:00
Timm Bäder
604f44da11
gl renderer: Fix repeat nodes that don't repeat
...
Fixes #2234
2019-11-19 10:31:21 +01:00
Matthias Clasen
d4c97ea2b4
gl: Use the fallback debug flag
...
This debug flag was unused; use it to enable
fallback highlighting at runtime.
2019-10-30 22:31:47 -04:00
Matthias Clasen
5b508ea94a
Revert "gl: Speed up icon cache lookups"
...
This reverts commit dd5ee87b5b
.
2019-10-22 07:16:41 -04:00
Matthias Clasen
472d8eebbe
gl: Avoid pointless iteration
2019-10-22 07:16:41 -04:00
Matthias Clasen
dd316c8051
gl: Add some comments
2019-10-22 07:16:41 -04:00
Matthias Clasen
1038bc781a
Revert "Cache glyph textures in render nodes"
...
This reverts commit c5af463843
.
2019-10-22 07:16:41 -04:00
Matthias Clasen
d3431f569c
Revert "inspector: Fix node recording"
...
This reverts commit ba7649b388
.
2019-10-22 01:32:51 -04:00
Matthias Clasen
ba7649b388
inspector: Fix node recording
...
When attaching renderer-specific data, we need to
make sure that we key it off the renderer that is
in use, and cope with the absence of render data.
This fixes recording nodes in the inspector.
2019-10-18 09:33:45 -05:00
Matthias Clasen
fdbb925654
gl: Remove an unimplemented profiler counter
2019-10-17 07:59:34 -05:00
Matthias Clasen
aeabe3c40e
gl: Add debug spew to texture atlas
2019-10-17 07:59:34 -05:00
Matthias Clasen
222b6c2b58
glyph cache: Go back to memcmp
...
Be careful to avoid padding data, and only
compare the relevant parts, leaving out the
hash key.
2019-10-17 07:59:34 -05:00
Matthias Clasen
5ab5ff7677
Cosmetics
2019-10-17 07:59:34 -05:00
Matthias Clasen
6c92b824f3
Merge branch 'wip/chergert/opbuffer' into 'master'
...
Add OpBuffer helper for building op buffer
See merge request GNOME/gtk!1131
2019-10-17 11:37:07 +00:00
Matthias Clasen
d777300d4e
Fix a crash with glyph caching
...
We need to treat atlas-less cached glyphs like
atlases, when it comes to invalidating text node
render data.
2019-10-15 22:52:28 -04:00
Matthias Clasen
dd5ee87b5b
gl: Speed up icon cache lookups
...
Use gdk_texture_set_render_data to avoid
hash table lookups when we can.
2019-10-15 19:44:26 -04:00
Matthias Clasen
e34d1b8a26
gl: Slightly rework the icon cache api
...
Return a pointer to the IconData struct. This is
closer to the glyph cache api, and will allow us
to add similar shortcuts. For now, just store
texture coords in the form we need, avoiding
converting them over and over.
2019-10-15 19:44:26 -04:00
Matthias Clasen
c5af463843
Cache glyph textures in render nodes
...
This is a quick implementation that avoids many
glyph cache lookups. We keep an array of direct
pointers in the text render node, and throw those
cached pointers away whenever any atlases have
been dropped (since that may invalidate the cached
glyphs).
2019-10-15 19:44:26 -04:00
Matthias Clasen
49748c9c23
Some more vertex data reshuffling
...
In some cases, the vertex data is just a trivial
modification of the default data, so do that instead
of recalculating it.
2019-10-15 19:44:26 -04:00
Matthias Clasen
b53fa48794
Fix load_vertex_data
...
There was a copy-paste error that set all
uv coordinates to 0,0.
2019-10-15 19:44:26 -04:00
Christian Hergert
97f3371709
gl: avoid calculating vertex_data until necessary
...
In many cases of the switch, we do not need the vertex data. This moves
the creation of the vertex_data array into a secondary function and only
calculates it the cases for which it is required.
2019-10-15 19:44:26 -04:00
Matthias Clasen
58d57e1087
gl: Drop buffer_size
...
No need to maintain buffer_size separately.
It is always vertices->len * sizeof (GskQuadVertex).
2019-10-15 19:44:26 -04:00
Matthias Clasen
571068af12
Drop OP_CHANGE_VAO
...
Instead, we accumulate vertices in a separate
array, which simplifies various things and lets
us avoid the extra copying step for the vao.
2019-10-15 19:44:26 -04:00
Christian Hergert
a00d12c62a
prototype OpBuffer helper for building op buffer
2019-10-15 19:44:26 -04:00