gnome-games r8393 - trunk/gnometris



Author: jclinton
Date: Mon Jan  5 06:16:18 2009
New Revision: 8393
URL: http://svn.gnome.org/viewvc/gnome-games?rev=8393&view=rev

Log:
Further seperate the clutter and noclutter code

Added:
   trunk/gnometris/block-cache.cpp
      - copied, changed from r8392, /trunk/gnometris/preview-noclutter.h
   trunk/gnometris/block-cache.h
      - copied, changed from r8392, /trunk/gnometris/preview-noclutter.h
   trunk/gnometris/renderer-noclutter.cpp
      - copied, changed from r8392, /trunk/gnometris/renderer.cpp
   trunk/gnometris/renderer-noclutter.h
      - copied, changed from r8392, /trunk/gnometris/renderer.h
Modified:
   trunk/gnometris/Makefile.am
   trunk/gnometris/field-noclutter.cpp
   trunk/gnometris/field-noclutter.h
   trunk/gnometris/field.cpp
   trunk/gnometris/field.h
   trunk/gnometris/preview-noclutter.h
   trunk/gnometris/renderer.cpp
   trunk/gnometris/renderer.h
   trunk/gnometris/tetris.cpp

Modified: trunk/gnometris/Makefile.am
==============================================================================
--- trunk/gnometris/Makefile.am	(original)
+++ trunk/gnometris/Makefile.am	Mon Jan  5 06:16:18 2009
@@ -10,8 +10,6 @@
 	blockops.h \
 	highscores.cpp \
 	highscores.h \
-	renderer.cpp \
-	renderer.h \
 	scoreframe.cpp \
 	scoreframe.h \
 	tetris.cpp \
@@ -22,13 +20,19 @@
 	field.cpp \
 	field.h \
 	preview.cpp \
-	preview.h
+	preview.h \
+	renderer.cpp \
+	renderer.h \
+	block-cache.cpp \
+	block-cache.h
 else
 gnometris_SOURCES += \
 	field-noclutter.cpp \
 	field-noclutter.h \
 	preview-noclutter.cpp \
-	preview-noclutter.h
+	preview-noclutter.h \
+	renderer-noclutter.cpp \
+	renderer-noclutter.h
 endif
 
 gnometris_CPPFLAGS = \
@@ -53,23 +57,23 @@
 	main.cpp \
 	blocks.cpp \
 	blocks.h \
-	preview.cpp \
-	preview.h \
+	preview-noclutter.cpp \
+	preview-noclutter.h \
 	blockops.cpp \
 	blockops.h \
 	field-noclutter.cpp \
 	field-noclutter.h \
 	highscores.cpp \
 	highscores.h \
-	renderer.cpp \
-	renderer.h \
+	renderer-noclutter.cpp \
+	renderer-noclutter.h \
 	scoreframe.cpp \
 	scoreframe.h \
 	tetris.cpp \
 	tetris.h
 
 gnometris_noclutter_CPPFLAGS = $(gnometris_CPPFLAGS) -UHAVE_CLUTTER
-gnometris_noclutter_CXXFLAGS = $(gnometris_CXXFLAGS)
+gnometris_noclutter_CXXFLAGS = $(gnometris_CXXFLAGS) -UHAVE_CLUTTER
 gnometris_noclutter_LDADD = $(gnometris_LDADD)
 gnometris_CPPFLAGS += -DHAVE_CLUTTER
 gnometris_CXXFLAGS += $(CLUTTER_CFLAGS)

Copied: trunk/gnometris/block-cache.cpp (from r8392, /trunk/gnometris/preview-noclutter.h)
==============================================================================
--- /trunk/gnometris/preview-noclutter.h	(original)
+++ trunk/gnometris/block-cache.cpp	Mon Jan  5 06:16:18 2009
@@ -1,9 +1,9 @@
 /* -*- mode:C++; tab-width:8; c-basic-offset:8; indent-tabs-mode:true -*- */
-#ifndef __preview_noclutter_h__
-#define __preview_noclutter_h__
-
 /*
- * written by J. Marcin Gorycki <marcin gorycki intel com>
+ * written by Jason Clinton <me jasonclinton com>
+ * inspired by the cache code writen by Neil Roberts for Aiselriot
+ *
+ * Copyright (C) 2005 by Callum McKenzie
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,43 +22,16 @@
  * For more details see the file COPYING.
  */
 
