[Scummvm-cvs-logs] SF.net SVN: scummvm:[40385] scummvm/trunk/engines/sci/gfx

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Fri May 8 18:00:39 CEST 2009


Revision: 40385
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40385&view=rev
Author:   fingolfin
Date:     2009-05-08 16:00:39 +0000 (Fri, 08 May 2009)

Log Message:
-----------
SCI: Replaced gfx_driver_t::set_palette and install_palette by directly invoking their OSystem counterparts

Modified Paths:
--------------
    scummvm/trunk/engines/sci/gfx/gfx_driver.cpp
    scummvm/trunk/engines/sci/gfx/gfx_driver.h
    scummvm/trunk/engines/sci/gfx/operations.cpp

Modified: scummvm/trunk/engines/sci/gfx/gfx_driver.cpp
===================================================================
--- scummvm/trunk/engines/sci/gfx/gfx_driver.cpp	2009-05-08 14:29:20 UTC (rev 40384)
+++ scummvm/trunk/engines/sci/gfx/gfx_driver.cpp	2009-05-08 16:00:39 UTC (rev 40385)
@@ -38,7 +38,6 @@
 	byte *visual[2];
 	uint8 *pointer_data;
 	int xsize, ysize;
-	uint8 *palette_data;
 };
 
 #define S ((struct _scummvm_driver_state *)(drv->state))
@@ -79,10 +78,6 @@
 	drv->mode = gfx_new_mode(xfact, yfact, format, new Palette(256), 0);
 	drv->mode->palette->name = "global";
 
-	S->palette_data = new uint8[4*256];
-	for (i = 0; i < 4*256; ++i)
-		S->palette_data[i] = 0;
-
 	return GFX_OK;
 }
 
@@ -102,9 +97,6 @@
 		delete[] S->pointer_data;
 		S->pointer_data = NULL;
 
-		delete[] S->palette_data;
-		S->palette_data = NULL;
-
 		delete S;
 	}
 }
@@ -306,28 +298,6 @@
 	return GFX_OK;
 }
 
-// Palette operations
-
-static int scummvm_set_palette(gfx_driver_t *drv, int index, byte red, byte green, byte blue) {
-	if (index < 0 || index > 255) {
-		GFXERROR("Attempt to set invalid palette entry %d\n", index);
-		return GFX_ERROR;
-	}
-
-	S->palette_data[4*index+0] = red;
-	S->palette_data[4*index+1] = green;
-	S->palette_data[4*index+2] = blue;
-	S->palette_data[4*index+3] = 255;
-
-	return GFX_OK;
-}
-
-static int scummvm_install_palette(gfx_driver_t *drv, Palette* palette) {
-	g_system->setPalette(S->palette_data, 0, palette->size());
-	return GFX_OK;
-}
-
-
 gfx_driver_t gfx_driver_scummvm = {
 	NULL,
 	0, 0,
@@ -343,8 +313,6 @@
 	scummvm_update,
 	scummvm_set_static_buffer,
 	scummvm_set_pointer,
-	scummvm_set_palette,
-	scummvm_install_palette,
 	NULL
 };
 

Modified: scummvm/trunk/engines/sci/gfx/gfx_driver.h
===================================================================
--- scummvm/trunk/engines/sci/gfx/gfx_driver.h	2009-05-08 14:29:20 UTC (rev 40384)
+++ scummvm/trunk/engines/sci/gfx/gfx_driver.h	2009-05-08 16:00:39 UTC (rev 40385)
@@ -267,27 +267,6 @@
 	*/
 
 
-	/*** Palette operations ***/
-
-	int (*set_palette)(gfx_driver_t *drv, int index, byte red, byte green,
-	                   byte blue);
-	/* Manipulates a palette index in the hardware palette.
-	** The actual update is not performed until install_palette() is called.
-	** This way updates can be batched.
-	** Parameters: (gfx_driver_t *) drv: The driver affected
-	**             (int) index: The index of the palette entry to modify
-	**             (int x int x int) red, green, blue: The RGB intensities to
-	**                               set for the specified index. The minimum
-	**                               intensity is 0, maximum is 0xff.
-	** Returns   : (int) GFX_OK, GFX_ERROR or GFX_FATAL
-	** This function does not need to update mode->palette, as this is done
-	** by the calling code.
-	** set_palette() is only required for targets supporting color index mode.
-	*/
-
-	int (*install_palette)(gfx_driver_t *drv, Palette* pal);
-	/* As set_palette, but for the full palette. */
-
 	void *state; /* Reserved for internal use */
 
 };

Modified: scummvm/trunk/engines/sci/gfx/operations.cpp
===================================================================
--- scummvm/trunk/engines/sci/gfx/operations.cpp	2009-05-08 14:29:20 UTC (rev 40384)
+++ scummvm/trunk/engines/sci/gfx/operations.cpp	2009-05-08 16:00:39 UTC (rev 40385)
@@ -202,12 +202,17 @@
 
 	// TODO: We probably want to only update the colours used by this pixmap
 	// here. This will require updating the 'dirty' system.
-	for (unsigned int i = 0; i < driver->mode->palette->size(); ++i) {
+	uint8 paletteData[4*256];
+	const uint paletteSize = driver->mode->palette->size();
+	for (uint i = 0; i < paletteSize; ++i) {
 		const PaletteEntry& c = (*driver->mode->palette)[i];
-		driver->set_palette(driver, i, c.r, c.g, c.b);
+		paletteData[4*i+0] = c.r;
+		paletteData[4*i+1] = c.g;
+		paletteData[4*i+2] = c.b;
+		paletteData[4*i+3] = 255;
 	}
 
-	driver->install_palette(driver, driver->mode->palette);
+	g_system->setPalette(paletteData, 0, paletteSize);
 	driver->mode->palette->markClean();
 	return GFX_OK;
 }


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list