[retro-gtk/wip/aplazas/gl-display: 12/12] Test



commit 13763e1af422bc4d6c029f69171cd5df1eb67cec
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Sat Nov 18 10:38:42 2017 +0100

    Test

 retro-gtk/retro-gl-display.c |    3 +--
 retro-gtk/retro-pixdata.c    |   25 ++++++++++++++++++++++++-
 2 files changed, 25 insertions(+), 3 deletions(-)
---
diff --git a/retro-gtk/retro-gl-display.c b/retro-gtk/retro-gl-display.c
index 2606027..fc43dae 100644
--- a/retro-gtk/retro-gl-display.c
+++ b/retro-gtk/retro-gl-display.c
@@ -65,9 +65,8 @@ retro_gl_display_set_pixdata (RetroGLDisplay *self,
     self->pixdata = NULL;
   }
 
-  if (pixdata != NULL) {
+  if (pixdata != NULL)
     self->pixdata = retro_pixdata_copy (pixdata);
-  }
 
   gtk_widget_queue_draw (GTK_WIDGET (self));
 }
diff --git a/retro-gtk/retro-pixdata.c b/retro-gtk/retro-pixdata.c
index 87c2b06..7ee61cd 100644
--- a/retro-gtk/retro-pixdata.c
+++ b/retro-gtk/retro-pixdata.c
@@ -365,15 +365,38 @@ retro_pixdata_to_pixbuf (RetroPixdata *self)
 gboolean
 retro_pixdata_load_gl_texture (RetroPixdata *self)
 {
+  GLenum format;
+  GLenum type;
+
   g_return_val_if_fail (self != NULL, FALSE);
 
+  switch (self->pixel_format) {
+  case RETRO_PIXEL_FORMAT_XRGB1555:
+    format = GL_BGRA;
+    type =  GL_UNSIGNED_SHORT_5_5_5_1;
+
+    break;
+  case RETRO_PIXEL_FORMAT_XRGB8888:
+    format = GL_BGRA;
+    type = GL_UNSIGNED_BYTE;
+
+    break;
+  case RETRO_PIXEL_FORMAT_RGB565:
+    format = GL_BGR;
+    type =  GL_UNSIGNED_SHORT_5_6_5;
+
+    break;
+  default:
+    return FALSE;
+  }
+
   glTexImage2D (GL_TEXTURE_2D,
                 0,
                 GL_RGB,
                 self->width,
                 self->height,
                 0,
-                GL_BGRA, GL_UNSIGNED_BYTE,
+                format, type,
                 self->data);
 
   return TRUE;


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