gsk: Export gsk_broadway_renderer_new()
authorBenjamin Otte <otte@redhat.com>
Thu, 2 May 2019 00:46:23 +0000 (02:46 +0200)
committerBenjamin Otte <otte@redhat.com>
Sun, 5 May 2019 05:18:39 +0000 (07:18 +0200)
... when broadway is enabled.

docs/reference/gsk/gsk4-sections.txt
gsk/broadway/gskbroadwayrenderer.c
gsk/broadway/gskbroadwayrenderer.h [new file with mode: 0644]
gsk/broadway/gskbroadwayrendererprivate.h [deleted file]
gsk/gsk.h
gsk/gskrenderer.c
gsk/meson.build

index f37c5c3b2ef9e6967d0149aaf3a4176983f63dec..3573f8cb31d1a858c8687d757c5e789e5e4f2a82 100644 (file)
@@ -10,6 +10,7 @@ gsk_renderer_render_texture
 gsk_renderer_new_for_surface
 gsk_gl_renderer_new
 gsk_cairo_renderer_new
+gsk_broadway_renderer_new
 <SUBSECTION Standard>
 GSK_IS_RENDERER
 GSK_RENDERER
index 594c2cba8cb27b48f9b797f128e28977b26eebb7..662ee649340a5ba95071fb09b5f843fead098bb0 100644 (file)
@@ -1,6 +1,7 @@
 #include "config.h"
 
-#include "gskbroadwayrendererprivate.h"
+#include "gskbroadwayrenderer.h"
+
 #include "broadway/gdkprivate-broadway.h"
 
 #include "gskdebugprivate.h"
@@ -827,3 +828,23 @@ static void
 gsk_broadway_renderer_init (GskBroadwayRenderer *self)
 {
 }
+
+/**
+ * gsk_broadway_renderer_new:
+ *
+ * Creates a new Broadway renderer.
+ *
+ * The Broadway renderer is the default renderer for the broadway backend.
+ * It will only work with broadway surfaces, otherwise it will fail the
+ * call to gdk_renderer_realize().
+ *
+ * This function is only available when GTK was compiled with Broadway
+ * support.
+ *
+ * Returns: a new Broadway renderer.
+ **/
+GskRenderer *
+gsk_broadway_renderer_new (void)
+{
+  return g_object_new (GSK_TYPE_BROADWAY_RENDERER, NULL);
+}
diff --git a/gsk/broadway/gskbroadwayrenderer.h b/gsk/broadway/gskbroadwayrenderer.h
new file mode 100644 (file)
index 0000000..9e8d3db
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ * Copyright © 2019  Alexander Larsson
+ *
+ * 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.1 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 __GSK_BROADWAY_RENDERER_H__
+#define __GSK_BROADWAY_RENDERER_H__
+
+#include <gdk/gdk.h>
+#include <gsk/gskrenderer.h>
+
+#ifdef GDK_WINDOWING_BROADWAY
+
+#include <gdk/broadway/gdkbroadway.h>
+
+G_BEGIN_DECLS
+
+#define GSK_TYPE_BROADWAY_RENDERER (gsk_broadway_renderer_get_type ())
+
+#define GSK_BROADWAY_RENDERER(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRenderer))
+#define GSK_IS_BROADWAY_RENDERER(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_BROADWAY_RENDERER))
+#define GSK_BROADWAY_RENDERER_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass))
+#define GSK_IS_BROADWAY_RENDERER_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_BROADWAY_RENDERER))
+#define GSK_BROADWAY_RENDERER_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass))
+
+typedef struct _GskBroadwayRenderer                GskBroadwayRenderer;
+typedef struct _GskBroadwayRendererClass           GskBroadwayRendererClass;
+
+
+GDK_AVAILABLE_IN_ALL
+GType                   gsk_broadway_renderer_get_type          (void) G_GNUC_CONST;
+
+GDK_AVAILABLE_IN_ALL
+GskRenderer *           gsk_broadway_renderer_new               (void);
+
+G_END_DECLS
+
+#endif /* GDK_WINDOWING_BROADWAY */
+
+#endif /* __GSK_BROADWAY_RENDERER_H__ */
diff --git a/gsk/broadway/gskbroadwayrendererprivate.h b/gsk/broadway/gskbroadwayrendererprivate.h
deleted file mode 100644 (file)
index acc69f7..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef __GSK_BROADWAY_RENDERER_PRIVATE_H__
-#define __GSK_BROADWAY_RENDERER_PRIVATE_H__
-
-#include "broadway/gdkbroadway.h"
-#include <gsk/gskrenderer.h>
-
-G_BEGIN_DECLS
-
-#define GSK_TYPE_BROADWAY_RENDERER (gsk_broadway_renderer_get_type ())
-
-#define GSK_BROADWAY_RENDERER(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRenderer))
-#define GSK_IS_BROADWAY_RENDERER(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_BROADWAY_RENDERER))
-#define GSK_BROADWAY_RENDERER_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass))
-#define GSK_IS_BROADWAY_RENDERER_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_BROADWAY_RENDERER))
-#define GSK_BROADWAY_RENDERER_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass))
-
-typedef struct _GskBroadwayRenderer                GskBroadwayRenderer;
-typedef struct _GskBroadwayRendererClass           GskBroadwayRendererClass;
-
-GType gsk_broadway_renderer_get_type (void) G_GNUC_CONST;
-
-G_END_DECLS
-
-#endif /* __GSK_BROADWAY_RENDERER_PRIVATE_H__ */
index 5f0938b0e062132b10febac0d093b49f1651d708..b8f6d58ee961ffeaede76f6c595a1be4dd5d1ff0 100644 (file)
--- a/gsk/gsk.h
+++ b/gsk/gsk.h
@@ -28,6 +28,7 @@
 
 #include <gsk/gskcairorenderer.h>
 #include <gsk/gl/gskglrenderer.h>
