[Scummvm-cvs-logs] CVS: scummvm/scumm gfx.cpp,2.359,2.360 gfx.h,1.89,1.90

Eugene Sandulenko sev at users.sourceforge.net
Mon Oct 4 06:55:19 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24754

Modified Files:
	gfx.cpp gfx.h 
Log Message:
Implement case 150 for drawBMAPBg


Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.359
retrieving revision 2.360
diff -u -d -r2.359 -r2.360
--- gfx.cpp	4 Oct 2004 12:38:52 -0000	2.359
+++ gfx.cpp	4 Oct 2004 13:49:30 -0000	2.360
@@ -1396,7 +1396,7 @@
 	// for an area spanning multiple strips. In particular, the codecs 13 & 14
 	// in decompressBitmap call drawStripHE()
 	if (code == 150) {
-		warning("drawBMAPBg: case 150 unhandled");
+		fillRect((byte *)vs->backBuf, vs->pitch, 0, 0, vs->w - 1, vs->h - 1, *bmap_ptr);
 	} else if ((code >= 134 && code <= 138) || (code >= 144 && code <= 148)) {
 		_decomp_shr = code % 10;
 		_decomp_mask = 0xFF >> (8 - _decomp_shr);
@@ -2174,6 +2174,20 @@
 	}
 }
 
+void Gdi::fillRect(byte *dst, int pitch, int x1, int y1, int x2, int y2, byte color) {
+	int w, h;
+	byte *ptr = dst + x1 + y1 * pitch;
+
+	w = x2 - x1 + 1;
+	h = y2 - y1 + 1;
+
+	for (int i = 0; i < h; i++) {
+		memset(ptr, color, w);
+		ptr += pitch;
+	}
+}
+
+
 #undef READ_BIT
 #undef FILL_BITS
 

Index: gfx.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.h,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -d -r1.89 -r1.90
--- gfx.h	1 Oct 2004 20:39:47 -0000	1.89
+++ gfx.h	4 Oct 2004 13:49:30 -0000	1.90
@@ -249,6 +249,7 @@
 	void drawStrip3DO(byte *dst, int dstPitch, const byte *src, int height, const bool transpCheck) const;
 
 	void drawStripHE(byte *dst, int dstPitch, const byte *src, int width, int height, const bool transpCheck) const;
+	void fillRect(byte *dst, int dstPitch, int x1, int y1, int x2, int y2, byte color);
 
 	/* Mask decompressors */
 	void drawStripC64Mask(byte *dst, int stripnr, int width, int height) const;





More information about the Scummvm-git-logs mailing list