gtk2/gdk/win32
Chun-wei Fan 52d1c0c271 media/gstreamer: Support using GL for video for Windows
Add support to share the WGL context in GDK with the WGL context in GStreamer,
so that we can also use OpenGL in the gstreamer media backend to playback
videos.  For now OpenGL/ES is not supported for this under Windows.

The process of setting this up in Windows is a little bit more involved, as:

*  The OpenGL support in GstGL requires a GL 4.1 Core context, but we may just
   get the GL version from wglCreateContextAttribsARB() that we pass into the
   attributes, which is 3.2 by default.  So, try to ask for a 4.1 Core context
   first if we are asking for anything less.

*  There is only one GstDisplay available for Windows, so we just use
   gst_gl_display_new().

*  We must explicitly tell libepoxy that we are using wglMakeCurrent() outside
   of libepoxy that is being used in GdkGL, otherwise we would end up crashing
   as the GL/WGL function pointers would become invalid.

*  We must also deactivate temporarily the underlying WGL context that was made
   current by gdk_gl_context_make_current() so that when
   gst_gl_display_create_context() calls wglShareLists(), we won't get bitten
   by error 0xaa (resource busy), as some drivers don't handle this well when
   the GL context is current in another thread.

For the last two points we make use of macros defined by the platforms that the
build is done for to help us carry out the necessary tasks as needed.

Thanks to Matthew Waters for the info on integrating GstGL and windowing
toolkits on Windows.
2021-05-24 16:36:40 +08:00
..
rc
bdfcursor.c Replace "gchar" with "char" 2020-07-25 00:47:36 +02:00
cursor.bdf *: Fix spelling mistakes found by codespell 2020-08-21 15:29:34 +02:00
gdkcairocontext-win32.c GDK/Win32: Remove layered windows usage 2021-01-18 12:48:16 +08:00
gdkcairocontext-win32.h GDK/Win32: Remove layered windows usage 2021-01-18 12:48:16 +08:00
gdkclipboard-win32.c
gdkclipboard-win32.h
gdkclipdrop-win32.c win32: Move from g_memdup() to g_memdup2() 2021-02-11 14:22:23 +00:00
gdkclipdrop-win32.h win32: Move from g_memdup() to g_memdup2() 2021-02-11 14:22:23 +00:00
gdkcursor-win32.c gdk: Clean up docs syntax 2021-05-22 17:25:26 -04:00
gdkdevice-virtual.c win32: Stop using the query_state vfunc 2020-08-26 17:56:41 -04:00
gdkdevice-virtual.h win32: Stop using _gdk_device_query_state 2020-08-26 17:56:41 -04:00
gdkdevice-win32.c GdkWin32: Fix mouse events in presence of transparent windows on the desktop 2020-11-11 12:46:52 +01:00
gdkdevice-win32.h win32: Stop using _gdk_device_query_state 2020-08-26 17:56:41 -04:00
gdkdevice-wintab.c win32: Stop using the query_state vfunc 2020-08-26 17:56:41 -04:00
gdkdevice-wintab.h win32: Stop using _gdk_device_query_state 2020-08-26 17:56:41 -04:00
gdkdevicemanager-win32.c win32: Stop using gdk_surface_new_temp 2020-10-07 21:07:40 -04:00
gdkdevicemanager-win32.h Replace "gint" with "int" 2020-07-25 00:47:36 +02:00
gdkdisplay-win32.c gdk: Clean up docs syntax 2021-05-22 17:25:26 -04:00
gdkdisplay-win32.h GDK-Win32: Use SetProcessDpiAwarenessContext() where available 2020-07-31 23:20:25 +08:00
gdkdisplaymanager-win32.c
gdkdrag-win32.c GDK/Win32: Remove layered windows usage 2021-01-18 12:48:16 +08:00
gdkdrop-win32.c win32: Fix some leaks 2021-02-07 09:41:34 -05:00
gdkevents-win32.c GDK-Win32: Remove extraneous call to _gdk_win32_append_event() 2021-03-17 11:22:23 +08:00
gdkglcontext-win32.c media/gstreamer: Support using GL for video for Windows 2021-05-24 16:36:40 +08:00
gdkglcontext-win32.h Add a EGL renderer (via ANGLE) for Windows 2020-07-30 14:26:33 +08:00
gdkglobals-win32.c Replace "gint" with "int" 2020-07-25 00:47:36 +02:00
gdkhdataoutputstream-win32.c Fix various compiler warnings with the 64bit mingw build 2020-06-14 20:02:36 +02:00
gdkhdataoutputstream-win32.h
gdkkeys-win32.c Replace "gint" with "int" 2020-07-25 00:47:36 +02:00
gdkmain-win32.c GDK/Win32: Remove layered windows usage 2021-01-18 12:48:16 +08:00
gdkmonitor-win32.c Documentation fixes 2021-05-20 19:17:49 -04:00
gdkmonitor-win32.h Replace "gchar" with "char" 2020-07-25 00:47:36 +02:00
gdkprivate-win32.h gdk: Replace all GDK_CONFIGURE usage with GdkSurface::layout 2020-12-07 20:37:29 +01:00
gdkproperty-win32.c Replace "gchar" with "char" 2020-07-25 00:47:36 +02:00
gdkscreen-win32.c display: Remove unneeded getters 2020-05-17 07:32:37 +02:00
gdksurface-win32.c surface: Remove unused gdk_surface_get_unscaled_size() 2021-03-15 02:56:28 +01:00
gdksurface-win32.h surface: Remove unused gdk_surface_get_unscaled_size() 2021-03-15 02:56:28 +01:00
gdkvulkancontext-win32.c GDK/Win32: Remove layered windows usage 2021-01-18 12:48:16 +08:00
gdkvulkancontext-win32.h
gdkwin32.h gdk: Make GdkKeymap a private api 2020-04-06 16:32:03 -04:00
gdkwin32cursor.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkwin32display.h gdk: Clean up docs syntax 2021-05-22 17:25:26 -04:00
gdkwin32displaymanager.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkwin32dnd-private.h *: Fix spelling mistakes found by codespell 2020-08-21 15:29:34 +02:00
gdkwin32dnd.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkwin32glcontext.h Replace "gint" with "int" 2020-07-25 00:47:36 +02:00
gdkwin32id.c Replace "gint" with "int" 2020-07-25 00:47:36 +02:00
gdkwin32keys.h Documentation fixes 2021-05-20 19:17:49 -04:00
gdkwin32langnotification.c Replace "gint" with "int" 2020-07-25 00:47:36 +02:00
gdkwin32langnotification.h
gdkwin32misc.h Replace "gdouble" with "double" 2020-07-25 00:47:36 +02:00
gdkwin32monitor.h gdk/monitor: Remove gdk_monitor_work_area and GdkMonitor::work-area 2020-07-29 17:57:30 +02:00
gdkwin32screen.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
gdkwin32surface.h Use a single compilation symbol 2019-11-27 13:33:43 +00:00
libwntab32x.la
meson.build build: Use a consistent style for Meson files 2020-12-15 12:46:59 +00:00
pktdef.h
wintab.h
xcursors.h Replace "gchar" with "char" 2020-07-25 00:47:36 +02:00