1. 30 Oct, 2014 1 commit
    • Alexander Larsson's avatar
      Remove GdkGLContext::visual · f0ae8da9
      Alexander Larsson authored
      This is not really needed. The gl context is totally tied to the
      window it is created from by virtue of sharing the context with the
      paint context of that window and that context always has the visual
      of the window (which we already can get).
      
      Also, all user visible contexts are essentially offscreen contexts, so
      a visual doesn't make sense for them. They only use FBOs which have
      whatever format that the users sets up.
      f0ae8da9
  2. 29 Oct, 2014 2 commits
  3. 26 Oct, 2014 1 commit
    • Matthias Clasen's avatar
      GtkStack: split homogeneous · b86356bc
      Matthias Clasen authored
      Split homogeneous into separate hhomogeneous and vhomogeneous
      properties. vhomogeneous is what we want for popover menus.
      b86356bc
  4. 22 Oct, 2014 6 commits
  5. 21 Oct, 2014 1 commit
  6. 20 Oct, 2014 2 commits
  7. 18 Oct, 2014 5 commits
  8. 16 Oct, 2014 1 commit
    • Benjamin Otte's avatar
      gdk: Add GDK_DEBUG=nogl · 672a67d0
      Benjamin Otte authored
      This is mostly useful for fallback testing.
      
      I suppose if people want finer grained GL ability testing, they can use
      Mesa environment variables to tune things.
      672a67d0
  9. 13 Oct, 2014 4 commits
    • Matthias Clasen's avatar
      0939857e
    • Alexander Larsson's avatar
      Add GtkGLArea widget · 535723ce
      Alexander Larsson authored
      535723ce
    • Alexander Larsson's avatar
      gdk: Add support for OpenGL · 038aac62
      Alexander Larsson authored
      This adds the new type GdkGLContext that wraps an OpenGL context for a
      particular native window. It also adds support for the gdk paint
      machinery to use OpenGL to draw everything. As soon as anyone creates
      a GL context for a native window we create a "paint context" for that
      GdkWindow and switch to using GL for painting it.
      
      This commit contains only an implementation for X11 (using GLX).
      
      The way painting works is that all client gl contexts draw into
      offscreen buffers rather than directly to the back buffer, and the
      way something gets onto the window is by using gdk_cairo_draw_from_gl()
      to draw part of that buffer onto the draw cairo context.
      
      As a fallback (if we're doing redirected drawing or some effect like a
      cairo_push_group()) we read back the gl buffer into memory and composite
      using cairo. This means that GL rendering works in all cases, including
      rendering to a PDF. However, this is not particularly fast.
      
      In the *typical* case, where we're drawing directly to the window in
      the regular paint loop we hit the fast path. The fast path uses opengl
      to draw the buffer to the window back buffer, either by blitting or
      texturing. Then we track the region that was drawn, and when the draw
      ends we paint the normal cairo surface to the window (using
      texture-from-pixmap in the X11 case, or texture from cairo image
      otherwise) in the regions where there is no gl painted.
      
      There are some complexities wrt layering of gl and cairo areas though:
      * We track via gdk_window_mark_paint_from_clip() whenever gtk is
        painting over a region we previously rendered with opengl
        (flushed_region). This area (needs_blend_region) is blended
        rather than copied at the end of the frame.
      * If we're drawing a gl texture with alpha we first copy the current
        cairo_surface inside the target region to the back buffer before
        we blend over it.
      
      These two operations allow us full stacking of transparent gl and cairo
      regions.
      038aac62
    • Alexander Larsson's avatar
      Add gdk_window_mark_paint_from_clip and call from widget drawing · d0147a6f
      Alexander Larsson authored
      This is a new function that gets called every time we're drawing
      some area in the Gtk paint machinery. It is a no-op right now, but
      it will be required later to keep track of what areas which
      we previously rendered with GL was overwritten with cairo contents.
      d0147a6f
  10. 07 Oct, 2014 2 commits
  11. 05 Oct, 2014 1 commit
  12. 04 Oct, 2014 5 commits
  13. 01 Oct, 2014 1 commit
    • Ikey Doherty's avatar
      Add GtkSidebar · cdd2651d
      Ikey Doherty authored
      GtkSidebar behaves internally much like GtkStackSwitcher, providing a vertical
      sidebar like widget. It is virtually identical in appearance to the widget
      currently used in GNOME Tweak Tool.
      
      This widget is connected to a GtkStack, and builds its own contents as a
      GtkListBox subclass, using the "title" child property to provide a consistent
      navigatable widget.
      
      Being a subclass of GtkListBox it benefits immediately from strong keyboard
      navigation, and minimal changes are required for theming.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=735293Signed-off-by: default avatarIkey Doherty <michael.i.doherty@intel.com>
      cdd2651d
  14. 30 Sep, 2014 1 commit
  15. 22 Sep, 2014 4 commits
  16. 18 Sep, 2014 1 commit
  17. 17 Sep, 2014 1 commit
  18. 07 Sep, 2014 1 commit