1. 12 Sep, 2021 1 commit
  2. 25 Sep, 2020 1 commit
  3. 24 Jul, 2020 1 commit
  4. 13 Feb, 2020 1 commit
    • Benjamin Otte's avatar
      gdk: Remove gdk_cairo_get_clip_rectangle() · 052d0f6e
      Benjamin Otte authored
      The function is fundamentally broken for unbounded surfaces.
      If a surface is unbounded, we cannot represent this as a
      cairo_rectangle_int_t, and using the return value doesn't work because
      it's already used for something else.
      
      In GTK3, unbounded surfaces aren't a problem, but GTK4 uses recording
      surfaces.
      
      So better remove that function before we keep using it and using it
      wrong.
      052d0f6e
  5. 04 Feb, 2020 1 commit
  6. 30 Jan, 2020 1 commit
  7. 29 Jan, 2020 1 commit
  8. 27 Nov, 2019 1 commit
    • Emmanuele Bassi's avatar
      Use a single compilation symbol · def70073
      Emmanuele Bassi authored
      We use a compilation symbol in our build to allow the inclusion of
      specific headers while building GTK, to avoid the need to include only
      the global header.
      
      Each namespace has its own compilation symbol because we used to have
      different libraries, and strict symbol visibility between libraries;
      now that we have a single library, and we can use private symbols across
      namespaces while building GTK, we should have a single compilation
      symbol, and simplify the build rules.
      def70073
  9. 24 Apr, 2018 1 commit
  10. 12 Apr, 2018 2 commits
  11. 20 Mar, 2018 3 commits
    • Alexander Larsson's avatar
      GdkSurface: Rename lots of stuff from window->surface · 3dce0dcc
      Alexander Larsson authored
      Mostly these are internal things, but the major public change is
      that event.window is now event.surface.
      3dce0dcc
    • Alexander Larsson's avatar
      GdkSurface: Rename various functions and variables · 9a7e7211
      Alexander Larsson authored
      This is an automatic rename of various things related
      to the window->surface rename.
      
      Public symbols changed by this is:
       GDK_MODE_WINDOW
       gdk_device_get_window_at_position
       gdk_device_get_window_at_position_double
       gdk_device_get_last_event_window
       gdk_display_get_monitor_at_window
       gdk_drag_context_get_source_window
       gdk_drag_context_get_dest_window
       gdk_drag_context_get_drag_window
       gdk_draw_context_get_window
       gdk_drawing_context_get_window
       gdk_gl_context_get_window
       gdk_synthesize_window_state
       gdk_surface_get_window_type
       gdk_x11_display_set_window_scale
       gsk_renderer_new_for_window
       gsk_renderer_get_window
       gtk_text_view_buffer_to_window_coords
       gtk_tree_view_convert_widget_to_bin_window_coords
       gtk_tree_view_convert_tree_to_bin_window_coords
      
      The commands that generated this are:
      
      git sed -f g "GDK window" "GDK surface"
      git sed -f g window_impl surface_impl
      (cd gdk; git sed -f g impl_window impl_surface)
      git sed -f g WINDOW_IMPL SURFACE_IMPL
      git sed -f g GDK_MODE_WINDOW GDK_MODE_SURFACE
      git sed -f g gdk_draw_context_get_window gdk_draw_context_get_surface
      git sed -f g gdk_drawing_context_get_window gdk_drawing_context_get_surface
      git sed -f g gdk_gl_context_get_window gdk_gl_context_get_surface
      git sed -f g gsk_renderer_get_window gsk_renderer_get_surface
      git sed -f g gsk_renderer_new_for_window gsk_renderer_new_for_surface
      
      (cd gdk; git sed -f g window_type surface_type)
      git sed -f g gdk_surface_get_window_type gdk_surface_get_surface_type
      
      git sed -f g window_at_position surface_at_position
      git sed -f g event_window event_surface
      git sed -f g window_coord surface_coord
      git sed -f g window_state surface_state
      git sed -f g window_cursor surface_cursor
      git sed -f g window_scale surface_scale
      git sed -f g window_events surface_events
      git sed -f g monitor_at_window monitor_at_surface
      git sed -f g window_under_pointer surface_under_pointer
      (cd gdk; git sed -f g for_window for_surface)
      git sed -f g window_anchor surface_anchor
      git sed -f g WINDOW_IS_TOPLEVEL SURFACE_IS_TOPLEVEL
      git sed -f g native_window native_surface
      git sed -f g source_window source_surface
      git sed -f g dest_window dest_surface
      git sed -f g drag_window drag_surface
      git sed -f g input_window input_surface
      
      git checkout NEWS* po-properties po docs/reference/gtk/migrating-3to4.xml
      9a7e7211
    • Alexander Larsson's avatar
      GdkWindow -> GdkSurface initial type rename · 391727bd
      Alexander Larsson authored
      This renames the GdkWindow class and related classes (impl, backend
      subclasses) to surface. Additionally it renames related types:
      GdkWindowAttr, GdkWindowPaint, GdkWindowWindowClass, GdkWindowType,
      GdkWindowTypeHint, GdkWindowHints, GdkWindowState, GdkWindowEdge
      
      This is an automatic conversion using the below commands:
      
      git sed -f g GdkWindowWindowClass GdkSurfaceSurfaceClass
      
      git sed -f g GdkWindow GdkSurface
      git sed -f g "gdk_window\([ _\(\),;]\|$\)" "gdk_surface\1" # Avoid hitting gdk_windowing
      git sed -f g "GDK_WINDOW\([ _\(]\|$\)" "GDK_SURFACE\1" # Avoid hitting GDK_WINDOWING
      git sed "GDK_\([A-Z]*\)IS_WINDOW\([_ (]\|$\)" "GDK_\1IS_SURFACE\2"
      git sed GDK_TYPE_WINDOW GDK_TYPE_SURFACE
      git sed -f g GdkPointerWindowInfo GdkPointerSurfaceInfo
      
      git sed -f g "BROADWAY_WINDOW" "BROADWAY_SURFACE"
      git sed -f g "broadway_window" "broadway_surface"
      git sed -f g "BroadwayWindow" "BroadwaySurface"
      git sed -f g "WAYLAND_WINDOW" "WAYLAND_SURFACE"
      git sed -f g "wayland_win...
      391727bd
  12. 06 Feb, 2018 1 commit
    • Matthias Clasen's avatar
      The big versioning cleanup · 4c150d8e
      Matthias Clasen authored
      Remove all the old 2.x and 3.x version annotations.
      GTK+ 4 is a new start, and from the perspective of a
      GTK+ 4 developer all these APIs have been around since
      the beginning.
      4c150d8e
  13. 20 Nov, 2016 1 commit
    • Benjamin Otte's avatar
      API: gdk: Remove ability to render window contents · e62a4d8e
      Benjamin Otte authored
      The functions gdk_pixbuf_get_from_window() and
      gdk_cairo_set_source_window() are unreliable and depend on the windowing
      system (they work great on X11 and Win32, less so on Quartz and Wayland).
      
      With the switch to new drawing API and OpenGL, we can definitely no
      longer support a generic way to snapshot windows.
      
      People should either write windowsystem-specific code or draw their
      widgets directly - like with gtk_widget_draw() - if they need to get a
      rendering.
      e62a4d8e
  14. 01 Nov, 2016 1 commit
  15. 24 Oct, 2016 1 commit
  16. 18 Oct, 2016 1 commit
    • Emmanuele Bassi's avatar
      gdk: Add utility for uploading Cairo surfaces to GL · b425cff6
      Emmanuele Bassi authored
      The surface-to-GL upload logic has become more complicated with the
      addition of the GLES code paths; it's more logical to have a public
      utility function that can be called from GDK users, instead of copy
      pasting the whole thing multiple times.
      b425cff6
  17. 16 Oct, 2016 1 commit
  18. 09 Jun, 2016 3 commits
  19. 13 Oct, 2014 1 commit
    • Alexander Larsson's avatar
      gdk: Add support for OpenGL · 038aac62
      Alexander Larsson authored and Matthias Clasen's avatar Matthias Clasen committed
      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
  20. 22 May, 2014 1 commit
  21. 03 Jul, 2013 1 commit
  22. 05 May, 2013 1 commit
  23. 28 Dec, 2012 1 commit
  24. 27 Feb, 2012 2 commits
  25. 22 Dec, 2011 1 commit
  26. 22 Nov, 2011 2 commits
  27. 09 Feb, 2011 1 commit
  28. 04 Dec, 2010 2 commits
  29. 02 Dec, 2010 2 commits
    • Benjamin Otte's avatar
      API: Make gdk_cairo_create() take a GdkWindow · 97e6e9d2
      Benjamin Otte authored
      This is not strictly an API change as GdkDrawable is typedeffed to
      GdkWindow, but it changes the header, so I'm marking it as such.
      gdk_cairo_create() can only be used with windows these days, so it makes
      sense to pass a window. With that, we can alseo remove the
      set_cairo_clip() vfunc from GdkDrawable and implement it inside
      gdkwindow.c.
      97e6e9d2
    • Benjamin Otte's avatar
      API: Remove gdk_cairo_reset_clip() · 65dde2f9
      Benjamin Otte authored
      You should not ever ever ever call cairo_reset_clip(). If you do, your
      code is broken and you deserve everything you get.
      And we should definitely not support this insanity.
      65dde2f9
  30. 22 Oct, 2010 1 commit
    • Carlos Garnacho's avatar
      Add GdkRGBA struct to supersede GdkColor · 5a5f8081
      Carlos Garnacho authored
      GdkRGBA is a boxed struct similar to GdkColor, with the difference
      that it stores alpha information as well, and colors are stored in
      [0..1] doubles, in the cairo spirit.
      
      gdk_cairo_set_source_rgba() has been also added to allow easier handling
      of this new type.
      5a5f8081
  31. 26 Sep, 2010 1 commit