[retro-gtk/wip/aplazas/0.13: 12/14] Port PixelFormat to C



commit cfeb01612950d31f3a8d2f8c98505df892f7b871
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Wed Sep 6 07:24:03 2017 +0200

    Port PixelFormat to C

 retro-gtk/Makefile.am                   |    6 ++++-
 retro-gtk/retro-core.h                  |    1 +
 retro-gtk/retro-pixel-format.c          |   26 +++++++++++++++++++++
 retro-gtk/retro-pixel-format.h          |   33 ++++++++++++++++++++++++++
 retro-gtk/vapi/retro-pixel-format.vapi  |    9 +++++++
 retro-gtk/video.vala                    |   38 -------------------------------
 retro-gtk/video/retro-video-converter.c |    2 +-
 7 files changed, 75 insertions(+), 40 deletions(-)
---
diff --git a/retro-gtk/Makefile.am b/retro-gtk/Makefile.am
index b7cb1d8..cccc20e 100644
--- a/retro-gtk/Makefile.am
+++ b/retro-gtk/Makefile.am
@@ -55,9 +55,9 @@ libretro_gtk_la_SOURCES = \
        retro-module.c \
        retro-module-query.vala \
        retro-module-iterator.vala \
+       retro-pixel-format.c \
        retro-video-filter.c \
        rumble.vala \
-       video.vala \
        retro-core.c \
        retro-environment.c \
        libretro-environment.h \
@@ -89,6 +89,7 @@ libretro_gtk_la_VALAFLAGS = \
        --pkg retro-input-descriptor \
        --pkg retro-input-device \
        --pkg retro-video-filter \
+       --pkg retro-pixel-format \
        --pkg gio-2.0  \
        --pkg glib-2.0 \
        --pkg gmodule-2.0 \
@@ -155,6 +156,7 @@ Retro_0_12_gir_SCANNERFLAGS = \
        --c-include=retro-lightgun-id.h \
        --c-include=retro-mouse-id.h \
        --c-include=retro-pointer-id.h \
+       --c-include=retro-pixel-format.h \
        --c-include=retro-video-filter.h \
        --pkg-export=retro-gtk-0.12 \
        $(NULL)
@@ -195,6 +197,7 @@ EXTRA_DIST = \
        retro-module.h \
        retro-lightgun-id.h \
        retro-mouse-id.h \
+       retro-pixel-format.h \
        retro-pointer-id.h \
        retro-rotation.h \
        retro-system-av-info.h \
@@ -205,6 +208,7 @@ EXTRA_DIST = \
        vapi/retro-device-type.vapi \
        vapi/retro-input-descriptor.vapi \
        vapi/retro-input-device.vapi \
+       vapi/retro-pixel-format.vapi \
        vapi/retro-video-filter.vapi \
        $(NULL)
 
diff --git a/retro-gtk/retro-core.h b/retro-gtk/retro-core.h
index d651c05..12058db 100644
--- a/retro-gtk/retro-core.h
+++ b/retro-gtk/retro-core.h
@@ -6,6 +6,7 @@
 #include "retro-disk-control-callback.h"
 #include "retro-gtk-internal.h"
 #include "retro-module.h"
+#include "retro-pixel-format.h"
 #include "retro-rotation.h"
 
 G_BEGIN_DECLS
diff --git a/retro-gtk/retro-pixel-format.c b/retro-gtk/retro-pixel-format.c
new file mode 100644
index 0000000..5184211
--- /dev/null
+++ b/retro-gtk/retro-pixel-format.c
@@ -0,0 +1,26 @@
+// This file is part of retro-gtk. License: GPL-3.0+.
+
+#include "retro-pixel-format.h"
+
+GType
+retro_pixel_format_get_type (void)
+{
+  static volatile gsize retro_pixel_format_type = 0;
+
+  if (g_once_init_enter (&retro_pixel_format_type)) {
+    static const GEnumValue values[] = {
+      { RETRO_PIXEL_FORMAT_XRGB1555, "RETRO_PIXEL_FORMAT_XRGB1555", "xrgb1555" },
+      { RETRO_PIXEL_FORMAT_XRGB8888, "RETRO_PIXEL_FORMAT_XRGB8888", "xrgb8888" },
+      { RETRO_PIXEL_FORMAT_RGB565, "RETRO_PIXEL_FORMAT_RGB565", "rgb565" },
+      { RETRO_PIXEL_FORMAT_UNKNOWN, "RETRO_PIXEL_FORMAT_UNKNOWN", "unknown" },
+      { 0, NULL, NULL },
+    };
+    GType type;
+
+    type = g_enum_register_static ("RetroPixelFormat", values);
+
+    g_once_init_leave (&retro_pixel_format_type, type);
+  }
+
+  return retro_pixel_format_type;
+}
diff --git a/retro-gtk/retro-pixel-format.h b/retro-gtk/retro-pixel-format.h
new file mode 100644
index 0000000..e00853f
--- /dev/null
+++ b/retro-gtk/retro-pixel-format.h
@@ -0,0 +1,33 @@
+// This file is part of retro-gtk. License: GPL-3.0+.
+
+#ifndef RETRO_PIXEL_FORMAT_H
+#define RETRO_PIXEL_FORMAT_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define RETRO_TYPE_PIXEL_FORMAT (retro_pixel_format_get_type ())
+
+GType retro_pixel_format_get_type (void) G_GNUC_CONST;
+
+/**
+ * RetroPixelFormat:
+ * @RETRO_PIXEL_FORMAT_XRGB1555: Native endian, the first bit is ignored.
+ * @RETRO_PIXEL_FORMAT_XRGB8888: Native endian, the first 8 bits are ignored.
+ * @RETRO_PIXEL_FORMAT_RGB565: Native endian.
+ * @RETRO_PIXEL_FORMAT_UNKNOWN: An unknown format.
+ *
+ * Represents the pixel formats used by Libretro.
+ */
+typedef enum
+{
+  RETRO_PIXEL_FORMAT_XRGB1555,
+  RETRO_PIXEL_FORMAT_XRGB8888,
+  RETRO_PIXEL_FORMAT_RGB565,
+  RETRO_PIXEL_FORMAT_UNKNOWN = -1,
+} RetroPixelFormat;
+
+G_END_DECLS
+
+#endif /* RETRO_PIXEL_FORMAT_H */
diff --git a/retro-gtk/vapi/retro-pixel-format.vapi b/retro-gtk/vapi/retro-pixel-format.vapi
new file mode 100644
index 0000000..9d5232b
--- /dev/null
+++ b/retro-gtk/vapi/retro-pixel-format.vapi
@@ -0,0 +1,9 @@
+// This file is part of retro-gtk. License: GPL-3.0+.
+
+[CCode (cheader_filename = "retro-pixel-format.h")]
+public enum Retro.PixelFormat {
+       XRGB1555,
+       XRGB8888,
+       RGB565,
+       UNKNOWN = -1,
+}
diff --git a/retro-gtk/video/retro-video-converter.c b/retro-gtk/video/retro-video-converter.c
index 6057a6a..4e675f7 100644
--- a/retro-gtk/video/retro-video-converter.c
+++ b/retro-gtk/video/retro-video-converter.c
@@ -2,7 +2,7 @@
 
 #include <gdk-pixbuf/gdk-pixbuf.h>
 
-#include "retro-gtk-internal.h"
+#include "retro-pixel-format.h"
 
 typedef struct _xrgb1555 {
   guint16 b: 5;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]