-#include "tetris.h"
-#include "blockops.h"
-#include "renderer.h"
-
-class Preview {
-public:
-	Preview ();
-	~Preview ();
-
-	GtkWidget *getWidget () {
-		return w;
-	}
-
-	void enable (bool enable);
-	void previewBlock (int bnr, int brot, int bcolor);
-	void setTheme (int id);
-
-private:
-	GtkWidget * w;
-	gint width;
-	gint height;
-
-	int blocknr;
-	int blockrot;
-	int blockcolor;
-
-	bool enabled;
-
-	int themeID;
-	cairo_surface_t *background;
-
-	static gint configure (GtkWidget * widget, GdkEventConfigure * event,
-			       Preview * preview);
-	static gint expose (GtkWidget * widget, GdkEventExpose * event,
-			    Preview * preview);
+#include "block-cache.h"
+
+GnometrisBlockCache::GnometrisBlockCache (int total_slots)
+{
+	slots = total_slots;
+}
+
+GnometrisBlockCache::~GnometrisBlockCache ()
+{
+
+}
 
-Block **blocks;
-};
 
-#endif //__preview_h__

Copied: trunk/gnometris/block-cache.h (from r8392, /trunk/gnometris/preview-noclutter.h)
==============================================================================
--- /trunk/gnometris/preview-noclutter.h	(original)
+++ trunk/gnometris/block-cache.h	Mon Jan  5 06:16:18 2009
@@ -1,9 +1,9 @@
 /* -*- mode:C++; tab-width:8; c-basic-offset:8; indent-tabs-mode:true -*- */
-#ifndef __preview_noclutter_h__
-#define __preview_noclutter_h__
-
 /*
- * written by J. Marcin Gorycki <marcin gorycki intel com>
+ * written by Jason Clinton <me jasonclinton com>
+ * inspired by the cache code writen by Neil Roberts for Aiselriot
+ *
+ * Copyright (C) 2005 by Callum McKenzie
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,43 +22,21 @@
  * For more details see the file COPYING.
  */
 
