1. 09 Jun, 2020 1 commit
  2. 26 Mar, 2020 1 commit
    • Jonas Ådahl's avatar
      shaped-texture: Fix use-nearest check when viewports are scaled · 8beef8cc
      Jonas Ådahl authored
      We checked that the content size was appropriately painted in the stage,
      but didn't take into account that the size of the sampled texture
      region, meaning that when stage views were scaled, we'd think that we
      would draw a texture scaled, as e.g. a 200x200 sized texture with buffer
      scale 2 would have the size 100x100. When stage views were not scaled,
      we'd apply a geometry scale meaning it'd end up as 200x200 anyway, thus
      pass the check, but when stage views are scaled, it'd still be painted
      as a 100x100 shaped texture on the stage, thus failing the
      are-we-unscaled test.
      
      Fix this by comparing the transformed paint size with the sampled size,
      instead of the paint size again, when checking whether we are being
      painted scaled or not. For example, when stage views are scaled, our
      200x200 buffer with buffer scale 2, thus content size 100x100 will
      transform to a 200x200 paint command, thus passing the test. For
      non-scaled stage views, our 200x200 buffer with buffer scale 2 thus
      content size 100x100 will also transform into a 200x200 paint command,
      and will also pass the check, as the texture sample region is still
      200x200.
      
      Fixes: #804
      
      !1124
      8beef8cc
  3. 29 Feb, 2020 1 commit
  4. 03 Dec, 2019 2 commits
    • Jonas Ådahl's avatar
      clutter, core: Stop using the Cogl framebuffer stack · 3f65837e
      Jonas Ådahl authored
      The Cogl framebuffer stack is going away; replace all its uses by the
      framebuffer stack carried by the paint context.
      
      !935
      3f65837e
    • Jonas Ådahl's avatar
      clutter: Introduce paint contexts · 49c8d423
      Jonas Ådahl authored
      When painting, actors rely on semi global state tracked by the state to
      get various things needed for painting, such as the current draw
      framebuffer. Having state hidden in such ways can be very deceiving as
      it's hard to follow changes spread out, and adding more and more state
      that should be tracked during a paint gets annoying as they will not
      change in isolation but one by one in their own places. To do this
      better, introduce a paint context that is passed along in paint calls
      that contains the necessary state needed during painting.
      
      The paint context implements a framebuffer stack just as Cogl works,
      which is currently needed for offscreen rendering used by clutter.
      
      The same context is passed around for paint nodes, contents and effects
      as well.
      
      In this commit, the context is only introduced, but not used. It aims to
      replace the Cogl framebuffer stack, and will allow actors to know what
      view it is currently painted on.
      
      !935
      49c8d423
  5. 21 Oct, 2019 1 commit
  6. 30 Jul, 2019 1 commit
  7. 28 Feb, 2019 1 commit
  8. 03 Jan, 2019 1 commit
  9. 21 Dec, 2018 1 commit
  10. 12 Dec, 2018 1 commit
    • Nikita Churaev's avatar
      compositor: improve vignette on background actor · bdf8d0f1
      Nikita Churaev authored
      The shader used for computing a vignette currently has two
      problems:
      
       * The math is wrong such that the vignette isn't stretched
         across the whole actor and so ends abruptly
       * There is noticeable banding in its gradient
      
      This commit corrects both problems by fixing the computing
      and introducing noise dithering.
      bdf8d0f1
  11. 06 Nov, 2018 1 commit
    • Jonas Ådahl's avatar
      Clean up include macros mess · 2f4a68c8
      Jonas Ådahl authored
      The order and way include macros were structured was chaotic, with no
      real common thread between files. Try to tidy up the mess with some
      common scheme, to make things look less messy.
      2f4a68c8
  12. 31 Jul, 2018 2 commits
  13. 06 Jul, 2018 3 commits
  14. 07 Sep, 2017 3 commits
  15. 04 Sep, 2017 1 commit
  16. 21 Aug, 2017 1 commit
  17. 03 Mar, 2015 1 commit
  18. 08 Oct, 2014 1 commit
  19. 05 Sep, 2014 1 commit
  20. 03 Sep, 2014 4 commits
    • Jasper St. Pierre's avatar
      background-actor: Add a simple paint volume · 883c4a7b
      Jasper St. Pierre authored
      Not having a paint volume causes every single paint to turn into
      full-stage redraw, since otherwise culling won't properly work.
      
      Since we don't paint outside of our allocation, just use the simple
      default implementation, but also return TRUE inside it.
      883c4a7b
    • Owen W. Taylor's avatar
      MetaBackground: add properties to set vignette settings · 9d69b2a9
      Owen W. Taylor authored
      Make the vignette options properties so they can be animated;
      modify the function-call API for meta_background_actor_set_vignette()
      to correspond more closely to the 3 properties.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=735637
      9d69b2a9
    • Owen W. Taylor's avatar
      MetaBackgroundActor: match total dimming if GLSL is not present · ef3b0000
      Owen W. Taylor authored
      Without GLSL, we didn't apply the vignetting, which not only made the
      background uniform in color, it made it much lighter. Adjust for this
      and make the average brightness with the vignette effect the same
      with or without GLSL.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=735637
      ef3b0000
    • Owen W. Taylor's avatar
      Rewrite background code · a4a688ed
      Owen W. Taylor authored
      The old requirement that multiple MetaBackgroundActor objects be
      layered on top of each to produce blended backgrounds resulted in
      extremely inefficient drawing since the entire framebuffer had
      to be read and written multiple times.
      
       * Replace the MetaBackground ClutterContent with a plain GObject
         that serves to hold the background parameters and prerender
         textures to be used to draw the background. It handles
         colors, gradients, and blended images, but does not handle
         vignetting
      
       * Add vignetting to MetaBackgroundActor directly.
      
       * Add MetaBackgroundImage and MetaBackgroundImageCache to allow
         multiple MetaBackground objects to share the same images
      
      By removing the usage of ClutterContent, the following optimizations
      were easy to add:
      
       Blending is turned off when the actor is fully opaque
       Nearest-neighbour filtering is used when drawing 1:1
      
      The GLSL vignette code is slightly improved to use a vertex shader
      snippet for computing the texture coordinate => position in actor
      mapping.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=735637
      a4a688ed
  21. 07 Aug, 2014 1 commit
  22. 13 Jan, 2014 1 commit
  23. 12 Jan, 2014 1 commit
  24. 03 Dec, 2013 2 commits
  25. 25 Nov, 2013 2 commits
    • Jasper St. Pierre's avatar
      cullable: Turn cull_out / reset_culling into a separate interface · 74e43a47
      Jasper St. Pierre authored
      Instead of hardcoded knowledge of certain classes in MetaWindowGroup,
      create a generic interface that all actors can implement to get parts of
      their regions culled out during redraw, without needing any special
      knowledge of how to handle a specific actor.
      
      The names now are a bit suspect. MetaBackgroundGroup is a simple
      MetaCullable that knows how to cull children, and MetaWindowGroup is the
      "toplevel" cullable that computes the initial two regions. A future
      cleanup here could be to merge MetaWindowGroup / MetaBackgroundGroup so
      that we only have a generic MetaSimpleCullable, and move the "toplevel"
      cullability to be a MetaCullableToplevel.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=714706
      74e43a47
    • Jasper St. Pierre's avatar
      cullable: Turn cull_out / reset_culling into a separate interface · 47144253
      Jasper St. Pierre authored
      Instead of hardcoded knowledge of certain classes in MetaWindowGroup,
      create a generic interface that all actors can implement to get parts of
      their regions culled out during redraw, without needing any special
      knowledge of how to handle a specific actor.
      
      The names now are a bit suspect. MetaBackgroundGroup is a simple
      MetaCullable that knows how to cull children, and MetaWindowGroup is the
      "toplevel" cullable that computes the initial two regions. A future
      cleanup here could be to merge MetaWindowGroup / MetaBackgroundGroup so
      that we only have a generic MetaSimpleCullable, and move the "toplevel"
      cullability to be a MetaCullableToplevel.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=714706
      47144253
  26. 29 Aug, 2013 1 commit
  27. 27 Aug, 2013 1 commit
  28. 14 Mar, 2013 1 commit
  29. 19 Feb, 2013 1 commit
    • Ray Strode's avatar
      compositor: rework how backgrounds are managed · 580feb0c
      Ray Strode authored
      Background handling in GNOME is very roundabout at the moment.
      
      gnome-settings-daemon uses gnome-desktop to read the background from
      disk into a screen-sized pixmap. It then sets the XID of that pixmap
      on the _XROOTPMAP_ID root window property.
      
      mutter puts that pixmap into a texture/actor which gnome-shell then
      uses.
      
      Having the gnome-settings-daemon detour from disk to screen means we
      can't easily let the compositor handle transition effects when
      switching backgrounds. Also, having the background actor be
      per-screen instead of per-monitor means we may have oversized
      textures in certain multihead setups.
      
      This commit changes mutter to read backgrounds from disk itself, and
      it changes backgrounds to be per-monitor.
      
      This way background handling/compositing is left to the compositor.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=682427
      580feb0c