forked from AuroraMiddleware/gtk
GDK/Win32: Fix build after GDKGL refactoring
There were some parts that need some updates after the refactoring in GDKGL, so that the code will continue to build and run. For gdkwindow-win32.c, comment out the parts where we check for use_gl (which was removed), since we are going to move all drawing to OpenGL, but don't remove/disable the whole portion as that transition is not complete at this point. There a is new GDKGL function that checks for the damaged area of the back buffer, but since the notion of "damage" is for *NIX (GLX/EGL for Wayland/mir), meaning that there is no such extension for Windows in this regard, so we can't support this on Windows as-is, at least for now. https://bugzilla.gnome.org/show_bug.cgi?id=773299
This commit is contained in:
parent
82401032c5
commit
060365a9bb
@ -110,8 +110,9 @@ gdk_win32_gl_context_end_frame (GdkDrawContext *draw_context,
|
||||
GdkWindow *window = gdk_gl_context_get_window (context);
|
||||
GdkWin32Display *display = (GDK_WIN32_DISPLAY (gdk_gl_context_get_display (context)));
|
||||
gboolean can_wait = display->hasWglOMLSyncControl;
|
||||
cairo_rectangle_int_t whole_window;
|
||||
|
||||
GDK_DRAW_CONTEXT_CLASS (gdk_x11_gl_context_parent_class)->end_frame (draw_context, painted, damage);
|
||||
GDK_DRAW_CONTEXT_CLASS (gdk_win32_gl_context_parent_class)->end_frame (draw_context, painted, damage);
|
||||
if (gdk_gl_context_get_shared_context (context))
|
||||
return;
|
||||
|
||||
@ -167,7 +168,7 @@ gdk_win32_gl_context_begin_frame (GdkDrawContext *draw_context,
|
||||
GdkGLContext *context = GDK_GL_CONTEXT (draw_context);
|
||||
GdkWindow *window;
|
||||
|
||||
GDK_DRAW_CONTEXT_CLASS (gdk_x11_gl_context_parent_class)->begin_frame (draw_context, update_area);
|
||||
GDK_DRAW_CONTEXT_CLASS (gdk_win32_gl_context_parent_class)->begin_frame (draw_context, update_area);
|
||||
if (gdk_gl_context_get_shared_context (context))
|
||||
return;
|
||||
|
||||
@ -715,12 +716,14 @@ gdk_win32_gl_context_realize (GdkGLContext *context,
|
||||
static void
|
||||
gdk_win32_gl_context_class_init (GdkWin32GLContextClass *klass)
|
||||
{
|
||||
GdkGLContextClass *context_class = GDK_GL_CONTEXT_CLASS (klass);
|
||||
GdkGLContextClass *gl_context_class = GDK_GL_CONTEXT_CLASS(klass);
|
||||
GdkDrawContextClass *draw_context_class = GDK_DRAW_CONTEXT_CLASS(klass);
|
||||
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
context_class->begin_frame = gdk_win32_gl_context_begin_frame;
|
||||
context_class->end_frame = gdk_win32_gl_context_end_frame;
|
||||
context_class->realize = _gdk_win32_gl_context_realize;
|
||||
gl_context_class->realize = gdk_win32_gl_context_realize;
|
||||
|
||||
draw_context_class->begin_frame = gdk_win32_gl_context_begin_frame;
|
||||
draw_context_class->end_frame = gdk_win32_gl_context_end_frame;
|
||||
|
||||
gobject_class->dispose = _gdk_win32_gl_context_dispose;
|
||||
}
|
||||
|
@ -326,12 +326,19 @@ gdk_win32_window_begin_paint (GdkWindow *window)
|
||||
if (impl->layered)
|
||||
return FALSE;
|
||||
|
||||
/* FIXME: Possibly remove the following lines when we transition to GL
|
||||
* drawing fully. This will probably mean that we won't
|
||||
* be able to use layered windows, as layered windows seem
|
||||
* to support only up to OpenGL 1.1, which is not enough for our
|
||||
* needs here.
|
||||
*/
|
||||
|
||||
/* Non-GL windows are moved *after* repaint.
|
||||
* We don't supply our own surface, return TRUE to make GDK create
|
||||
* one by itself.
|
||||
*/
|
||||
*//*
|
||||
if (!window->current_paint.use_gl)
|
||||
return TRUE;
|
||||
return TRUE;*/
|
||||
|
||||
/* GL windows are moved *before* repaint (otherwise
|
||||
* repainting doesn't work), but if there's no move queued up,
|
||||
@ -355,6 +362,13 @@ gdk_win32_window_begin_paint (GdkWindow *window)
|
||||
static void
|
||||
gdk_win32_window_end_paint (GdkWindow *window)
|
||||
{
|
||||
/* FIXME: Possibly make gdk_win32_window_end_paint() a
|
||||
* no-op stub, like what is done in Wayland, as
|
||||
* the items here rely on layered window usage,
|
||||
* when we transition to full GL drawing, as
|
||||
* layered windows do not support enough GL
|
||||
* for our needs here
|
||||
*/
|
||||
GdkWindowImplWin32 *impl;
|
||||
RECT window_rect;
|
||||
HDC hdc;
|
||||
@ -370,8 +384,8 @@ gdk_win32_window_end_paint (GdkWindow *window)
|
||||
impl = GDK_WINDOW_IMPL_WIN32 (window->impl);
|
||||
|
||||
/* GL windows are moved *before* repaint */
|
||||
if (window->current_paint.use_gl)
|
||||
return;
|
||||
/*if (window->current_paint.use_gl)
|
||||
return;*/
|
||||
|
||||
/* No move/resize is queued up, and we don't need to update
|
||||
* the contents of a layered window, so return immediately.
|
||||
|
Loading…
Reference in New Issue
Block a user