gtk2/gdk/x11
Benjamin Otte 813e9c95fb gdk: Add Cairo context implementations for all backends
And make the GdkCairoContext as abstract.

The idea of this and thje following commits is to get rid of all
Cairo code in gdksurface.c (and $backend/gdksurface-$backend.c)
by moving that code into the Cairo context files.
In particular, the GdkSurfaceClass.begin_frame/end_frame()
functions (which are currently exclusively used by the Cairo code
should end up being moved to GdkDrawContextClass.begin/end_frame().

This has multiple benefits:

1. It unifies code between the different drawing contexts.
   GL lives in GLContext, Vulkan in VulkanContext and Cairo in
   CairoContext. In turn, this makes it way easier to reason about
   what's going on in surface-specific code. Currently pretty much
   all backends do things wrong when they want to sync to drawing
   or to the frame clock.

2. It makes the API of GdkSurface smaller. No drawing code (apart
   from creating the contexts) needs to remain.

3. It confines Cairo to the Drawcontext, thereby making it way
   more obvious when backends are still using it in situations
   where it may now conflict with OpenGL (like when doing the dnd
   failed animation or in the APIs that I'm removing in this
   branch).

4. We have 2 very different types of Cairo contexts: The X/win32
   model, where we have a natively supported Cairo backend but do
   double buffering ourselves and use similar surfaces and the
   Wayland/Broadway model where we use image surfaces without any
   Cairo backend support and have to submit the buffers manually.
   By not sharing code between those 2 versions, we can make the
   actual code way smaller. We also get around the need to create
   1x1 image surfaces in the Wayland backend where we pretend
   there's a native Cairo surface.
2018-04-24 23:16:12 +02:00
..
gdkapplaunchcontext-x11.c Remove gdk_window_add_filter 2018-02-07 15:12:03 -05:00
gdkasync.c Remove gdk_window_add_filter 2018-02-07 15:12:03 -05:00
gdkasync.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkcairocontext-x11.c gdk: Add Cairo context implementations for all backends 2018-04-24 23:16:12 +02:00
gdkcairocontext-x11.h gdk: Add Cairo context implementations for all backends 2018-04-24 23:16:12 +02:00
gdkclipboard-x11.c Remove gdk_window_add_filter 2018-02-07 15:12:03 -05:00
gdkclipboard-x11.h x11: Refactor code 2017-12-13 00:56:52 +01:00
gdkcursor-x11.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkdevice-core-x11.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkdevice-xi2.c Always use #ifdef for G_ENABLE_DEBUG 2018-04-21 19:18:20 +02:00
gdkdevicemanager-core-x11.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkdevicemanager-x11.c Remove gdk_window_add_filter 2018-02-07 15:12:03 -05:00
gdkdevicemanager-xi2.c Merge branch 'detect-synaptics-touchpads-v2' into 'master' 2018-03-20 17:03:15 +00:00
gdkdevicemanagerprivate-core.h GdkWindow -> GdkSurface initial type rename 2018-03-20 11:40:08 +01:00
gdkdisplay-x11.c gdk: Add Cairo context implementations for all backends 2018-04-24 23:16:12 +02:00
gdkdisplay-x11.h surface: Remove queue_antiexpose() 2018-03-21 00:43:28 +01:00
gdkdnd-x11.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkeventsource.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkeventsource.h x11: Refactor xevent filtering some more 2017-12-13 01:55:56 +01:00
gdkeventtranslator.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkeventtranslator.h Fix up indentation after GdkSurface rename 2018-03-21 09:06:31 +01:00
gdkglcontext-x11.c glcontext: Store the buffer age regions in the GL context 2018-04-09 01:00:31 +02:00
gdkglcontext-x11.h GdkWindow -> GdkSurface: File renames 2018-03-20 11:46:11 +01:00
gdkkeys-x11.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkmain-x11.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkmonitor-x11.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
gdkmonitor-x11.h x11: Port to new monitor api 2016-04-27 23:18:16 -04:00
gdkprivate-x11.h Fix up indentation after GdkSurface rename 2018-03-21 09:06:31 +01:00
gdkproperty-x11.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkscreen-x11.c gdk: Protect against negative GDK_SCALE values 2018-04-10 09:43:47 +02:00
gdkscreen-x11.h Fix up indentation after GdkSurface rename 2018-03-21 09:06:31 +01:00
gdkselection-x11.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkselectioninputstream-x11.c GdkWindow -> GdkSurface: File renames 2018-03-20 11:46:11 +01:00
gdkselectioninputstream-x11.h x11: Improve fallbacks for text 2017-12-03 05:46:46 +01:00
gdkselectionoutputstream-x11.c GdkWindow -> GdkSurface: File renames 2018-03-20 11:46:11 +01:00
gdkselectionoutputstream-x11.h x11: Refactor code 2017-12-13 00:56:52 +01:00
gdksettings.c Stop using settings for modules 2018-02-18 09:41:29 -05:00
gdksurface-x11.c x11: Always request frame updates 2018-03-30 16:50:54 +02:00
gdksurface-x11.h x11: Make the frame clock work in GL and Vulkan 2018-03-30 16:50:28 +02:00
gdktextlistconverter-x11.c Drop gdk_atom_intern 2017-12-13 23:39:03 -05:00
gdktextlistconverter-x11.h x11: Implement claiming the X Selection with the clipboard 2017-12-03 05:46:47 +01:00
gdkvisual-x11.c The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkvisual-x11.h x11: Drop GdkX11Visual as public api 2017-11-17 13:03:11 -05:00
gdkvulkancontext-x11.c x11: Make the frame clock work in GL and Vulkan 2018-03-30 16:50:28 +02:00
gdkvulkancontext-x11.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkx11applaunchcontext.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11device-core.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11device-xi2.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11device.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkx11devicemanager-core.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager-xi2.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager-xi.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkx11display.h Fix up indentation after GdkSurface rename 2018-03-21 09:06:31 +01:00
gdkx11dnd.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11glcontext.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkx11keys.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkx11monitor.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkx11property.h x11: Get rid of default Atom converters 2017-12-14 13:35:32 +01:00
gdkx11screen.h The big versioning cleanup 2018-02-06 01:16:32 -05:00
gdkx11selection.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11surface.h Fix up indentation after GdkSurface rename 2018-03-21 09:06:31 +01:00
gdkx11utils.h x11: Remove gdk_x11_grab_server() 2017-11-02 12:47:50 +01:00
gdkx-autocleanups.h GdkWindow -> GdkSurface initial type rename 2018-03-20 11:40:08 +01:00
gdkx.h GdkWindow -> GdkSurface: File renames 2018-03-20 11:46:11 +01:00
gdkxftdefaults.c x11: Stop using GdkScreen in api 2017-11-17 10:51:55 -05:00
gdkxid.c GdkSurface: Rename lots of stuff from window->surface 2018-03-20 15:14:10 +01:00
meson.build gdk: Add Cairo context implementations for all backends 2018-04-24 23:16:12 +02:00
MwmUtil.h Change FSF Address 2012-02-27 17:06:11 +00:00
xsettings-client.c GdkSurface: Rename various functions and variables 2018-03-20 12:05:26 +01:00
xsettings-client.h Remove gdk_window_add_filter 2018-02-07 15:12:03 -05:00