[Scummvm-cvs-logs] CVS: scummvm actor.cpp,1.40,1.41 costume.cpp,1.21,1.22 gfx.cpp,1.53,1.54 gui.cpp,1.20,1.21 object.cpp,1.45,1.46 script.cpp,1.38,1.39 scumm.h,1.92,1.93 string.cpp,1.33,1.34

Vincent Hamm yazoo at users.sourceforge.net
Wed Mar 20 14:59:03 CET 2002


Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv4737

Modified Files:
	actor.cpp costume.cpp gfx.cpp gui.cpp object.cpp script.cpp 
	scumm.h string.cpp 
Log Message:
Preliminary redesigned of the virtual screen system. Now all the screen buffers are in a single 320*200 buffer, making video subprocess far more easy to do. On glitch remain in inventory's black area

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/actor.cpp,v
retrieving revision 1.40
retrieving revision 1.41
diff -C2 -d -r1.40 -r1.41
*** actor.cpp	20 Mar 2002 17:51:06 -0000	1.40
--- actor.cpp	20 Mar 2002 22:58:41 -0000	1.41
***************
*** 921,925 ****
  		ar.charsetmask = _vars[VAR_CHARSET_MASK]!=0;
  	
! 		ar.outptr = getResourceAddress(rtBuffer, 1) + virtscr->xstart;
  		ar.outwidth = virtscr->width;
  		ar.outheight = virtscr->height;
--- 921,925 ----
  		ar.charsetmask = _vars[VAR_CHARSET_MASK]!=0;
  	
! 		ar.outptr = virtscr->screenPtr + virtscr->xstart;
  		ar.outwidth = virtscr->width;
  		ar.outheight = virtscr->height;

Index: costume.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/costume.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** costume.cpp	20 Mar 2002 17:51:06 -0000	1.21
--- costume.cpp	20 Mar 2002 22:58:41 -0000	1.22
***************
*** 272,276 ****
  
  	_bgbak_ptr = _vm->getResourceAddress(rtBuffer, 5) + _vm->virtscr[0].xstart + _ypos*320 + _xpos;
! 	_backbuff_ptr = _vm->getResourceAddress(rtBuffer, 1) + _vm->virtscr[0].xstart + _ypos*320 + _xpos;
  	charsetmask = _vm->hasCharsetMask(_left, _top + _vm->virtscr[0].topline, _right, _vm->virtscr[0].topline + _bottom);
  	masking = 0;
--- 272,276 ----
  
  	_bgbak_ptr = _vm->getResourceAddress(rtBuffer, 5) + _vm->virtscr[0].xstart + _ypos*320 + _xpos;
! 	_backbuff_ptr = _vm->virtscr[0].screenPtr + _vm->virtscr[0].xstart + _ypos*320 + _xpos;
  	charsetmask = _vm->hasCharsetMask(_left, _top + _vm->virtscr[0].topline, _right, _vm->virtscr[0].topline + _bottom);
  	masking = 0;

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gfx.cpp,v
retrieving revision 1.53
retrieving revision 1.54
diff -C2 -d -r1.53 -r1.54
*** gfx.cpp	20 Mar 2002 17:51:06 -0000	1.53
--- gfx.cpp	20 Mar 2002 22:58:41 -0000	1.54
***************
*** 49,53 ****
  	
  	for (i=0; i<3; i++) {
! 		nukeResource(rtBuffer, i+1);
  		nukeResource(rtBuffer, i+5);
  	}
--- 49,53 ----
  	
  	for (i=0; i<3; i++) {
! //		nukeResource(rtBuffer, i+1);
  		nukeResource(rtBuffer, i+5);
  	}
***************
*** 82,89 ****
  	size = vs->width * vs->height;
  	vs->size = size;
  
  	if (vs->scrollable)
  		size += 320*4;