+#include <gsk/broadway/gskbroadwayrenderer.h>
 
 #include <gsk/gsktypes.h>
 #include <gsk/gskenumtypes.h>
index b5b07f97078797f70637f44d4c6f55c6bfd18b4f..73c3247b19cf7c4e457c0dd8b5ba032d3dc08c09 100644 (file)
@@ -55,7 +55,7 @@
 #include <gdk/wayland/gdkwayland.h>
 #endif
 #ifdef GDK_WINDOWING_BROADWAY
-#include "broadway/gskbroadwayrendererprivate.h"
+#include "broadway/gskbroadwayrenderer.h"
 #endif
 #ifdef GDK_RENDERING_VULKAN
 #include "vulkan/gskvulkanrendererprivate.h"
index b3d87fcec9cc3ea5611df361bd75de9d5f8ed13f..c28d9319325073ff55a9ce1d90fb5f64355313ea 100644 (file)
@@ -65,6 +65,12 @@ gsk_public_gl_headers = files([
 install_headers(gsk_public_gl_headers, subdir: 'gtk-4.0/gsk/gl')
 gsk_public_headers += gsk_public_gl_headers
 
+gsk_public_broadway_headers = files([
+  'broadway/gskbroadwayrenderer.h'
+])
+install_headers(gsk_public_broadway_headers, subdir: 'gtk-4.0/gsk/broadway')
+gsk_public_headers += gsk_public_broadway_headers
+
 gsk_private_vulkan_shaders = []
 # This is an odd split because we use configure_file() below to workaround
 # a limitation in meson preventing using custom_target() with gnome.compile_resources()
@@ -104,7 +110,7 @@ if have_vulkan
 endif # have_vulkan
 
 if get_variable('broadway_enabled')
-  gsk_private_sources += files([
+  gsk_public_sources += files([
     'broadway/gskbroadwayrenderer.c',
   ])
 endif