[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