! 	createResource(rtBuffer, slot+1, size);
  
  	if (twobufs) {
--- 82,92 ----
  	size = vs->width * vs->height;
  	vs->size = size;
+ 	vs->backBuf = NULL;
  
  	if (vs->scrollable)
  		size += 320*4;
! //	createResource(rtBuffer, slot+1, size);
! 
! 	vs->screenPtr = _videoBuffer+320*top;
  
  	if (twobufs) {
***************
*** 126,130 ****
  		vs = &virtscr[0];
  
! 		blitToScreen(this, getResourceAddress(rtBuffer, 1) + _screenStartStrip*8,
  			0, vs->topline, 320, vs->height);
  
--- 129,133 ----
  		vs = &virtscr[0];
  
! 		blitToScreen(this, vs->screenPtr + _screenStartStrip*8,
  			0, vs->topline, 320, vs->height);
  
***************
*** 211,215 ****
  		b = vs->height;
  
! 	ptr = _vm->getResourceAddress(rtBuffer, vs->number+1) + (t*40+x)*8 + _readOffs;
  	blitToScreen(_vm, ptr, x*8, vs->topline+t, w, b-t);
  }
--- 214,218 ----
  		b = vs->height;
  
! 	ptr = vs->screenPtr + (t*40+x)*8 + _readOffs;
  	blitToScreen(_vm, ptr, x*8, vs->topline+t, w, b-t);
  }
***************
*** 523,527 ****
  
  	vs = &virtscr[0];
! 	gdi._backbuff_ptr = getResourceAddress(rtBuffer, 1) + vs->xstart;
  	memset(gdi._backbuff_ptr, 0, vs->size);
  
--- 526,530 ----
  
  	vs = &virtscr[0];
! 	gdi._backbuff_ptr = vs->screenPtr + vs->xstart;
  	memset(gdi._backbuff_ptr, 0, vs->size);
  
***************
*** 664,668 ****
  			vs->bdirty[sx] = bottom;
  		
! 		_backbuff_ptr = _vm->getResourceAddress(rtBuffer, vs->number+1) + (y*40+x)*8;
  		_bgbak_ptr = _vm->getResourceAddress(rtBuffer, vs->number+5) + (y*40+x)*8;
  		if (!twobufs) {
--- 667,671 ----
  			vs->bdirty[sx] = bottom;
  		
! 		_backbuff_ptr = vs->screenPtr + (y*40+x)*8;
  		_bgbak_ptr = _vm->getResourceAddress(rtBuffer, vs->number+5) + (y*40+x)*8;
  		if (!twobufs) {
***************
*** 1446,1450 ****
  	height = (top-topline) * 320 + vs->xstart + left;
  	
! 	backbuff = getResourceAddress(rtBuffer, vs->number+1) + height;
  	bgbak = getResourceAddress(rtBuffer, vs->number+5) + height;
  	mask = getResourceAddress(rtBuffer, 9) + top * 40 + (left>>3) + _screenStartStrip;
--- 1449,1453 ----
  	height = (top-topline) * 320 + vs->xstart + left;
  	
! 	backbuff = vs->screenPtr + height;
  	bgbak = getResourceAddress(rtBuffer, vs->number+5) + height;
  	mask = getResourceAddress(rtBuffer, 9) + top * 40 + (left>>3) + _screenStartStrip;
***************
*** 2022,2026 ****
  	_mask_ptr = _vm->getResourceAddress(rtBuffer, 9)	+ offs;
  	_bgbak_ptr = _vm->getResourceAddress(rtBuffer, 5)	+ (offs<<3);
! 	_backbuff_ptr = _vm->getResourceAddress(rtBuffer, 1)	+ (offs<<3);
  	
  	_numLinesToProcess = bottom - top;
--- 2025,2029 ----
  	_mask_ptr = _vm->getResourceAddress(rtBuffer, 9)	+ offs;
  	_bgbak_ptr = _vm->getResourceAddress(rtBuffer, 5)	+ (offs<<3);
! 	_backbuff_ptr = vs->screenPtr	+ (offs<<3);
  	
  	_numLinesToProcess = bottom - top;
***************
*** 2181,2185 ****
  
  	grabCursor(
! 		getResourceAddress(rtBuffer, vs->number+1) + (y-vs->topline)*320 + x, 
  		w,h);
  
--- 2184,2188 ----
  
  	grabCursor(
! 		vs->screenPtr + (y-vs->topline)*320 + x, 
  		w,h);
  
***************
*** 2245,2251 ****
  	gdi._disable_zbuffer = false;
  
! 	grabCursor(getResourceAddress(rtBuffer, 1) + vs->xstart, w, h);
  	
! 	blit(getResourceAddress(rtBuffer, 1) + vs->xstart, getResourceAddress(rtBuffer, 5) + vs->xstart, w, h);
  }
  
--- 2248,2254 ----
  	gdi._disable_zbuffer = false;
  
! 	grabCursor(vs->screenPtr + vs->xstart, w, h);
  	
! 	blit(vs->screenPtr + vs->xstart, getResourceAddress(rtBuffer, 5) + vs->xstart, w, h);
  }
  

