Rewrote some video code

This commit is contained in:
pagefault
2002-04-13 01:12:51 +00:00
parent 84ba288576
commit bf55a73b99
2 changed files with 40 additions and 32 deletions

View File

@@ -68,7 +68,7 @@ NEWSYM copy640x480x16bwin
cmp byte[antienab],1
je near interpolate640x480x16bwin
.nointerp
mov dl,224
mov dl,[resolutn]
dec dl
dec dl
cmp byte[scanlines],1
@@ -825,7 +825,7 @@ Process2xSaIwin:
mov [InterPtr],ebx
; add edi,[VESAAddr]
mov dl,224
mov dl,[resolutn]
sub dl,2 ; Compensate for top/bottom line + 2 lines in 2xSaI
mov byte[lineleft],dl
mov dword[esi+512],0
@@ -926,7 +926,7 @@ MMXInterpolwin:
mov ebx,SpecialLine+1
.loopab
mov dl,224
mov dl,[resolutn]
dec dl
dec dl
dec dl
@@ -1261,7 +1261,7 @@ NEWSYM interpolate640x480x16bwin
.loopabi
mov [InterPtr],ebx
mov dl,224
mov dl,[resolutn]
dec dl
dec dl
dec dl

View File

@@ -125,6 +125,7 @@ DWORD SurfaceY=0;
BYTE IsActivated = 1;
BYTE AltTimer = 0;
RECT BlitArea;
extern "C" {
DWORD MouseButton;
@@ -255,7 +256,7 @@ void DrawScreen()
{
if (TripleBufferWin == 1)
{
DD_BackBuffer->Blt(NULL, DD_CFB, NULL, DDBLT_WAIT, NULL);
DD_BackBuffer->Blt(NULL, DD_CFB, &BlitArea, DDBLT_WAIT, NULL);
DD_Primary->Flip(NULL, DDFLIP_WAIT);
}
else
@@ -267,7 +268,7 @@ void DrawScreen()
DDrawError();
}
}
DD_Primary->Blt(&rcWindow, DD_CFB, NULL, DDBLT_WAIT, NULL);
DD_Primary->Blt(&rcWindow, DD_CFB, &BlitArea, DDBLT_WAIT, NULL);
}
}
else
@@ -279,7 +280,7 @@ void DrawScreen()
DDrawError();
}
}
DD_Primary->Blt(&rcWindow, DD_CFB, NULL, DDBLT_WAIT, NULL);
DD_Primary->Blt(&rcWindow, DD_CFB, &BlitArea, DDBLT_WAIT, NULL);
}
}
@@ -1503,7 +1504,7 @@ void initwinvideo(void)
CurMode=cvidmode;
newmode=1;
SurfaceX=256;
SurfaceY=224;
SurfaceY=240;
X=0;
Y=0;
FullScreen=GUIWFVID[cvidmode];
@@ -1528,7 +1529,7 @@ void initwinvideo(void)
WindowWidth=512;
WindowHeight=448;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 4:
WindowWidth=640;
@@ -1538,7 +1539,7 @@ void initwinvideo(void)
WindowWidth=640;
WindowHeight=480;
SurfaceX=512;
SurfaceY=448;
SurfaceY=448+16;
break;
case 6:
WindowWidth=640;
@@ -1550,7 +1551,7 @@ void initwinvideo(void)
WindowWidth=640;
WindowHeight=480;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 8:
WindowWidth=640;
@@ -1564,7 +1565,7 @@ void initwinvideo(void)
WindowWidth=768;
WindowHeight=672;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 11:
WindowWidth=800;
@@ -1574,7 +1575,7 @@ void initwinvideo(void)
WindowWidth=800;
WindowHeight=600;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 13:
WindowWidth=800;
@@ -1590,7 +1591,7 @@ void initwinvideo(void)
WindowWidth=800;
WindowHeight=600;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 16:
WindowWidth=1024;
@@ -1600,7 +1601,7 @@ void initwinvideo(void)
WindowWidth=1024;
WindowHeight=768;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 18:
WindowWidth=1024;
@@ -1616,7 +1617,7 @@ void initwinvideo(void)
WindowWidth=1024;
WindowHeight=768;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 21:
WindowWidth=1024;
@@ -1626,7 +1627,7 @@ void initwinvideo(void)
WindowWidth=1024;
WindowHeight=896;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 23:
WindowWidth=1280;
@@ -1636,7 +1637,7 @@ void initwinvideo(void)
WindowWidth=1280;
WindowHeight=960;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 25:
WindowWidth=1280;
@@ -1652,7 +1653,7 @@ void initwinvideo(void)
WindowWidth=1280;
WindowHeight=960;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 28:
WindowWidth=1280;
@@ -1662,7 +1663,7 @@ void initwinvideo(void)
WindowWidth=1280;
WindowHeight=1024;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
case 30:
WindowWidth=1280;
@@ -1678,13 +1679,19 @@ void initwinvideo(void)
WindowWidth=1280;
WindowHeight=1024;
SurfaceX=512;
SurfaceY=448;
SurfaceY=464;
break;
default:
WindowWidth=256;
WindowHeight=224;
break;
}
BlitArea.top = 0;
BlitArea.left=0;
BlitArea.bottom=SurfaceY;
BlitArea.right=SurfaceX;
}
if (((PrevStereoSound!=StereoSound)||(PrevSoundQuality!=SoundQuality))&&FirstSound!=1)
@@ -2069,12 +2076,13 @@ void drawscreenwin(void)
ScreenPtr=vidbuffer;
ScreenPtr+=16*2+32*2+256*2;
if (resolutn == 239) ScreenPtr+=8*288*2;
if (resolutn == 239) BlitArea.bottom = 239;
if (resolutn == 224) BlitArea.bottom = 223;
SurfBufD=(DWORD) &SurfBuf[0];
SURFDW=(DWORD *) &SurfBuf[0];
if (SurfaceX==256&&SurfaceY==224)
if (SurfaceX==256&&SurfaceY==240)
{
switch (BitDepth)
{
@@ -2103,7 +2111,7 @@ void drawscreenwin(void)
sub edi,512
sub esi,512
add esi,576
cmp eax,223
cmp eax,239
jne Copying3
xor eax,eax
mov ecx,128
@@ -2127,7 +2135,7 @@ void drawscreenwin(void)
sub edi,512
sub esi,512
add esi,576
cmp eax,223
cmp eax,239
jne Copying
xor eax,eax
mov ecx,128
@@ -2163,12 +2171,12 @@ void drawscreenwin(void)
sub edi,1024
sub esi,512
add esi,576
cmp eax,223
cmp eax,239
jne Copying32b
pop es
}
SURFDW=(DWORD *) &SurfBuf[222*Temp1];
SURFDW=(DWORD *) &SurfBuf[238*Temp1];
color32=0x7F000000;
for(i=0;i<256;i++)
@@ -2176,7 +2184,7 @@ void drawscreenwin(void)
SURFDW[i]=color32;
}
SURFDW=(DWORD *) &SurfBuf[223*Temp1];
SURFDW=(DWORD *) &SurfBuf[239*Temp1];
color32=0x7F000000;
for(i=0;i<256;i++)
@@ -2257,7 +2265,7 @@ void drawscreenwin(void)
sub edi,640
sub esi,512
add esi,576
cmp ebx,223
cmp ebx,239
jne Copying2MMX
xor eax,eax
mov ecx,128
@@ -2298,7 +2306,7 @@ void drawscreenwin(void)
sub edi,640
sub esi,512
add esi,576
cmp ebx,223
cmp ebx,239
jne Copying2
xor eax,eax
mov ecx,128
@@ -2368,7 +2376,7 @@ void drawscreenwin(void)
}
}
if (SurfaceX==512&&SurfaceY==448)
if (SurfaceX==512&&SurfaceY==464)
{
switch (BitDepth)
{