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



commit b32f630fe0a54ed2de8d414094657f3a20266775
Author: Adrien Plazas <kekun plazas laposte net>
Date:   Fri Nov 17 14:56:18 2017 +0100

    Test

 retro-gtk/retro-gl-display.c |   31 +++++++------------------------
 1 files changed, 7 insertions(+), 24 deletions(-)
---
diff --git a/retro-gtk/retro-gl-display.c b/retro-gtk/retro-gl-display.c
index a4e4706..872bfc5 100644
--- a/retro-gtk/retro-gl-display.c
+++ b/retro-gtk/retro-gl-display.c
@@ -14,7 +14,6 @@ struct _RetroGLDisplay
   RetroVideoFilter filter;
   gfloat aspect_ratio;
   gulong on_video_output_id;
-  gboolean video_changed;
   guint tick_id;
 
   RetroGLSLFilter *glsl_filter[RETRO_VIDEO_FILTER_COUNT];
@@ -105,10 +104,6 @@ retro_gl_display_on_tick (GtkWidget      *sender,
                           GdkFrameClock  *frame_clock,
                           RetroGLDisplay *self)
 {
-  if (!self->video_changed)
-    return G_SOURCE_CONTINUE;
-
-  self->video_changed = FALSE;
   gtk_widget_queue_draw (GTK_WIDGET (self));
 
   return G_SOURCE_CONTINUE;
@@ -404,14 +399,6 @@ queue_draw (GObject    *sender,
 }
 
 static void
-on_pixbuf_changed (GObject        *sender,
-                   GParamSpec     *pspec,
-                   RetroGLDisplay *self)
-{
-  self->video_changed = TRUE;
-}
-
-static void
 retro_gl_display_init (RetroGLDisplay *self)
 {
   g_signal_connect_object (G_OBJECT (self),
@@ -439,12 +426,6 @@ retro_gl_display_init (RetroGLDisplay *self)
                            (GCallback) queue_draw,
                            GTK_WIDGET (self),
                            0);
-
-  g_signal_connect_object (G_OBJECT (self),
-                           "notify::pixbuf",
-                           (GCallback) on_pixbuf_changed,
-                           GTK_WIDGET (self),
-                           0);
 }
 
 static void
@@ -528,17 +509,19 @@ retro_gl_display_set_pixbuf (RetroGLDisplay *self,
     return;
 
   g_clear_object (&self->pixbuf);
-  if (self->tick_id != 0) {
+
+  if (pixbuf == NULL && self->tick_id != 0) {
     gtk_widget_remove_tick_callback (GTK_WIDGET (self), self->tick_id);
     self->tick_id = 0;
   }
 
   if (pixbuf != NULL) {
     self->pixbuf = g_object_ref (pixbuf);
-    self->tick_id = gtk_widget_add_tick_callback (GTK_WIDGET (self),
-                                                  retro_gl_display_on_tick,
-                                                  self,
-                                                  NULL);
+    if (self->tick_id == 0)
+      self->tick_id = gtk_widget_add_tick_callback (GTK_WIDGET (self),
+                                                    retro_gl_display_on_tick,
+                                                    self,
+                                                    NULL);
   }
 
   g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_PIXBUF]);


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