- 20 Mar, 2022 1 commit
-
-
Christian Hergert authored
This copied more or less what the coloring vertex shader was doing in that we premultiply alpha. That changes how we apply alpha in the fragment shader to match. This fixes a white halo around the fonts.
-
- 19 Mar, 2022 2 commits
-
-
Matthias Clasen authored
Use a hb font at nominal size when generating sdf contours, and use a cache key that is independent of the size.
-
Matthias Clasen authored
Store the extent as floats, and drop the unused is_empty and advance fields. With that, we fit into one cacheline.
-
- 18 Mar, 2022 15 commits
-
-
Christian Hergert authored
This doesn't work correctly yet, as there are lots of bumps along the way to still smooth out.
-
Christian Hergert authored
This adds a new texture library that can upload SDF data from libglyphy into regions of a texture atlas so that it can be accessed by Glyphy shaders in the appropriate place and format. Some of the placement positioning may seem odd in that it needs to follow a certain format to be decoded from the Glyphy shaders.
-
Christian Hergert authored
If the text node has color glyphs, then we need to dispatch to the legacy form of rendering which uses FreeType/Cairo/etc to upload glyphs to a rendered glyph cache. Otherwise, we can dispatch to a new function which will eventually use Glyphy to shape to SDF content and upload to an alternate texture atlas.
-
Christian Hergert authored
-
Christian Hergert authored
-
Christian Hergert authored
This moves a lot of the texture atlas control out of the driver and into the various texture libraries through their base GskGLTextureLibrary class. Additionally, this gives more control to libraries on allocating which can be necessary for some tooling such as future Glyphy integration. As part of this, the 1x1 pixel initialization is moved to the Glyph library which is the only place where it is actually needed. The compact vfunc now is responsible for compaction and it allows for us to iterate the atlas hashtable a single time instead of twice as we were doing previously. The init_atlas vfunc is used to do per-library initialization such as adding a 1x1 pixel in the Glyph cache used for coloring lines. The allocate vfunc purely allocates but does no upload. This can be useful for situations where a library wants to reuse the allocator from the base class but does not want to actually insert a key/value entry. The glyph library uses this for it's 1x1 pixel. In the future, we will also likely want to decouple the rectangle packing implementation from the atlas structure, or at least move it into a union so that we do not allocate unused memory for alternate allocators.
-
Christian Hergert authored
This removes the sharing of atlases across various texture libraries. Doing so is necessary so that atlases can have different semantics for how they allocate within the texture as well as potentially allowing for different formats of texture data. For example, in the future we might store non-pixel data in the textures such as Glyphy or even keep glyphs with color content separate from glyphs which do not and can use alpha channel only.
-
Christian Hergert authored
This allows the gskglprograms.defs a bit more control over how a shader will get generated and if it needs to combine sources. Currently, none of the built-in shaders do that, but upcoming shaders which come from external libraries will need the ability to inject additional sources in-between layers.
-
Christian Hergert authored
This naming style is less likely to collide with shader naming and makes it clear where it is consumed what it is.
-
Christian Hergert authored
-
Christian Hergert authored
This could potentially happen if a uniform had never been set.
-
Christian Hergert authored
We don't need to clear the front cache on every frame as we can clear it specifically when we do reclaimation to avoid unnecessary memset() calls.
-
Christian Hergert authored
If the max_entry_size is zero, then assume we can add anything to the atlas. This allows for situations where we might be uploading an arc list to the atlas instead of pixel data for GPU font rendering.
-
Christian Hergert authored
This is nice for some texture libraries that we might want to keep around for longer than say 60 frames such as a glyph cache.
-
We want a large font size, but we don't have to hardcode Sans.
-
- 17 Mar, 2022 5 commits
-
-
Matthias Clasen authored
filefilter: Fix <suffixes> in buildable See merge request !4581
-
James Westman authored
A bug in GtkFileFilter's GtkBuildable implementation caused the <suffixes> tag not to be recognized.
-
(cherry picked from commit 3e4bfa2b)
-
(cherry picked from commit 9bbf09fb)
-
(cherry picked from commit c874f65d)
-
- 16 Mar, 2022 4 commits
-
-
Carlos Garnacho authored
gtk/imwayland: Use serial to control outbound messages Closes #3641 See merge request !4398
-
Carlos Garnacho authored
Following the text-input protocol changes at https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/115, use the serial number to have the client push changes to the zwp_text_input_v3 object only after compositor/client states match. This specifically is more lenient to compositors pushing multiple .done events ahead of the client replying to them. Closes: #3641
-
Matthias Clasen authored
gtkimcontextwayland: Add native surface offset to input coordinates Closes #4668 See merge request !4573
-
Carlos Garnacho authored
We were missing the surface offset (e.g. shadows) at the time of expressing the text caret location in surface coordinates. Add this offset so the coordinates are as expected by the compositor. Fixes: #4668
-
- 15 Mar, 2022 9 commits
-
-
Matthias Clasen authored
searchentry: Make search delay editable Closes #4133 See merge request !4563
-
Ondřej Míchal authored
The default search delay of 150ms can be too low at times[0], leading app developers to add additional delay while handling the search-changed signal[1]. Based on past work from hugsie[2]. Fixes #4133 [0] https://github.com/getting-things-gnome/gtg/issues/281 [1] https://github.com/getting-things-gnome/gtg/pull/587 [2] #678
-
(cherry picked from commit 72a55708)
-
Matthias Clasen authored
gtkplacessidebar: Prevent calling g_object_unref on null See merge request !4569
-
Matthias Clasen authored
-
Matthias Clasen authored
icons: update symbolics See merge request !4571
-
Matthias Clasen authored
build: Avoid objcopy on arm Closes #4757, #4748, and #4752 See merge request !4567
-
Jakub Steiner authored
- match the metaphors/style updates of gnome 42 See #4764
-
(cherry picked from commit b59f9b97)
-
- 14 Mar, 2022 4 commits
-
-
Matthias Clasen authored
gtk-builder-tool: Operate without display See merge request !4568
-
Fina Wilke authored
g_object_unref would be called on a null end_icon when provider_account_status is CLOUD_PROVIDERS_ACCOUNT_STATUS_IDLE
-
Matthias Clasen authored
The simplify and validate commands can function without a display connection, only preview absolutely needs one. Allow this, by using gtk_init_check().
-
Matthias Clasen authored
The trickery we do with objcopy and ld to speed up resource inclusion does not seem to work right on 32bit Arm, so just skip it there. Fixes: #4757, #4748, #4752
-