forked from AuroraMiddleware/gtk
gdk: Make each backend have a custom GdkDrawingContext subclass
This commit is contained in:
parent
1912d992d8
commit
cb18752f94
@ -61,6 +61,8 @@ libgdk_broadway_la_SOURCES = \
|
||||
gdkdisplay-broadway.c \
|
||||
gdkdisplay-broadway.h \
|
||||
gdkdnd-broadway.c \
|
||||
gdkdrawingcontext-broadway.c \
|
||||
gdkdrawingcontext-broadway.h \
|
||||
gdkeventsource.c \
|
||||
gdkeventsource.h \
|
||||
gdkglobals-broadway.c \
|
||||
|
33
gdk/broadway/gdkdrawingcontext-broadway.c
Normal file
33
gdk/broadway/gdkdrawingcontext-broadway.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright 2016 Benjamin Otte <otte@gnome.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gdkdrawingcontext-broadway.h"
|
||||
|
||||
G_DEFINE_TYPE (GdkBroadwayDrawingContext, gdk_broadway_drawing_context, GDK_TYPE_DRAWING_CONTEXT)
|
||||
|
||||
static void
|
||||
gdk_broadway_drawing_context_class_init (GdkBroadwayDrawingContextClass *klass)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_broadway_drawing_context_init (GdkBroadwayDrawingContext *self)
|
||||
{
|
||||
}
|
||||
|
48
gdk/broadway/gdkdrawingcontext-broadway.h
Normal file
48
gdk/broadway/gdkdrawingcontext-broadway.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_BROADWAY_DRAWING_CONTEXT_H__
|
||||
#define __GDK_BROADWAY_DRAWING_CONTEXT_H__
|
||||
|
||||
#include "gdk/gdkdrawingcontextprivate.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_TYPE_BROADWAY_DRAWING_CONTEXT (gdk_broadway_drawing_context_get_type ())
|
||||
#define GDK_BROADWAY_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_BROADWAY_DRAWING_CONTEXT, GdkBroadwayDrawingContext))
|
||||
#define GDK_IS_BROADWAY_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_BROADWAY_DRAWING_CONTEXT))
|
||||
#define GDK_BROADWAY_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_BROADWAY_DRAWING_CONTEXT, GdkBroadwayDrawingContextClass))
|
||||
#define GDK_IS_BROADWAY_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_BROADWAY_DRAWING_CONTEXT))
|
||||
#define GDK_BROADWAY_DRAWING_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_BROADWAY_DRAWING_CONTEXT, GdkBroadwayDrawingContextClass))
|
||||
|
||||
typedef struct _GdkBroadwayDrawingContext GdkBroadwayDrawingContext;
|
||||
typedef struct _GdkBroadwayDrawingContextClass GdkBroadwayDrawingContextClass;
|
||||
|
||||
struct _GdkBroadwayDrawingContext
|
||||
{
|
||||
GdkDrawingContext parent_instance;
|
||||
};
|
||||
|
||||
struct _GdkBroadwayDrawingContextClass
|
||||
{
|
||||
GdkDrawingContextClass parent_instance;
|
||||
};
|
||||
|
||||
GType gdk_broadway_drawing_context_get_type (void) G_GNUC_CONST;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_BROADWAY_DRAWING_CONTEXT_H__ */
|
@ -33,6 +33,7 @@
|
||||
#include "gdkwindow.h"
|
||||
#include "gdkwindowimpl.h"
|
||||
#include "gdkdisplay-broadway.h"
|
||||
#include "gdkdrawingcontext-broadway.h"
|
||||
#include "gdkprivate-broadway.h"
|
||||
#include "gdkinternals.h"
|
||||
#include "gdkdeviceprivate.h"
|
||||
@ -1510,6 +1511,16 @@ gdk_broadway_get_last_seen_time (GdkWindow *window)
|
||||
return _gdk_broadway_server_get_last_seen_time (GDK_BROADWAY_DISPLAY (display)->server);
|
||||
}
|
||||
|
||||
static GdkDrawingContext *
|
||||
gdk_broadway_window_create_draw_context (GdkWindow *window,
|
||||
const cairo_region_t *region)
|
||||
{
|
||||
return g_object_new (GDK_TYPE_BROADWAY_DRAWING_CONTEXT,
|
||||
"window", window,
|
||||
"clip", region,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_window_impl_broadway_class_init (GdkWindowImplBroadwayClass *klass)
|
||||
{
|
||||
@ -1588,4 +1599,5 @@ gdk_window_impl_broadway_class_init (GdkWindowImplBroadwayClass *klass)
|
||||
impl_class->change_property = _gdk_broadway_window_change_property;
|
||||
impl_class->delete_property = _gdk_broadway_window_delete_property;
|
||||
impl_class->get_drag_protocol = _gdk_broadway_window_get_drag_protocol;
|
||||
impl_class->create_draw_context = gdk_broadway_window_create_draw_context;
|
||||
}
|
||||
|
@ -2892,7 +2892,6 @@ gdk_window_begin_draw_frame (GdkWindow *window,
|
||||
const cairo_region_t *region)
|
||||
{
|
||||
GdkDrawingContext *context;
|
||||
GdkWindowImplClass *impl_class;
|
||||
|
||||
g_return_val_if_fail (GDK_IS_WINDOW (window), NULL);
|
||||
|
||||
@ -2907,18 +2906,7 @@ gdk_window_begin_draw_frame (GdkWindow *window,
|
||||
if (gdk_window_has_native (window) && gdk_window_is_toplevel (window))
|
||||
gdk_window_begin_paint_internal (window, region);
|
||||
|
||||
impl_class = GDK_WINDOW_IMPL_GET_CLASS (window->impl);
|
||||
if (impl_class->create_draw_context != NULL)
|
||||
{
|
||||
context = impl_class->create_draw_context (window, region);
|
||||
}
|
||||
else
|
||||
{
|
||||
context = g_object_new (GDK_TYPE_DRAWING_CONTEXT,
|
||||
"window", window,
|
||||
"clip", region,
|
||||
NULL);
|
||||
}
|
||||
context = GDK_WINDOW_IMPL_GET_CLASS (window->impl)->create_draw_context (window, region);
|
||||
|
||||
/* Do not take a reference, to avoid creating cycles */
|
||||
window->drawing_context = context;
|
||||
|
@ -24,6 +24,7 @@ libgdk_mir_la_SOURCES = \
|
||||
gdkmircursor.c \
|
||||
gdkmirdevicemanager.c \
|
||||
gdkmirdisplay.c \
|
||||
gdkmirdrawingcontext.c \
|
||||
gdkmireventsource.c \
|
||||
gdkmirglcontext.c \
|
||||
gdkmirkeyboard.c \
|
||||
|
@ -95,6 +95,8 @@ void _gdk_mir_window_impl_set_cursor_state (GdkMirWindowImpl *impl, gdouble x, g
|
||||
|
||||
void _gdk_mir_window_impl_get_cursor_state (GdkMirWindowImpl *impl, gdouble *x, gdouble *y, gboolean *cursor_inside, guint *button_state);
|
||||
|
||||
GdkDrawingContext *gdk_mir_drawing_context_new (GdkWindow *window, const cairo_region_t *region);
|
||||
|
||||
GdkMirEventSource *_gdk_mir_display_get_event_source (GdkDisplay *display);
|
||||
|
||||
GdkMirEventSource *_gdk_mir_event_source_new (GdkDisplay *display);
|
||||
|
63
gdk/mir/gdkmirdrawingcontext.c
Normal file
63
gdk/mir/gdkmirdrawingcontext.c
Normal file
@ -0,0 +1,63 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright 2016 Benjamin Otte <otte@gnome.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#define GDK_TYPE_MIR_DRAWING_CONTEXT (gdk_mir_drawing_context_get_type ())
|
||||
#define GDK_MIR_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_MIR_DRAWING_CONTEXT, GdkMirDrawingContext))
|
||||
#define GDK_IS_MIR_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_MIR_DRAWING_CONTEXT))
|
||||
#define GDK_MIR_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_MIR_DRAWING_CONTEXT, GdkMirDrawingContextClass))
|
||||
#define GDK_IS_MIR_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_MIR_DRAWING_CONTEXT))
|
||||
#define GDK_MIR_DRAWING_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_MIR_DRAWING_CONTEXT, GdkMirDrawingContextClass))
|
||||
|
||||
typedef struct _GdkMirDrawingContext GdkMirDrawingContext;
|
||||
typedef struct _GdkMirDrawingContextClass GdkMirDrawingContextClass;
|
||||
|
||||
struct _GdkMirDrawingContext
|
||||
{
|
||||
GdkDrawingContext parent_instance;
|
||||
};
|
||||
|
||||
struct _GdkMirDrawingContextClass
|
||||
{
|
||||
GdkDrawingContextClass parent_instance;
|
||||
};
|
||||
|
||||
GType gdk_mir_drawing_context_get_type (void) G_GNUC_CONST;
|
||||
|
||||
G_DEFINE_TYPE (GdkMirDrawingContext, gdk_mir_drawing_context, GDK_TYPE_DRAWING_CONTEXT)
|
||||
|
||||
static void
|
||||
gdk_mir_drawing_context_class_init (GdkMirDrawingContextClass *klass)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_mir_drawing_context_init (GdkMirDrawingContext *self)
|
||||
{
|
||||
}
|
||||
|
||||
GdkDrawingContext *
|
||||
gdk_mir_drawing_context_new (GdkWindow *window,
|
||||
const cairo_region_t *region)
|
||||
{
|
||||
return g_object_new (GDK_TYPE_MIR_DRAWING_CONTEXT,
|
||||
"window", window,
|
||||
"clip", region,
|
||||
NULL);
|
||||
}
|
||||
|
@ -1832,5 +1832,6 @@ gdk_mir_window_impl_class_init (GdkMirWindowImplClass *klass)
|
||||
impl_class->set_opaque_region = gdk_mir_window_impl_set_opaque_region;
|
||||
impl_class->set_shadow_width = gdk_mir_window_impl_set_shadow_width;
|
||||
impl_class->create_gl_context = gdk_mir_window_impl_create_gl_context;
|
||||
impl_class->create_draw_context = gdk_mir_drawing_context_new;
|
||||
impl_class->invalidate_for_new_frame = gdk_mir_window_impl_invalidate_for_new_frame;
|
||||
}
|
||||
|
@ -30,6 +30,8 @@ libgdk_quartz_la_SOURCES = \
|
||||
gdkdevicemanager-core-quartz.h \
|
||||
gdkdisplay-quartz.c \
|
||||
gdkdisplaymanager-quartz.c \
|
||||
gdkdrawingcontext-quartz.c \
|
||||
gdkdrawingcontext-quartz.h \
|
||||
gdkdnd-quartz.c \
|
||||
gdkdnd-quartz.h \
|
||||
gdkevents-quartz.c \
|
||||
|
33
gdk/quartz/gdkdrawingcontext-quartz.c
Normal file
33
gdk/quartz/gdkdrawingcontext-quartz.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright 2016 Benjamin Otte <otte@gnome.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gdkdrawingcontext-quartz.h"
|
||||
|
||||
G_DEFINE_TYPE (GdkQuartzDrawingContext, gdk_quartz_drawing_context, GDK_TYPE_DRAWING_CONTEXT)
|
||||
|
||||
static void
|
||||
gdk_quartz_drawing_context_class_init (GdkQuartzDrawingContextClass *klass)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_quartz_drawing_context_init (GdkQuartzDrawingContext *self)
|
||||
{
|
||||
}
|
||||
|
48
gdk/quartz/gdkdrawingcontext-quartz.h
Normal file
48
gdk/quartz/gdkdrawingcontext-quartz.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_QUARTZ_DRAWING_CONTEXT_H__
|
||||
#define __GDK_QUARTZ_DRAWING_CONTEXT_H__
|
||||
|
||||
#include "gdk/gdkdrawingcontextprivate.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_TYPE_QUARTZ_DRAWING_CONTEXT (gdk_quartz_drawing_context_get_type ())
|
||||
#define GDK_QUARTZ_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_QUARTZ_DRAWING_CONTEXT, GdkQuartzDrawingContext))
|
||||
#define GDK_IS_QUARTZ_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_QUARTZ_DRAWING_CONTEXT))
|
||||
#define GDK_QUARTZ_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_QUARTZ_DRAWING_CONTEXT, GdkQuartzDrawingContextClass))
|
||||
#define GDK_IS_QUARTZ_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_QUARTZ_DRAWING_CONTEXT))
|
||||
#define GDK_QUARTZ_DRAWING_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_QUARTZ_DRAWING_CONTEXT, GdkQuartzDrawingContextClass))
|
||||
|
||||
typedef struct _GdkQuartzDrawingContext GdkQuartzDrawingContext;
|
||||
typedef struct _GdkQuartzDrawingContextClass GdkQuartzDrawingContextClass;
|
||||
|
||||
struct _GdkQuartzDrawingContext
|
||||
{
|
||||
GdkDrawingContext parent_instance;
|
||||
};
|
||||
|
||||
struct _GdkQuartzDrawingContextClass
|
||||
{
|
||||
GdkDrawingContextClass parent_instance;
|
||||
};
|
||||
|
||||
GType gdk_quartz_drawing_context_get_type (void) G_GNUC_CONST;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_QUARTZ_DRAWING_CONTEXT_H__ */
|
@ -25,6 +25,7 @@
|
||||
|
||||
#include "gdkwindowimpl.h"
|
||||
#include "gdkprivate-quartz.h"
|
||||
#include "gdkdrawingcontext-quartz.h"
|
||||
#include "gdkglcontext-quartz.h"
|
||||
#include "gdkquartzscreen.h"
|
||||
#include "gdkquartzcursor.h"
|
||||
@ -2825,6 +2826,16 @@ gdk_quartz_window_get_scale_factor (GdkWindow *window)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static GdkDrawingContext *
|
||||
gdk_quartz_window_create_draw_context (GdkWindow *window,
|
||||
const cairo_region_t *region)
|
||||
{
|
||||
return g_object_new (GDK_TYPE_QUARTZ_DRAWING_CONTEXT,
|
||||
"window", window,
|
||||
"clip", region,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_window_impl_quartz_class_init (GdkWindowImplQuartzClass *klass)
|
||||
{
|
||||
@ -2909,6 +2920,7 @@ gdk_window_impl_quartz_class_init (GdkWindowImplQuartzClass *klass)
|
||||
impl_class->delete_property = _gdk_quartz_window_delete_property;
|
||||
|
||||
impl_class->create_gl_context = gdk_quartz_window_create_gl_context;
|
||||
impl_class->create_draw_context = gdk_quartz_window_create_draw_context;
|
||||
|
||||
impl_quartz_class->get_context = gdk_window_impl_quartz_get_context;
|
||||
impl_quartz_class->release_context = gdk_window_impl_quartz_release_context;
|
||||
|
@ -46,6 +46,8 @@ libgdk_wayland_la_SOURCES = \
|
||||
gdkdevice-wayland.c \
|
||||
gdkdisplay-wayland.c \
|
||||
gdkdisplay-wayland.h \
|
||||
gdkdrawingcontext-wayland.c \
|
||||
gdkdrawingcontext-wayland.h \
|
||||
gdkdnd-wayland.c \
|
||||
gdkeventsource.c \
|
||||
gdkkeys-wayland.c \
|
||||
|
33
gdk/wayland/gdkdrawingcontext-wayland.c
Normal file
33
gdk/wayland/gdkdrawingcontext-wayland.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright 2016 Benjamin Otte <otte@gnome.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gdkdrawingcontext-wayland.h"
|
||||
|
||||
G_DEFINE_TYPE (GdkWaylandDrawingContext, gdk_wayland_drawing_context, GDK_TYPE_DRAWING_CONTEXT)
|
||||
|
||||
static void
|
||||
gdk_wayland_drawing_context_class_init (GdkWaylandDrawingContextClass *klass)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_drawing_context_init (GdkWaylandDrawingContext *self)
|
||||
{
|
||||
}
|
||||
|
48
gdk/wayland/gdkdrawingcontext-wayland.h
Normal file
48
gdk/wayland/gdkdrawingcontext-wayland.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_WAYLAND_DRAWING_CONTEXT_H__
|
||||
#define __GDK_WAYLAND_DRAWING_CONTEXT_H__
|
||||
|
||||
#include "gdk/gdkdrawingcontextprivate.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_TYPE_WAYLAND_DRAWING_CONTEXT (gdk_wayland_drawing_context_get_type ())
|
||||
#define GDK_WAYLAND_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_WAYLAND_DRAWING_CONTEXT, GdkWaylandDrawingContext))
|
||||
#define GDK_IS_WAYLAND_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_WAYLAND_DRAWING_CONTEXT))
|
||||
#define GDK_WAYLAND_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WAYLAND_DRAWING_CONTEXT, GdkWaylandDrawingContextClass))
|
||||
#define GDK_IS_WAYLAND_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WAYLAND_DRAWING_CONTEXT))
|
||||
#define GDK_WAYLAND_DRAWING_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WAYLAND_DRAWING_CONTEXT, GdkWaylandDrawingContextClass))
|
||||
|
||||
typedef struct _GdkWaylandDrawingContext GdkWaylandDrawingContext;
|
||||
typedef struct _GdkWaylandDrawingContextClass GdkWaylandDrawingContextClass;
|
||||
|
||||
struct _GdkWaylandDrawingContext
|
||||
{
|
||||
GdkDrawingContext parent_instance;
|
||||
};
|
||||
|
||||
struct _GdkWaylandDrawingContextClass
|
||||
{
|
||||
GdkDrawingContextClass parent_instance;
|
||||
};
|
||||
|
||||
GType gdk_wayland_drawing_context_get_type (void) G_GNUC_CONST;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_WAYLAND_DRAWING_CONTEXT_H__ */
|
@ -26,6 +26,7 @@
|
||||
#include "gdkwindow.h"
|
||||
#include "gdkwindowimpl.h"
|
||||
#include "gdkdisplay-wayland.h"
|
||||
#include "gdkdrawingcontext-wayland.h"
|
||||
#include "gdkglcontext-wayland.h"
|
||||
#include "gdkframeclockprivate.h"
|
||||
#include "gdkprivate-wayland.h"
|
||||
@ -3563,6 +3564,16 @@ gdk_wayland_window_show_window_menu (GdkWindow *window,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static GdkDrawingContext *
|
||||
gdk_wayland_window_create_draw_context (GdkWindow *window,
|
||||
const cairo_region_t *region)
|
||||
{
|
||||
return g_object_new (GDK_TYPE_WAYLAND_DRAWING_CONTEXT,
|
||||
"window", window,
|
||||
"clip", region,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
_gdk_window_impl_wayland_class_init (GdkWindowImplWaylandClass *klass)
|
||||
{
|
||||
@ -3650,6 +3661,7 @@ _gdk_window_impl_wayland_class_init (GdkWindowImplWaylandClass *klass)
|
||||
impl_class->set_shadow_width = gdk_wayland_window_set_shadow_width;
|
||||
impl_class->show_window_menu = gdk_wayland_window_show_window_menu;
|
||||
impl_class->create_gl_context = gdk_wayland_window_create_gl_context;
|
||||
impl_class->create_draw_context = gdk_wayland_window_create_draw_context;
|
||||
impl_class->invalidate_for_new_frame = gdk_wayland_window_invalidate_for_new_frame;
|
||||
|
||||
signals[COMMITTED] = g_signal_new ("committed",
|
||||
|
@ -40,6 +40,8 @@ libgdk_win32_la_SOURCES = \
|
||||
gdkdisplay-win32.c \
|
||||
gdkdisplay-win32.h \
|
||||
gdkdisplaymanager-win32.c \
|
||||
gdkdrawingcontext-win32.c \
|
||||
gdkdrawingcontext-win32.h \
|
||||
gdkdnd-win32.c \
|
||||
gdkevents-win32.c \
|
||||
gdkgeometry-win32.c \
|
||||
|
33
gdk/win32/gdkdrawingcontext-win32.c
Normal file
33
gdk/win32/gdkdrawingcontext-win32.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright 2016 Benjamin Otte <otte@gnome.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gdkdrawingcontext-win32.h"
|
||||
|
||||
G_DEFINE_TYPE (GdkWin32DrawingContext, gdk_win32_drawing_context, GDK_TYPE_DRAWING_CONTEXT)
|
||||
|
||||
static void
|
||||
gdk_win32_drawing_context_class_init (GdkWin32DrawingContextClass *klass)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_win32_drawing_context_init (GdkWin32DrawingContext *self)
|
||||
{
|
||||
}
|
||||
|
48
gdk/win32/gdkdrawingcontext-win32.h
Normal file
48
gdk/win32/gdkdrawingcontext-win32.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_WIN32_DRAWING_CONTEXT_H__
|
||||
#define __GDK_WIN32_DRAWING_CONTEXT_H__
|
||||
|
||||
#include "gdk/gdkdrawingcontextprivate.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_TYPE_WIN32_DRAWING_CONTEXT (gdk_win32_drawing_context_get_type ())
|
||||
#define GDK_WIN32_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_WIN32_DRAWING_CONTEXT, GdkWin32DrawingContext))
|
||||
#define GDK_IS_WIN32_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_WIN32_DRAWING_CONTEXT))
|
||||
#define GDK_WIN32_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_WIN32_DRAWING_CONTEXT, GdkWin32DrawingContextClass))
|
||||
#define GDK_IS_WIN32_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_WIN32_DRAWING_CONTEXT))
|
||||
#define GDK_WIN32_DRAWING_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_WIN32_DRAWING_CONTEXT, GdkWin32DrawingContextClass))
|
||||
|
||||
typedef struct _GdkWin32DrawingContext GdkWin32DrawingContext;
|
||||
typedef struct _GdkWin32DrawingContextClass GdkWin32DrawingContextClass;
|
||||
|
||||
struct _GdkWin32DrawingContext
|
||||
{
|
||||
GdkDrawingContext parent_instance;
|
||||
};
|
||||
|
||||
struct _GdkWin32DrawingContextClass
|
||||
{
|
||||
GdkDrawingContextClass parent_instance;
|
||||
};
|
||||
|
||||
GType gdk_win32_drawing_context_get_type (void) G_GNUC_CONST;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_WIN32_DRAWING_CONTEXT_H__ */
|
@ -41,6 +41,7 @@
|
||||
#include "gdkwin32window.h"
|
||||
#include "gdkglcontext-win32.h"
|
||||
#include "gdkdisplay-win32.h"
|
||||
#include "gdkdrawingcontext-win32.h"
|
||||
|
||||
#include <cairo-win32.h>
|
||||
#include <dwmapi.h>
|
||||
@ -6025,6 +6026,16 @@ _gdk_win32_window_get_unscaled_size (GdkWindow *window,
|
||||
*unscaled_height = impl->unscaled_height;
|
||||
}
|
||||
|
||||
static GdkDrawingContext *
|
||||
gdk_win32_window_create_draw_context (GdkWindow *window,
|
||||
const cairo_region_t *region)
|
||||
{
|
||||
return g_object_new (GDK_TYPE_WIN32_DRAWING_CONTEXT,
|
||||
"window", window,
|
||||
"clip", region,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass)
|
||||
{
|
||||
@ -6114,6 +6125,7 @@ gdk_window_impl_win32_class_init (GdkWindowImplWin32Class *klass)
|
||||
impl_class->change_property = _gdk_win32_window_change_property;
|
||||
impl_class->delete_property = _gdk_win32_window_delete_property;
|
||||
impl_class->create_gl_context = _gdk_win32_window_create_gl_context;
|
||||
impl_class->create_draw_context = _gdk_win32_window_create_draw_context;
|
||||
impl_class->invalidate_for_new_frame = _gdk_win32_window_invalidate_for_new_frame;
|
||||
impl_class->get_scale_factor = _gdk_win32_window_get_scale_factor;
|
||||
impl_class->get_unscaled_size = _gdk_win32_window_get_unscaled_size;
|
||||
|
@ -35,6 +35,8 @@ libgdk_x11_la_SOURCES = \
|
||||
gdkdisplay-x11.c \
|
||||
gdkdisplay-x11.h \
|
||||
gdkdnd-x11.c \
|
||||
gdkdrawingcontext-x11.c \
|
||||
gdkdrawingcontext-x11.h \
|
||||
gdkeventsource.c \
|
||||
gdkeventsource.h \
|
||||
gdkeventtranslator.c \
|
||||
|
33
gdk/x11/gdkdrawingcontext-x11.c
Normal file
33
gdk/x11/gdkdrawingcontext-x11.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
* Copyright 2016 Benjamin Otte <otte@gnome.org>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "gdkdrawingcontext-x11.h"
|
||||
|
||||
G_DEFINE_TYPE (GdkX11DrawingContext, gdk_x11_drawing_context, GDK_TYPE_DRAWING_CONTEXT)
|
||||
|
||||
static void
|
||||
gdk_x11_drawing_context_class_init (GdkX11DrawingContextClass *klass)
|
||||
{
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_x11_drawing_context_init (GdkX11DrawingContext *self)
|
||||
{
|
||||
}
|
||||
|
48
gdk/x11/gdkdrawingcontext-x11.h
Normal file
48
gdk/x11/gdkdrawingcontext-x11.h
Normal file
@ -0,0 +1,48 @@
|
||||
/* GDK - The GIMP Drawing Kit
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __GDK_X11_DRAWING_CONTEXT_H__
|
||||
#define __GDK_X11_DRAWING_CONTEXT_H__
|
||||
|
||||
#include "gdk/gdkdrawingcontextprivate.h"
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#define GDK_TYPE_X11_DRAWING_CONTEXT (gdk_x11_drawing_context_get_type ())
|
||||
#define GDK_X11_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GDK_TYPE_X11_DRAWING_CONTEXT, GdkX11DrawingContext))
|
||||
#define GDK_IS_X11_DRAWING_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GDK_TYPE_X11_DRAWING_CONTEXT))
|
||||
#define GDK_X11_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GDK_TYPE_X11_DRAWING_CONTEXT, GdkX11DrawingContextClass))
|
||||
#define GDK_IS_X11_DRAWING_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GDK_TYPE_X11_DRAWING_CONTEXT))
|
||||
#define GDK_X11_DRAWING_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GDK_TYPE_X11_DRAWING_CONTEXT, GdkX11DrawingContextClass))
|
||||
|
||||
typedef struct _GdkX11DrawingContext GdkX11DrawingContext;
|
||||
typedef struct _GdkX11DrawingContextClass GdkX11DrawingContextClass;
|
||||
|
||||
struct _GdkX11DrawingContext
|
||||
{
|
||||
GdkDrawingContext parent_instance;
|
||||
};
|
||||
|
||||
struct _GdkX11DrawingContextClass
|
||||
{
|
||||
GdkDrawingContextClass parent_instance;
|
||||
};
|
||||
|
||||
GType gdk_x11_drawing_context_get_type (void) G_GNUC_CONST;
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
#endif /* __GDK_X11_DRAWING_CONTEXT_H__ */
|
@ -36,6 +36,7 @@
|
||||
#include "gdkasync.h"
|
||||
#include "gdkeventsource.h"
|
||||
#include "gdkdisplay-x11.h"
|
||||
#include "gdkdrawingcontext-x11.h"
|
||||
#include "gdkglcontext-x11.h"
|
||||
#include "gdkprivate-x11.h"
|
||||
#include "gdk-private.h"
|
||||
@ -210,6 +211,16 @@ gdk_x11_window_get_unscaled_size (GdkWindow *window,
|
||||
*unscaled_height = impl->unscaled_height;
|
||||
}
|
||||
|
||||
static GdkDrawingContext *
|
||||
gdk_x11_window_create_draw_context (GdkWindow *window,
|
||||
const cairo_region_t *region)
|
||||
{
|
||||
return g_object_new (GDK_TYPE_X11_DRAWING_CONTEXT,
|
||||
"window", window,
|
||||
"clip", region,
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
set_sync_counter(Display *display,
|
||||
XSyncCounter counter,
|
||||
@ -5409,5 +5420,6 @@ gdk_window_impl_x11_class_init (GdkWindowImplX11Class *klass)
|
||||
impl_class->show_window_menu = gdk_x11_window_show_window_menu;
|
||||
impl_class->create_gl_context = gdk_x11_window_create_gl_context;
|
||||
impl_class->invalidate_for_new_frame = gdk_x11_window_invalidate_for_new_frame;
|
||||
impl_class->create_draw_context = gdk_x11_window_create_draw_context;
|
||||
impl_class->get_unscaled_size = gdk_x11_window_get_unscaled_size;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user