summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* inspector: add Next to possible rendererswip/chergert/glprotoChristian Hergert2021-02-181-0/+2
|
* gsk: add OpenGL based GskNextRendererChristian Hergert2021-02-1839-3/+12509
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The primary goal here was to cleanup the current GL renderer to make maintenance easier going forward. Furthermore, it tracks state to allow us to implement more advanced renderer features going forward. ## Reordering This renderer will reorder batches by render target to reduce the number of times render targets are changed. In the future, we could also reorder by program within the render target if we can determine that vertices do not overlap. ## Uniform Snapshots To allow for reordering of batches all uniforms need to be tracked for the programs. This allows us to create the full uniform state when the batch has been moved into a new position. Some care was taken as it can be performance sensitive. ## Attachment Snapshots Similar to uniform snapshots, we need to know all of the texture attachments so that we can rebind them when necessary. ## Render Jobs To help isolate the process of creating GL commands from the renderer abstraction a render job abstraction was added. This could be extended in the future if we decided to do tiling. ## Command Queue Render jobs create batches using the command queue. The command queue will snapshot uniform and attachment state so that it can reorder batches right before executing them. Currently, the only reordering done is to ensure that we only visit each render target once. We could extend this by tracking vertices, attachments, and others. This code currently uses an inline array helper to reduce overhead from GArray which was showing up on profiles. It could be changed to use GdkArray without too much work, but had roughly double the instructions. Cycle counts have not yet been determined. ## GLSL Programs This was simplified to use XMACROS so that we can just extend one file (gskglprograms.defs) instead of multiple places. The programs are added as fields in the driver for easy access. ## Driver The driver manages textures, render targets, access to atlases, programs, and more. There is one driver per display, by using the shared GL context. Some work could be done here to batch uploads so that we make fewer calls to upload when sending icon theme data to the GPU. We'd need to keep a copy of the atlas data for such purposes.
* Merge branch 'unintrusive-compose-preedit' into 'master'Matthias Clasen2021-02-182-3/+125
|\ | | | | | | | | Unintrusive compose preedit See merge request GNOME/gtk!3220
| * imwayland: Tweak preedit textunintrusive-compose-preeditMatthias Clasen2021-02-181-1/+33
| | | | | | | | | | | | | | Tweak the preedit text we get from IBus (via the compositor) to match what GtkIMContextSimple produces for Compose sequences now. This provides a unified experience.
| * imcontext: Make Compose preedit less intrusiveMatthias Clasen2021-02-181-2/+92
| | | | | | | | | | | | | | | | | | Tweak the preedit display for Compose sequences to be not so distracting. We only show the Compose key when it occurs in the middle of the sequence or is the only key so far, and use · instead of ⎄ for it. Also, make sure to display dead keys more adequately.
* | Merge branch 'wip/carlosg/font-setting-lookups' into 'master'Matthias Clasen2021-02-181-10/+3
|\ \ | | | | | | | | | | | | | | | | | | gdk/wayland: Look for font settings recursively Closes #3680 See merge request GNOME/gtk!3218
| * | gdk/wayland: Look for font settings recursivelywip/carlosg/font-setting-lookupsCarlos Garnacho2021-02-181-10/+3
|/ / | | | | | | | | | | | | | | Use the infrastructure already available to look up keys, instead. This does the right thing and looks up the setting across all sources. Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/3680
* | Merge branch 'wip/exalm/root' into 'master'Matthias Clasen2021-02-181-4/+10
|\ \ | |/ |/| | | | | widget: Don't assume GtkWindow root in gtk_widget_propagate_state() See merge request GNOME/gtk!3217
| * widget: Don't assume GtkWindow root in gtk_widget_propagate_state()wip/exalm/rootAlexander Mikhaylenko2021-02-181-4/+10
|/ | | | Avoid crashes with GtkDragIcon children.
* Merge branch 'matthiasc/for-master' into 'master'Matthias Clasen2021-02-188-48/+179
|\ | | | | | | | | | | | | Matthiasc/for master Closes #3679 and #3678 See merge request GNOME/gtk!3216
| * text: Fix sticky preedit attrsMatthias Clasen2021-02-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | In some cases, we were inadvertedly merging the preedit attributes into priv->attrs, instead of keeping them separate. This was causing the underlines to grow beyond the preedit and never go away. One place where this was showing up is the fontchooser preview. Fixes: #3679
| * imwayland: Return limited preedit attributesMatthias Clasen2021-02-171-4/+14
| | | | | | | | | | | | It should not matter, but it is the right thing to do to limit the preedit attributes to the length of the preedit text.
| * imcontext: Enable font fallback for preeditMatthias Clasen2021-02-172-1/+11
| | | | | | | | | | | | Not doing so only invites hexboxes. Fixes: #3678
| * paned: Add a paned handle classMatthias Clasen2021-02-174-40/+149
| | | | | | | | | | | | | | Instead of bending GtkGizmo to the breaking point, split off a GtkPanedHandle class that just does what is needed here. Its simpler, and lets us keep GtkGizmo simpler too. Everybody wins.
| * popovercontent: Few small fixesMatthias Clasen2021-02-171-4/+6
|/ | | | | Forgot to include config.h. Oops, and we make things a bit shorter still.
* Merge branch 'matthiasc/for-master' into 'master'Matthias Clasen2021-02-174-3/+4
|\ | | | | | | | | | | | | Matthiasc/for master Closes #3676 and #3675 See merge request GNOME/gtk!3215
| * Make gtk_im_modules_init properly privateMatthias Clasen2021-02-173-3/+3
| | | | | | | | | | | | | | Putting non-exported symbols in public headers can only lead to confusion and day drinking. Don't do it. Fixes: #3676
| * gsk: Add a missing GDK_AVAILABLE_IN_ALLMatthias Clasen2021-02-171-0/+1
|/ | | | | | | gsk_text_node_has_color_glyphs was not properlty exported, by accident. Fixes: #3675
* Merge branch 'matthiasc/for-master' into 'master'Matthias Clasen2021-02-176-42/+144
|\ | | | | | | | | Matthiasc/for master See merge request GNOME/gtk!3214
| * Revert "gizmo: Add a css_changed function"Matthias Clasen2021-02-162-26/+1
| | | | | | | | This reverts commit 39f72b38341d2ff2d67c2043ce04915797d24fb8.
| * Revert "gizmo: Chain up in css_changed"Matthias Clasen2021-02-161-2/+0
| | | | | | | | This reverts commit bb0a1b0cfe74d74c97ba2711d1827843d21a2c81.
| * popover: Add a popover content classMatthias Clasen2021-02-164-14/+143
|/ | | | | | | Instead of bending GtkGizmo to the breaking point, split off a GtkPopoverContent class that just does what is needed here. Its simpler, and lets us keep GtkGizmo simpler too.
* Merge branch 'wip/smcv/reftest-dedup' into 'master'Matthias Clasen2021-02-175-214/+11
|\ | | | | | | | | Reduce duplication in reftests See merge request GNOME/gtk!3203
| * reftests: Share reftest-compare.[ch] between GSK and GTK testswip/smcv/reftest-dedupSimon McVittie2021-02-154-205/+2
| | | | | | | | | | | | | | The only non-whitespace difference is that the copy in GSK does not set the symbol's visibility. Signed-off-by: Simon McVittie <smcv@debian.org>
| * reftest-compare: Fix spelling of "diff"Simon McVittie2021-02-151-9/+9
| | | | | | | | | | | | | | This is the only non-whitespace difference between the copies in testsuite/reftests/ and testsuite/gsk/. Signed-off-by: Simon McVittie <smcv@debian.org>
* | Merge branch 'wip/jimmac/tiled-resize-area-gtk4' into 'master'Matthias Clasen2021-02-171-3/+5
|\ \ | | | | | | | | | | | | | | | | | | Adwaita: control surface for resize tiled windows Closes #3670 See merge request GNOME/gtk!3211
| * | Adwaita: control surface for resize tiled windowswip/jimmac/tiled-resize-area-gtk4Jakub Steiner2021-02-161-3/+5
|/ / | | | | | | | | | | | | | | - window resizing control area is implemented as where the shadows are drawn - create a 'fake' shadow for the tiled case to allow easier resizing of the tiled window ratio even if it's offset to the side of the border Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3670
* | Merge branch 'wip/jimmac/scrollbars-fine-tune-fix' into 'master'Matthias Clasen2021-02-161-4/+6
|\ \ | | | | | | | | | | | | | | | | | | Adwaita: avoid fine-tune scrollbars jumping Closes #3672 See merge request GNOME/gtk!3208
| * | Adwaita: Avoid fine-tune scrollbars jumpingJakub Steiner2021-02-161-4/+6
|/ / | | | | | | Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3672
* | Merge branch 'matthiasc/for-master' into 'master'Matthias Clasen2021-02-161-0/+42
|\ \ | | | | | | | | | | | | wayland: Complete our buffer format listing See merge request GNOME/gtk!3207
| * | wayland: Complete our buffer format listingMatthias Clasen2021-02-151-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The debug spew for printing out supported buffer formats was missing a bunch, among them the fp16 formats that are interesting for HDR support. Add them. Note that we still only support ARGB8888. But at least we can print out what don't support.
* | | Merge branch 'fix-scrollbar-sizing' into 'master'Matthias Clasen2021-02-151-0/+2
|\ \ \ | |/ / |/| | | | | | | | gizmo: Chain up in css_changed See merge request GNOME/gtk!3206
| * | gizmo: Chain up in css_changedfix-scrollbar-sizingMatthias Clasen2021-02-151-0/+2
|/ / | | | | | | | | | | | | | | css_changed is a vfunc that *must* chain up. Failure to do so broke the resizing of overlay scrollbars, amongst other things. This bug was introduced in 39f72b38341d2ff2d67.
* | Merge branch 'lenient-compose-parsing' into 'master'Matthias Clasen2021-02-151-18/+17
|\ \ | | | | | | | | | | | | imcontext: Be more lenient in parsing Compose See merge request GNOME/gtk!3201
| * | imcontext: Improve compose table parsinglenient-compose-parsingMatthias Clasen2021-02-151-13/+15
| | | | | | | | | | | | | | | | | | Avoid leaking value in error cases, and actually emit a warning for a missing quote. Pointed out by Peter Bloomfield.
| * | imcontext: Be more lenient in parsing ComposeMatthias Clasen2021-02-141-5/+2
| | | | | | | | | | | | | | | | | | | | | X11 allows keysyms to be specified in addition to strings. We only support the strings. In the past, we ignored everything after the string. Go back to doing that, but issue a warning that we've ignored the keysym.
* | | Merge branch 'wip/jimmac/larger-smaller-scrollbar-gtk4' into 'master'Matthias Clasen2021-02-151-5/+9
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Adwaita: Scrollbar transitions and size Closes #1886 See merge request GNOME/gtk!3204
| * | | Adwaita: Scrollbar transitions and sizewip/jimmac/larger-smaller-scrollbar-gtk4Jakub Steiner2021-02-151-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - tone down the size of the controller again - transition between the indicator and control fluidly Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/1886
* | | | Update Catalan translationJordi Mas2021-02-142-916/+926
| |/ / |/| |
* | | Merge branch 'fix-compose-comments' into 'master'Matthias Clasen2021-02-144-10/+34
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Fix compose comments Closes #3664 See merge request GNOME/gtk!3199
| * | | imcontext: Fix a regression in Compose file parsingMatthias Clasen2021-02-143-10/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We accidentally dropped the handing of # comments. Bring it back. Test included. Fixes: #3664
| * | | testsuite: Add a missing fileMatthias Clasen2021-02-141-0/+5
| | |/ | |/|
* | | Merge branch 'popup-shadow-width' into 'master'Matthias Clasen2021-02-1414-48/+440
|\ \ \ | | | | | | | | | | | | | | | | Support shadows on popovers See merge request GNOME/gtk!3089
| * | | window: Add some more details to css docspopup-shadow-widthMatthias Clasen2021-02-141-4/+6
| | | | | | | | | | | | | | | | Mention more of the supported style classes.
| * | | Update popover css docsMatthias Clasen2021-02-141-3/+4
| | | | | | | | | | | | | | | | Mention that shadows are now possible.
| * | | macos: Apply popup shadow widthMatthias Clasen2021-02-141-0/+6
| | | |
| * | | win32: Apply popup shadow widthMatthias Clasen2021-02-141-0/+18
| | | |
| * | | x11: Apply popup shadow withMatthias Clasen2021-02-141-0/+6
| | | |
| * | | popover: Handle shadow changesMatthias Clasen2021-02-141-0/+10
| | | | | | | | | | | | | | | | | | | | When the box-shadow css property of the contents widget changes, queue a resize on the popover.
| * | | gizmo: Add a css_changed functionMatthias Clasen2021-02-142-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | In a break from the current gizmo api, add a separate setter, since the calls with long argument lists full of NULL are getting out of hand.