gnome-games r8314 - trunk/gnometris



Author: jclinton
Date: Sat Nov 15 04:14:03 2008
New Revision: 8314
URL: http://svn.gnome.org/viewvc/gnome-games?rev=8314&view=rev

Log:
Replace gtk_drawing_areas with gtk_clutter_embeds. Remove expose handlers.

This commit causes us to depend on mutlistage support in the underlying glx
implementation.

Added:
   trunk/gnometris/preview-noclutter.cpp
      - copied, changed from r8313, /trunk/gnometris/preview.cpp
   trunk/gnometris/preview-noclutter.h
      - copied, changed from r8313, /trunk/gnometris/preview.h
Modified:
   trunk/gnometris/blockops.cpp
   trunk/gnometris/field-noclutter.cpp
   trunk/gnometris/field-noclutter.h
   trunk/gnometris/field.cpp
   trunk/gnometris/field.h
   trunk/gnometris/main.cpp
   trunk/gnometris/preview.cpp
   trunk/gnometris/preview.h
   trunk/gnometris/tetris.cpp

Modified: trunk/gnometris/blockops.cpp
==============================================================================
--- trunk/gnometris/blockops.cpp	(original)
+++ trunk/gnometris/blockops.cpp	Sat Nov 15 04:14:03 2008
@@ -21,7 +21,12 @@
 
 #include "blockops.h"
 #include "blocks.h"
+
+#ifdef HAVE_CLUTTER
 #include "field.h"
+#else
+#include "field-noclutter.h"
+#endif
 
 #define NCOLOURS 7
 

Modified: trunk/gnometris/field-noclutter.cpp
==============================================================================
--- trunk/gnometris/field-noclutter.cpp	(original)
+++ trunk/gnometris/field-noclutter.cpp	Sat Nov 15 04:14:03 2008
@@ -19,7 +19,7 @@
  * For more details see the file COPYING.
  */
 
-#include "field.h"
+#include "field-noclutter.h"
 #include "blocks.h"
 #include "renderer.h"
 

Modified: trunk/gnometris/field-noclutter.h
==============================================================================
--- trunk/gnometris/field-noclutter.h	(original)
+++ trunk/gnometris/field-noclutter.h	Sat Nov 15 04:14:03 2008
@@ -1,6 +1,6 @@
 /* -*- mode:C++; tab-width:8; c-basic-offset:8; indent-tabs-mode:true -*- */
-#ifndef __field_h__
-#define __field_h__
+#ifndef __field_noclutter_h__
+#define __field_noclutter_h__
 
 /*
  * written by J. Marcin Gorycki <marcin gorycki intel com>
@@ -78,4 +78,4 @@
 
 };
 
-#endif //__field_h__
+#endif //__field_noclutter_h__

Modified: trunk/gnometris/field.cpp
==============================================================================
--- trunk/gnometris/field.cpp	(original)
+++ trunk/gnometris/field.cpp	Sat Nov 15 04:14:03 2008
@@ -23,6 +23,8 @@
 #include "blocks.h"
 #include "renderer.h"
 
+#include <clutter-gtk/gtk-clutter-embed.h>
+
 #define FONT "Sans Bold"
 
 Field::Field():
@@ -40,9 +42,8 @@
 	renderer = NULL;
 	rendererTheme = -1;
 
-	w = gtk_drawing_area_new();
+	w = gtk_clutter_embed_new();
 
-	g_signal_connect (w, "expose_event", G_CALLBACK (expose), this);
 	g_signal_connect (w, "configure_event", G_CALLBACK (configure), this);
 	/* We do our own double-buffering. */
 	gtk_widget_set_double_buffered(w, FALSE);
@@ -155,15 +156,6 @@
   draw (0, 0, width, height);
 }
 
-gboolean
-Field::expose(GtkWidget *widget, GdkEventExpose *event, Field *field)
-{
-	field->draw (event->area.x, event->area.y,
-		     event->area.width, event->area.height);
-
-	return TRUE;
-}
-
 void
 Field::drawMessage(cairo_t *cr, const char *msg)
 {

Modified: trunk/gnometris/field.h
==============================================================================
--- trunk/gnometris/field.h	(original)
+++ trunk/gnometris/field.h	Sat Nov 15 04:14:03 2008
@@ -73,9 +73,6 @@
 
 	static gboolean configure (GtkWidget * widget, GdkEventConfigure * event,
 				   Field * field);
-	static gboolean expose (GtkWidget * widget, GdkEventExpose * event,
-				Field * field);
-
 };
 
 #endif //__field_h__

Modified: trunk/gnometris/main.cpp
==============================================================================
--- trunk/gnometris/main.cpp	(original)
+++ trunk/gnometris/main.cpp	Sat Nov 15 04:14:03 2008
@@ -80,8 +80,6 @@
 
 	games_conf_initialise ("Gnometris");
 