Index: gui.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** gui.cpp	20 Mar 2002 17:51:06 -0000	1.20
--- gui.cpp	20 Mar 2002 22:58:41 -0000	1.21
***************
*** 267,271 ****
  		return NULL;
  	
! 	return _s->getResourceAddress(rtBuffer, _vs->number+1) + x + (y-_vs->topline)*320 + _s->_screenStartStrip*8;
  }
  
--- 267,271 ----
  		return NULL;
  	
! 	return _vs->screenPtr + x + (y-_vs->topline)*320 + _s->_screenStartStrip*8;
  }
  

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/object.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -C2 -d -r1.45 -r1.46
*** object.cpp	20 Mar 2002 17:51:06 -0000	1.45
--- object.cpp	20 Mar 2002 22:58:41 -0000	1.46
***************
*** 1170,1174 ****
  	bdd.srcheight = READ_LE_UINT16(&((BompHeader*)bomp)->height);
  
! 	bdd.out = getResourceAddress(rtBuffer, vs->number+1) + vs->xstart;
  	bdd.outwidth = 320;
  	bdd.outheight = vs->height;
--- 1170,1174 ----
  	bdd.srcheight = READ_LE_UINT16(&((BompHeader*)bomp)->height);
  
! 	bdd.out = vs->screenPtr + vs->xstart;
  	bdd.outwidth = 320;
  	bdd.outheight = vs->height;

Index: script.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script.cpp,v
retrieving revision 1.38
retrieving revision 1.39
diff -C2 -d -r1.38 -r1.39
*** script.cpp	20 Mar 2002 17:51:06 -0000	1.38
--- script.cpp	20 Mar 2002 22:58:41 -0000	1.39
***************
*** 415,419 ****
  	updateDirtyRect(vs->number, x, x2, y-top, y2-top, 0);
  
! 	backbuff = getResourceAddress(rtBuffer, vs->number+1) + vs->xstart + (y-top)*320 + x;
  
  	if (color==-1) {
--- 415,419 ----
  	updateDirtyRect(vs->number, x, x2, y-top, y2-top, 0);
  
! 	backbuff = vs->screenPtr + vs->xstart + (y-top)*320 + x;
  
  	if (color==-1) {

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm.h,v
retrieving revision 1.92
retrieving revision 1.93
diff -C2 -d -r1.92 -r1.93
*** scumm.h	20 Mar 2002 17:51:06 -0000	1.92
--- scumm.h	20 Mar 2002 22:58:41 -0000	1.93
***************
*** 326,329 ****
--- 326,331 ----
  	byte tdirty[40];
  	byte bdirty[40];
+ 	byte *screenPtr;
+ 	byte *backBuf;
  };
  
***************
*** 920,923 ****
--- 922,930 ----
  	char *getGameName();
  
+ 	/* video buffer */
+ 
+ 	byte _videoBuffer[320*200];
+ 	byte _svideoBuffer[320*200+4*320];
+ 	
  	void scummInit();
  	void scummMain(int argc, char **argv);

Index: string.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/string.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** string.cpp	20 Mar 2002 17:51:07 -0000	1.33
--- string.cpp	20 Mar 2002 22:58:41 -0000	1.34
***************
*** 721,725 ****
  	}
  	char_ptr = _vm->getResourceAddress(rtCharset, _curId) + 224 + (chr + 1)*8;
! 	dest_ptr = _vm->getResourceAddress(rtBuffer, vs->number+1) + vs->xstart + (_top - vs->topline) * 320 + _left;
  	_vm->updateDirtyRect(vs->number, _left, _left + 8, _top - vs->topline, _top - vs->topline + 8, 0);
  
--- 721,725 ----
  	}
  	char_ptr = _vm->getResourceAddress(rtCharset, _curId) + 224 + (chr + 1)*8;
! 	dest_ptr = vs->screenPtr + vs->xstart + (_top - vs->topline) * 320 + _left;
  	_vm->updateDirtyRect(vs->number, _left, _left + 8, _top - vs->topline, _top - vs->topline + 8, 0);
  
***************
*** 840,844 ****
  #endif
  
! 	_dest_ptr = _backbuff_ptr = _vm->getResourceAddress(rtBuffer, vs->number+1) 
  		+ vs->xstart + _drawTop * 320 + _left;
  
--- 840,844 ----
  #endif
  
! 	_dest_ptr = _backbuff_ptr = vs->screenPtr 
  		+ vs->xstart + _drawTop * 320 + _left;
  





More information about the Scummvm-git-logs mailing list