-#include "tetris.h"
-#include "blockops.h"
-#include "renderer.h"
-
-class Preview {
-public:
-	Preview ();
-	~Preview ();
+#ifndef __blockcache_h__
+#define __blockcache_h__
 
-	GtkWidget *getWidget () {
-		return w;
-	}
+#include <cogl/cogl.h>
 
-	void enable (bool enable);
-	void previewBlock (int bnr, int brot, int bcolor);
-	void setTheme (int id);
+class GnometrisBlockCache
+{
+public:
+	GnometrisBlockCache (int);	
+	~GnometrisBlockCache ();
+	CoglHandle get_block_by_id (int);
+	CoglHandle get_block_by_color (int);
 
 private:
-	GtkWidget * w;
-	gint width;
-	gint height;
-
-	int blocknr;
-	int blockrot;
-	int blockcolor;
-
-	bool enabled;
-
-	int themeID;
-	cairo_surface_t *background;
-
-	static gint configure (GtkWidget * widget, GdkEventConfigure * event,
-			       Preview * preview);
-	static gint expose (GtkWidget * widget, GdkEventExpose * event,
-			    Preview * preview);
-
-Block **blocks;
+	int slots;
+	
 };
-
-#endif //__preview_h__
+#endif //__blockcache_h__

Modified: trunk/gnometris/field-noclutter.cpp
==============================================================================
--- trunk/gnometris/field-noclutter.cpp	(original)
+++ trunk/gnometris/field-noclutter.cpp	Mon Jan  5 06:16:18 2009
@@ -21,7 +21,7 @@
 
 #include "field-noclutter.h"
 #include "blocks.h"
-#include "renderer.h"
+#include "renderer-noclutter.h"
 
 #define FONT "Sans Bold"
 

Modified: trunk/gnometris/field-noclutter.h
==============================================================================
--- trunk/gnometris/field-noclutter.h	(original)
+++ trunk/gnometris/field-noclutter.h	Mon Jan  5 06:16:18 2009
@@ -24,7 +24,7 @@
 
 #include "tetris.h"
 #include "blockops.h"
-#include "renderer.h"
+#include "renderer-noclutter.h"
 
 class Field:public BlockOps {
 public:

Modified: trunk/gnometris/field.cpp
==============================================================================
--- trunk/gnometris/field.cpp	(original)
+++ trunk/gnometris/field.cpp	Mon Jan  5 06:16:18 2009
@@ -109,30 +109,21 @@
 	redraw ();
 }
 
+void
+Field::rescaleBlockCache ()
+{
+	return;
+}
+
 gboolean
 Field::configure(GtkWidget *widget, GdkEventConfigure *event, Field *field)
 {
-	cairo_t *cr;
-
 	field->width = widget->allocation.width;
 	field->height = widget->allocation.height;
 
-	cr = gdk_cairo_create (widget->window);
-
-	if (field->buffer)
-		cairo_surface_destroy(field->buffer);
-
-	// backing buffer
-	field->buffer =  cairo_surface_create_similar (cairo_get_target (cr),
-						       CAIRO_CONTENT_COLOR,
-						       widget->allocation.width,
-						       widget->allocation.height);
-
-	cairo_destroy (cr);
-
-
 	field->rescaleBackground ();
-
+	field->rescaleBlockCache ();
+	
 	return TRUE;
 }
 

Modified: trunk/gnometris/field.h
==============================================================================
--- trunk/gnometris/field.h	(original)
+++ trunk/gnometris/field.h	Mon Jan  5 06:16:18 2009
@@ -70,6 +70,7 @@
 	void draw (gint x, gint y, gint w, gint h);
 	void draw ();
 	void rescaleBackground ();
+	void rescaleBlockCache ();
 
 	static gboolean configure (GtkWidget * widget, GdkEventConfigure * event,
 				   Field * field);

Modified: trunk/gnometris/preview-noclutter.h
==============================================================================
--- trunk/gnometris/preview-noclutter.h	(original)
+++ trunk/gnometris/preview-noclutter.h	Mon Jan  5 06:16:18 2009
@@ -24,7 +24,7 @@
 
 #include "tetris.h"
 #include "blockops.h"
-#include "renderer.h"
+#include "renderer-noclutter.h"
 
 class Preview {
 public:

Copied: trunk/gnometris/renderer-noclutter.cpp (from r8392, /trunk/gnometris/renderer.cpp)
==============================================================================
--- /trunk/gnometris/renderer.cpp	(original)
+++ trunk/gnometris/renderer-noclutter.cpp	Mon Jan  5 06:16:18 2009
@@ -22,7 +22,7 @@
  */
 
 
-#include "renderer.h"
+#include "renderer-noclutter.h"
 
 const ThemeTableEntry ThemeTable[] = {{N_("Plain"), "plain"},
 				      {N_("Joined"), "joined"},

Copied: trunk/gnometris/renderer-noclutter.h (from r8392, /trunk/gnometris/renderer.h)
==============================================================================

Modified: trunk/gnometris/renderer.cpp
==============================================================================
--- trunk/gnometris/renderer.cpp	(original)
+++ trunk/gnometris/renderer.cpp	Mon Jan  5 06:16:18 2009
@@ -87,6 +87,7 @@
 {
 	target = cairo_surface_reference (dst);
 	background = cairo_surface_reference (bg);
+	block_cache = new GnometrisBlockCache(5);
 	data = src;
 	width = w;
 	height = h;

Modified: trunk/gnometris/renderer.h
==============================================================================
--- trunk/gnometris/renderer.h	(original)
+++ trunk/gnometris/renderer.h	Mon Jan  5 06:16:18 2009
@@ -27,6 +27,7 @@
 #include <cairo.h>
 #include <glib.h>
 
+#include "block-cache.h"
 #include "blockops.h"
 
 struct ThemeTableEntry {
@@ -52,8 +53,8 @@
 	int pxwidth;
 	int pxheight;
 protected:
-
-	cairo_surface_t * target;
+	GnometrisBlockCache *block_cache;
+	cairo_surface_t *target;
 	cairo_surface_t *background;
 
 	virtual void drawCell (cairo_t * cr, gint x, gint y);

Modified: trunk/gnometris/tetris.cpp
==============================================================================
--- trunk/gnometris/tetris.cpp	(original)
+++ trunk/gnometris/tetris.cpp	Mon Jan  5 06:16:18 2009
@@ -43,14 +43,15 @@
 #include "blocks.h"
 #include "scoreframe.h"
 #include "highscores.h"
-#include "renderer.h"
 
 #ifdef HAVE_CLUTTER
 #include "preview.h"
 #include "field.h"
+#include "renderer.h"
 #else
 #include "preview-noclutter.h"
 #include "field-noclutter.h"
+#include "renderer-noclutter.h"
 #endif
 
 int LINES = 20;



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