-	Tetris *t = new Tetris(cmdlineLevel);
-
 #ifdef HAVE_CLUTTER
 	if (gtk_clutter_init (&argc, &argv) != CLUTTER_INIT_SUCCESS ) {
 		g_printerr ("Failed to initialise clutter: %s\n", error->message);
@@ -90,6 +88,8 @@
 	}
 #endif
 
+	Tetris *t = new Tetris(cmdlineLevel);
+
 	gtk_main();
 
 	delete t;

Copied: trunk/gnometris/preview-noclutter.cpp (from r8313, /trunk/gnometris/preview.cpp)
==============================================================================
--- /trunk/gnometris/preview.cpp	(original)
+++ trunk/gnometris/preview-noclutter.cpp	Sat Nov 15 04:14:03 2008
@@ -20,7 +20,7 @@
  * For more details see the file COPYING.
  */
 
-#include "preview.h"
+#include "preview-noclutter.h"
 #include "blocks.h"
 
 #define PREVIEW_WIDTH 6

Copied: trunk/gnometris/preview-noclutter.h (from r8313, /trunk/gnometris/preview.h)
==============================================================================
--- /trunk/gnometris/preview.h	(original)
+++ trunk/gnometris/preview-noclutter.h	Sat Nov 15 04:14:03 2008
@@ -1,6 +1,6 @@
 /* -*- mode:C++; tab-width:8; c-basic-offset:8; indent-tabs-mode:true -*- */
-#ifndef __preview_h__
-#define __preview_h__
+#ifndef __preview_noclutter_h__
+#define __preview_noclutter_h__
 
 /*
  * written by J. Marcin Gorycki <marcin gorycki intel com>

Modified: trunk/gnometris/preview.cpp
==============================================================================
--- trunk/gnometris/preview.cpp	(original)
+++ trunk/gnometris/preview.cpp	Sat Nov 15 04:14:03 2008
@@ -48,7 +48,6 @@
 
 	w = gtk_drawing_area_new();
 
-	g_signal_connect (w, "expose_event", G_CALLBACK (expose), this);
 	g_signal_connect (w, "configure_event", G_CALLBACK (configure), this);
 
 	/* FIXME: We should scale with the rest of the UI, but that requires
@@ -133,49 +132,3 @@
 	return TRUE;
 }
 
-gint
-Preview::expose(GtkWidget * widget, GdkEventExpose * event, Preview * preview)
-{
-	cairo_t *cr;
-	Renderer *r;
-
-	cr = gdk_cairo_create (widget->window);
-
-	if (!preview->enabled)
-	{
-		cairo_scale (cr, 1.0*widget->allocation.width/PREVIEW_WIDTH,
-			     1.0*widget->allocation.height/PREVIEW_HEIGHT);
-		cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
-
-		cairo_set_source_rgb (cr, 0, 0, 0);
-		cairo_paint (cr);
-
-		cairo_set_source_rgb (cr, 0.8, 0.1, 0.1);
-		cairo_set_line_width (cr, 0.5);
-
-		cairo_move_to (cr, 1, 1);
-		cairo_line_to (cr, PREVIEW_WIDTH-1, PREVIEW_HEIGHT-1);
-		cairo_move_to (cr, PREVIEW_WIDTH-1, 1);
-		cairo_line_to (cr, 1, PREVIEW_HEIGHT-1);
-
-		cairo_stroke (cr);
-	}
-	else 
-	{
-		cairo_surface_t *dst;
-		
-		dst = cairo_get_target (cr);
-
-		r = rendererFactory (preview->themeID, dst, 
-				     preview->background, preview->blocks,
-				     PREVIEW_WIDTH, PREVIEW_HEIGHT,
-				     preview->width, preview->height);
-
-		r->render ();
-		delete r;
-	}
-
-	cairo_destroy (cr);
-
-	return TRUE;
-}

Modified: trunk/gnometris/preview.h
==============================================================================
--- trunk/gnometris/preview.h	(original)
+++ trunk/gnometris/preview.h	Sat Nov 15 04:14:03 2008
@@ -55,10 +55,7 @@
 
 	static gint configure (GtkWidget * widget, GdkEventConfigure * event,
 			       Preview * preview);
-	static gint expose (GtkWidget * widget, GdkEventExpose * event,
-			    Preview * preview);
-
-Block **blocks;
+	Block **blocks;
 };
 
 #endif //__preview_h__

Modified: trunk/gnometris/tetris.cpp
==============================================================================
--- trunk/gnometris/tetris.cpp	(original)
+++ trunk/gnometris/tetris.cpp	Sat Nov 15 04:14:03 2008
@@ -39,14 +39,20 @@
 #include <libgames-support/games-stock.h>
 
 #include "tetris.h"
-#include "field.h"
 #include "blockops.h"
 #include "blocks.h"
-#include "preview.h"
 #include "scoreframe.h"
 #include "highscores.h"
 #include "renderer.h"
 
+#ifdef HAVE_CLUTTER
+#include "preview.h"
+#include "field.h"
+#else
+#include "preview-noclutter.h"
+#include "field-noclutter.h"
+#endif
+
 int LINES = 20;
 int COLUMNS = 14;
 



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