mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_02_60_src
Former-commit-id: a5e2c09b2a0ff1572739cab6d0a5875912e4962c
This commit is contained in:
parent
f09fae693b
commit
4faa505efd
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:7f096da2bcb539a443b930cc06ca3814a98394da357dcc2817a7ffa431bb5faa
|
oid sha256:f6f6dffdd6c64dfb4fca9318b394132c66ec7a1070122c384b78e0a8a52c45e2
|
||||||
size 459776
|
size 461824
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:4ccfe97f2a4ee32296cfaae398fe767a22f26d620ba7065c0cbc7a078eb2d459
|
oid sha256:84004748b9ed3c04e7d2d8101220a505a229bc299211e587a74ffd89cc85e154
|
||||||
size 535552
|
size 535552
|
||||||
|
161
build/dxwnd.ini
161
build/dxwnd.ini
@ -1181,9 +1181,9 @@ opengllib47=
|
|||||||
ver47=0
|
ver47=0
|
||||||
coord47=0
|
coord47=0
|
||||||
flag47=134234148
|
flag47=134234148
|
||||||
flagg47=-939523840
|
flagg47=1207959808
|
||||||
flagh47=20
|
flagh47=20
|
||||||
flagi47=16
|
flagi47=384
|
||||||
tflag47=2
|
tflag47=2
|
||||||
initx47=0
|
initx47=0
|
||||||
inity47=0
|
inity47=0
|
||||||
@ -3459,7 +3459,7 @@ flag138=679493664
|
|||||||
flagg138=1208025088
|
flagg138=1208025088
|
||||||
flagh138=65556
|
flagh138=65556
|
||||||
flagi138=4
|
flagi138=4
|
||||||
tflag138=6147
|
tflag138=6403
|
||||||
initx138=0
|
initx138=0
|
||||||
inity138=0
|
inity138=0
|
||||||
minx138=0
|
minx138=0
|
||||||
@ -3481,9 +3481,9 @@ opengllib139=
|
|||||||
ver139=8
|
ver139=8
|
||||||
coord139=0
|
coord139=0
|
||||||
flag139=687867937
|
flag139=687867937
|
||||||
flagg139=1208025104
|
flagg139=134283280
|
||||||
flagh139=65556
|
flagh139=65556
|
||||||
flagi139=12
|
flagi139=204
|
||||||
tflag139=4097
|
tflag139=4097
|
||||||
initx139=0
|
initx139=0
|
||||||
inity139=0
|
inity139=0
|
||||||
@ -3504,12 +3504,12 @@ path140=D:\Games\Incoming and Incoming Forces\Incoming\incoming.exe
|
|||||||
module140=
|
module140=
|
||||||
opengllib140=
|
opengllib140=
|
||||||
ver140=7
|
ver140=7
|
||||||
coord140=2
|
coord140=0
|
||||||
flag140=150994976
|
flag140=150994976
|
||||||
flagg140=1207959568
|
flagg140=1208025104
|
||||||
flagh140=20
|
flagh140=-2147483628
|
||||||
flagi140=4
|
flagi140=67820
|
||||||
tflag140=1024
|
tflag140=6163
|
||||||
initx140=0
|
initx140=0
|
||||||
inity140=0
|
inity140=0
|
||||||
minx140=0
|
minx140=0
|
||||||
@ -3549,17 +3549,17 @@ maxfps141=0
|
|||||||
initts141=0
|
initts141=0
|
||||||
winver141=0
|
winver141=0
|
||||||
maxres141=-1
|
maxres141=-1
|
||||||
title142=CIsland.exe
|
title142=Armored Fist 3
|
||||||
path142=D:\Games\ChaosIsland\CIsland.exe
|
path142=D:\Games\Armored Fist 3\Af3.exe
|
||||||
module142=
|
module142=
|
||||||
opengllib142=
|
opengllib142=
|
||||||
ver142=0
|
ver142=0
|
||||||
coord142=0
|
coord142=0
|
||||||
flag142=134218272
|
flag142=134217763
|
||||||
flagg142=1207959552
|
flagg142=1208025088
|
||||||
flagh142=20
|
flagh142=6291476
|
||||||
flagi142=4
|
flagi142=14
|
||||||
tflag142=6147
|
tflag142=64
|
||||||
initx142=0
|
initx142=0
|
||||||
inity142=0
|
inity142=0
|
||||||
minx142=0
|
minx142=0
|
||||||
@ -3574,14 +3574,133 @@ maxfps142=0
|
|||||||
initts142=0
|
initts142=0
|
||||||
winver142=0
|
winver142=0
|
||||||
maxres142=-1
|
maxres142=-1
|
||||||
title143=Incoming (GOG)
|
title143=Earthworm Jim 3D
|
||||||
module143=
|
module143=
|
||||||
opengllib143=
|
opengllib143=
|
||||||
title144=Incoming Forces (GOG)
|
title144=Echelon
|
||||||
module144=
|
module144=
|
||||||
opengllib144=
|
opengllib144=
|
||||||
|
path143=D:\Games\Earthworm Jim 3D\EarthwormJim3D.exe
|
||||||
|
ver143=0
|
||||||
|
coord143=0
|
||||||
|
flag143=134217760
|
||||||
|
flagg143=1212219392
|
||||||
|
flagh143=65556
|
||||||
|
flagi143=12
|
||||||
|
tflag143=6211
|
||||||
|
initx143=0
|
||||||
|
inity143=0
|
||||||
|
minx143=0
|
||||||
|
miny143=0
|
||||||
|
maxx143=0
|
||||||
|
maxy143=0
|
||||||
|
posx143=50
|
||||||
|
posy143=50
|
||||||
|
sizx143=800
|
||||||
|
sizy143=600
|
||||||
|
maxfps143=0
|
||||||
|
initts143=2
|
||||||
|
winver143=1
|
||||||
|
maxres143=-1
|
||||||
|
path144=D:\Games\echelon\Game.exe
|
||||||
|
ver144=0
|
||||||
|
coord144=0
|
||||||
|
flag144=151011328
|
||||||
|
flagg144=-2013265920
|
||||||
|
flagh144=20
|
||||||
|
flagi144=132
|
||||||
|
tflag144=0
|
||||||
|
initx144=0
|
||||||
|
inity144=0
|
||||||
|
minx144=0
|
||||||
|
miny144=0
|
||||||
|
maxx144=0
|
||||||
|
maxy144=0
|
||||||
|
posx144=50
|
||||||
|
posy144=50
|
||||||
|
sizx144=800
|
||||||
|
sizy144=600
|
||||||
|
maxfps144=0
|
||||||
|
initts144=0
|
||||||
|
winver144=0
|
||||||
|
maxres144=-1
|
||||||
|
title145=Total Soccer 2000 (DirectX)
|
||||||
|
path145=D:\Games\Total Soccer 2000\SOCCERDX.EXE
|
||||||
|
module145=
|
||||||
|
opengllib145=
|
||||||
|
ver145=1
|
||||||
|
coord145=0
|
||||||
|
flag145=134234146
|
||||||
|
flagg145=134283520
|
||||||
|
flagh145=20
|
||||||
|
flagi145=12
|
||||||
|
tflag145=5249
|
||||||
|
initx145=0
|
||||||
|
inity145=0
|
||||||
|
minx145=0
|
||||||
|
miny145=0
|
||||||
|
maxx145=0
|
||||||
|
maxy145=0
|
||||||
|
posx145=50
|
||||||
|
posy145=50
|
||||||
|
sizx145=800
|
||||||
|
sizy145=600
|
||||||
|
maxfps145=0
|
||||||
|
initts145=2
|
||||||
|
winver145=0
|
||||||
|
maxres145=-1
|
||||||
|
title146=Total Soccer 2000 (3DFX)
|
||||||
|
path146=D:\Games\Total Soccer 2000\soccer3dfx.exe
|
||||||
|
module146=
|
||||||
|
opengllib146=
|
||||||
|
ver146=9
|
||||||
|
coord146=0
|
||||||
|
flag146=134234657
|
||||||
|
flagg146=1208025344
|
||||||
|
flagh146=20
|
||||||
|
flagi146=12
|
||||||
|
tflag146=5121
|
||||||
|
initx146=0
|
||||||
|
inity146=0
|
||||||
|
minx146=0
|
||||||
|
miny146=0
|
||||||
|
maxx146=0
|
||||||
|
maxy146=0
|
||||||
|
posx146=50
|
||||||
|
posy146=50
|
||||||
|
sizx146=800
|
||||||
|
sizy146=600
|
||||||
|
maxfps146=0
|
||||||
|
initts146=2
|
||||||
|
winver146=0
|
||||||
|
maxres146=-1
|
||||||
|
title147=Gruntz
|
||||||
|
path147=D:\Games\gruntz\GRUNTZ.EXE
|
||||||
|
module147=
|
||||||
|
opengllib147=
|
||||||
|
ver147=0
|
||||||
|
coord147=0
|
||||||
|
flag147=134235680
|
||||||
|
flagg147=1207959560
|
||||||
|
flagh147=67108884
|
||||||
|
flagi147=4
|
||||||
|
tflag147=6419
|
||||||
|
initx147=0
|
||||||
|
inity147=0
|
||||||
|
minx147=0
|
||||||
|
miny147=0
|
||||||
|
maxx147=0
|
||||||
|
maxy147=0
|
||||||
|
posx147=0
|
||||||
|
posy147=0
|
||||||
|
sizx147=800
|
||||||
|
sizy147=600
|
||||||
|
maxfps147=0
|
||||||
|
initts147=0
|
||||||
|
winver147=0
|
||||||
|
maxres147=-1
|
||||||
[window]
|
[window]
|
||||||
posx=1161
|
posx=1010
|
||||||
posy=364
|
posy=145
|
||||||
sizx=638
|
sizx=638
|
||||||
sizy=618
|
sizy=618
|
||||||
|
26
build/exports/Armored Fist 3.dxw
Normal file
26
build/exports/Armored Fist 3.dxw
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[target]
|
||||||
|
title0=Armored Fist 3
|
||||||
|
path0=D:\Games\Armored Fist 3\Af3.exe
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
ver0=0
|
||||||
|
coord0=0
|
||||||
|
flag0=134218272
|
||||||
|
flagg0=1207959552
|
||||||
|
flagh0=20
|
||||||
|
flagi0=6
|
||||||
|
tflag0=64
|
||||||
|
initx0=0
|
||||||
|
inity0=0
|
||||||
|
minx0=0
|
||||||
|
miny0=0
|
||||||
|
maxx0=0
|
||||||
|
maxy0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=0
|
||||||
|
winver0=0
|
||||||
|
maxres0=-1
|
26
build/exports/Dune 2000 (not emulated).dxw
Normal file
26
build/exports/Dune 2000 (not emulated).dxw
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[target]
|
||||||
|
title0=Dune 2000
|
||||||
|
path0=D:\Games\Dune 2000\DUNE2000.DAT
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
ver0=0
|
||||||
|
coord0=0
|
||||||
|
flag0=671105312
|
||||||
|
flagg0=1207959568
|
||||||
|
flagh0=20
|
||||||
|
flagi0=4
|
||||||
|
tflag0=64
|
||||||
|
initx0=0
|
||||||
|
inity0=0
|
||||||
|
minx0=0
|
||||||
|
miny0=0
|
||||||
|
maxx0=0
|
||||||
|
maxy0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=0
|
||||||
|
winver0=0
|
||||||
|
maxres0=-1
|
26
build/exports/Earthworm Jim 3D.dxw
Normal file
26
build/exports/Earthworm Jim 3D.dxw
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[target]
|
||||||
|
title0=Earthworm Jim 3D
|
||||||
|
path0=D:\Games\Earthworm Jim 3D\EarthwormJim3D.exe
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
ver0=0
|
||||||
|
coord0=0
|
||||||
|
flag0=134217760
|
||||||
|
flagg0=1212153856
|
||||||
|
flagh0=65556
|
||||||
|
flagi0=4
|
||||||
|
tflag0=6211
|
||||||
|
initx0=0
|
||||||
|
inity0=0
|
||||||
|
minx0=0
|
||||||
|
miny0=0
|
||||||
|
maxx0=0
|
||||||
|
maxy0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=0
|
||||||
|
winver0=1
|
||||||
|
maxres0=-1
|
26
build/exports/Echelon.dxw
Normal file
26
build/exports/Echelon.dxw
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[target]
|
||||||
|
title0=Echelon
|
||||||
|
path0=D:\Games\echelon\Game.exe
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
ver0=0
|
||||||
|
coord0=0
|
||||||
|
flag0=151011328
|
||||||
|
flagg0=134217728
|
||||||
|
flagh0=20
|
||||||
|
flagi0=4
|
||||||
|
tflag0=0
|
||||||
|
initx0=0
|
||||||
|
inity0=0
|
||||||
|
minx0=0
|
||||||
|
miny0=0
|
||||||
|
maxx0=0
|
||||||
|
maxy0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=0
|
||||||
|
winver0=0
|
||||||
|
maxres0=-1
|
26
build/exports/Geneforge.dxw
Normal file
26
build/exports/Geneforge.dxw
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[target]
|
||||||
|
title0=Geneforge
|
||||||
|
path0=d:\games\Geneforge\Geneforge.exe
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
ver0=0
|
||||||
|
coord0=0
|
||||||
|
flag0=134234628
|
||||||
|
flagg0=1207959808
|
||||||
|
flagh0=20
|
||||||
|
flagi0=4
|
||||||
|
tflag0=64
|
||||||
|
initx0=0
|
||||||
|
inity0=0
|
||||||
|
minx0=0
|
||||||
|
miny0=0
|
||||||
|
maxx0=0
|
||||||
|
maxy0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=0
|
||||||
|
winver0=0
|
||||||
|
maxres0=-1
|
26
build/exports/Total Soccer 2000 (3DFX).dxw
Normal file
26
build/exports/Total Soccer 2000 (3DFX).dxw
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[target]
|
||||||
|
title0=Total Soccer 2000 (3DFX)
|
||||||
|
path0=D:\Games\Total Soccer 2000\soccer3dfx.exe
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
ver0=9
|
||||||
|
coord0=0
|
||||||
|
flag0=134234657
|
||||||
|
flagg0=1208025344
|
||||||
|
flagh0=20
|
||||||
|
flagi0=67596
|
||||||
|
tflag0=5121
|
||||||
|
initx0=0
|
||||||
|
inity0=0
|
||||||
|
minx0=0
|
||||||
|
miny0=0
|
||||||
|
maxx0=0
|
||||||
|
maxy0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=2
|
||||||
|
winver0=0
|
||||||
|
maxres0=-1
|
26
build/exports/Total Soccer 2000 (DirectX).dxw
Normal file
26
build/exports/Total Soccer 2000 (DirectX).dxw
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
[target]
|
||||||
|
title0=Total Soccer 2000 (DirectX)
|
||||||
|
path0=D:\Games\Total Soccer 2000\SOCCERDX.EXE
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
ver0=1
|
||||||
|
coord0=0
|
||||||
|
flag0=134234656
|
||||||
|
flagg0=1208025344
|
||||||
|
flagh0=20
|
||||||
|
flagi0=12
|
||||||
|
tflag0=5249
|
||||||
|
initx0=0
|
||||||
|
inity0=0
|
||||||
|
minx0=0
|
||||||
|
miny0=0
|
||||||
|
maxx0=0
|
||||||
|
maxy0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=2
|
||||||
|
winver0=0
|
||||||
|
maxres0=-1
|
@ -398,7 +398,10 @@ minor fixes on logging
|
|||||||
|
|
||||||
v2.02.59
|
v2.02.59
|
||||||
fixed IDIrectDraw reference counter for ddraw release 1 session: fixes "Warhammer 40K Rites Of War" first screen
|
fixed IDIrectDraw reference counter for ddraw release 1 session: fixes "Warhammer 40K Rites Of War" first screen
|
||||||
fixed QueryPerformanceCounter handling: fixes "New Yourk Racer" time stretching problems
|
fixed QueryPerformanceCounter handling: fixes "New York Racer" time stretching problems
|
||||||
|
|
||||||
|
|
||||||
|
v2.02.60
|
||||||
|
fixed time stretching to handle Total Soccer 2000
|
||||||
|
fixed ZBUFFER surface creation to handle GOG Incoming troubles on some cards
|
||||||
|
fixed handling of special effects (wireframe, no fogging, zbuffer always) to be valid on all d3d versions
|
||||||
|
|
||||||
|
@ -1320,6 +1320,7 @@ static void MaskCapsD(LPDDCAPS c1, LPDDCAPS c2)
|
|||||||
OutTraceDW("MaskCaps\n");
|
OutTraceDW("MaskCaps\n");
|
||||||
capfile=fopen("dxwnd.cap", "r");
|
capfile=fopen("dxwnd.cap", "r");
|
||||||
if(!capfile) return;
|
if(!capfile) return;
|
||||||
|
if(c1) {
|
||||||
while(TRUE){
|
while(TRUE){
|
||||||
if(fscanf(capfile, "%s=%x", token, &val)!=2) break;
|
if(fscanf(capfile, "%s=%x", token, &val)!=2) break;
|
||||||
if(!strcmp(token, "dwCaps")) c1->dwCaps &= val;
|
if(!strcmp(token, "dwCaps")) c1->dwCaps &= val;
|
||||||
@ -1333,6 +1334,22 @@ static void MaskCapsD(LPDDCAPS c1, LPDDCAPS c2)
|
|||||||
c1->dwFXCaps, ExplainDDFXCaps(c1->dwFXCaps),
|
c1->dwFXCaps, ExplainDDFXCaps(c1->dwFXCaps),
|
||||||
c1->dwFXAlphaCaps, ExplainDDFXALPHACaps(c1->dwFXAlphaCaps),
|
c1->dwFXAlphaCaps, ExplainDDFXALPHACaps(c1->dwFXAlphaCaps),
|
||||||
c1->dwCKeyCaps, ExplainDDCKeyCaps(c1->dwCKeyCaps));
|
c1->dwCKeyCaps, ExplainDDCKeyCaps(c1->dwCKeyCaps));
|
||||||
|
}
|
||||||
|
if(c2) {
|
||||||
|
while(TRUE){
|
||||||
|
if(fscanf(capfile, "%s=%x", token, &val)!=2) break;
|
||||||
|
if(!strcmp(token, "dwCaps")) c2->dwCaps &= val;
|
||||||
|
if(!strcmp(token, "dwCaps2")) c2->dwCaps2 &= val;
|
||||||
|
if(!strcmp(token, "dwCKeyCaps")) c2->dwCKeyCaps &= val;
|
||||||
|
if(!strcmp(token, "dwFXCaps")) c2->dwFXCaps &= val;
|
||||||
|
}
|
||||||
|
OutTraceDW("MaskCaps(D-HW): caps=%x(%s) caps2=%x(%s) fxcaps=%x(%s) fxalphacaps=%x(%s) keycaps=%x(%s)\n",
|
||||||
|
c2->dwCaps, ExplainDDDCaps(c2->dwCaps),
|
||||||
|
c2->dwCaps2, ExplainDDDCaps2(c2->dwCaps2),
|
||||||
|
c2->dwFXCaps, ExplainDDFXCaps(c2->dwFXCaps),
|
||||||
|
c2->dwFXAlphaCaps, ExplainDDFXALPHACaps(c2->dwFXAlphaCaps),
|
||||||
|
c2->dwCKeyCaps, ExplainDDCKeyCaps(c2->dwCKeyCaps));
|
||||||
|
}
|
||||||
fclose(capfile);
|
fclose(capfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1380,7 +1397,7 @@ HRESULT WINAPI extGetCapsD(LPDIRECTDRAW lpdd, LPDDCAPS c1, LPDDCAPS c2)
|
|||||||
//c1->dwFXAlphaCaps=AlphaCaps;
|
//c1->dwFXAlphaCaps=AlphaCaps;
|
||||||
}
|
}
|
||||||
|
|
||||||
if((dxw.dwFlags3 & CAPMASK) && c1 && c2) MaskCapsD(c1, c2);
|
if(dxw.dwFlags3 & CAPMASK) MaskCapsD(c1, c2);
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
@ -2551,7 +2568,8 @@ static HRESULT BuildGenericDir(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
|
|||||||
|
|
||||||
res = (*pCreateSurface)(lpdd, lpddsd, lplpdds, 0);
|
res = (*pCreateSurface)(lpdd, lpddsd, lplpdds, 0);
|
||||||
if(res){
|
if(res){
|
||||||
if ((dxw.dwFlags1 & SWITCHVIDEOMEMORY) && (res==DDERR_OUTOFVIDEOMEMORY)){
|
// v2.02.60: Ref. game Incoming GOG release, post by Marek, error DDERR_UNSUPPORTED while trying to create ZBUFFER surface
|
||||||
|
if ((dxw.dwFlags1 & SWITCHVIDEOMEMORY) && ((res==DDERR_OUTOFVIDEOMEMORY)||(res==DDERR_UNSUPPORTED))){
|
||||||
OutTraceDW("CreateSurface ERROR: res=%x(%s) at %d, retry\n", res, ExplainDDError(res), __LINE__);
|
OutTraceDW("CreateSurface ERROR: res=%x(%s) at %d, retry\n", res, ExplainDDError(res), __LINE__);
|
||||||
lpddsd->ddsCaps.dwCaps &= ~DDSCAPS_VIDEOMEMORY;
|
lpddsd->ddsCaps.dwCaps &= ~DDSCAPS_VIDEOMEMORY;
|
||||||
lpddsd->ddsCaps.dwCaps |= DDSCAPS_SYSTEMMEMORY;
|
lpddsd->ddsCaps.dwCaps |= DDSCAPS_SYSTEMMEMORY;
|
||||||
@ -4564,9 +4582,17 @@ HRESULT WINAPI extDDGetGammaRamp(LPDIRECTDRAWSURFACE lpdds, DWORD dwFlags, LPDDG
|
|||||||
HRESULT WINAPI extGetAvailableVidMem(LPDIRECTDRAW lpdd, LPDDSCAPS lpDDSCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree, GetAvailableVidMem_Type pGetAvailableVidMem)
|
HRESULT WINAPI extGetAvailableVidMem(LPDIRECTDRAW lpdd, LPDDSCAPS lpDDSCaps, LPDWORD lpdwTotal, LPDWORD lpdwFree, GetAvailableVidMem_Type pGetAvailableVidMem)
|
||||||
{
|
{
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
|
const DWORD dwMaxMem = 0x7FFFF000;
|
||||||
OutTraceDDRAW("GetAvailableVidMem(D): lpdd=%x\n", lpdd);
|
OutTraceDDRAW("GetAvailableVidMem(D): lpdd=%x\n", lpdd);
|
||||||
res=(*pGetAvailableVidMem)(lpdd, lpDDSCaps, lpdwTotal, lpdwFree);
|
res=(*pGetAvailableVidMem)(lpdd, lpDDSCaps, lpdwTotal, lpdwFree);
|
||||||
if(res){
|
if(res){
|
||||||
|
if((dxw.dwFlags3 & FORCESHEL) && (res==DDERR_NODIRECTDRAWHW)){
|
||||||
|
// fake some video memory....
|
||||||
|
OutTraceDW("GetAvailableVidMem(D): FORCESHEL mode Total=Free=%x\n", dwMaxMem);
|
||||||
|
*lpdwTotal = dwMaxMem;
|
||||||
|
*lpdwFree = dwMaxMem;
|
||||||
|
return DD_OK;
|
||||||
|
}
|
||||||
OutTraceE("GetAvailableVidMem(D): ERROR res=%x(%s)\n", res, ExplainDDError(res));
|
OutTraceE("GetAvailableVidMem(D): ERROR res=%x(%s)\n", res, ExplainDDError(res));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -4574,7 +4600,6 @@ HRESULT WINAPI extDDGetGammaRamp(LPDIRECTDRAWSURFACE lpdds, DWORD dwFlags, LPDDG
|
|||||||
*lpDDSCaps, ExplainDDSCaps(lpDDSCaps->dwCaps), lpdwTotal?*lpdwTotal:0, lpdwFree?*lpdwFree:0);
|
*lpDDSCaps, ExplainDDSCaps(lpDDSCaps->dwCaps), lpdwTotal?*lpdwTotal:0, lpdwFree?*lpdwFree:0);
|
||||||
if(dxw.dwFlags2 & LIMITRESOURCES){ // check for memory value overflow - see "Mageslayer" and "Take no Prisoners"
|
if(dxw.dwFlags2 & LIMITRESOURCES){ // check for memory value overflow - see "Mageslayer" and "Take no Prisoners"
|
||||||
DWORD dwLocalTotal;
|
DWORD dwLocalTotal;
|
||||||
const DWORD dwMaxMem = 0x7FFFF000;
|
|
||||||
if(lpdwTotal == NULL) {
|
if(lpdwTotal == NULL) {
|
||||||
lpdwTotal = &dwLocalTotal; // point to usable memory....
|
lpdwTotal = &dwLocalTotal; // point to usable memory....
|
||||||
res=(*pGetAvailableVidMem)(lpdd, lpDDSCaps, lpdwTotal, lpdwFree); // do it again to get total memory
|
res=(*pGetAvailableVidMem)(lpdd, lpDDSCaps, lpdwTotal, lpdwFree); // do it again to get total memory
|
||||||
|
@ -884,7 +884,13 @@ DWORD dxwCore::GetTickCount(void)
|
|||||||
static DWORD dwLastRealTick=0;
|
static DWORD dwLastRealTick=0;
|
||||||
static DWORD dwLastFakeTick=0;
|
static DWORD dwLastFakeTick=0;
|
||||||
DWORD dwNextRealTick;
|
DWORD dwNextRealTick;
|
||||||
|
BOOL FirstTime = TRUE;
|
||||||
|
|
||||||
|
if(FirstTime){
|
||||||
|
dwLastRealTick=(*pGetTickCount)();
|
||||||
|
dwLastFakeTick=dwLastRealTick;
|
||||||
|
FirstTime=FALSE;
|
||||||
|
}
|
||||||
dwNextRealTick=(*pGetTickCount)();
|
dwNextRealTick=(*pGetTickCount)();
|
||||||
dwTick=(dwNextRealTick-dwLastRealTick);
|
dwTick=(dwNextRealTick-dwLastRealTick);
|
||||||
TimeShift=GetHookInfo()->TimeShift;
|
TimeShift=GetHookInfo()->TimeShift;
|
||||||
@ -910,9 +916,13 @@ DWORD dxwCore::StretchCounter(DWORD dwTimer)
|
|||||||
|
|
||||||
LARGE_INTEGER dxwCore::StretchCounter(LARGE_INTEGER dwTimer)
|
LARGE_INTEGER dxwCore::StretchCounter(LARGE_INTEGER dwTimer)
|
||||||
{
|
{
|
||||||
|
static int Reminder = 0;
|
||||||
|
LARGE_INTEGER ret;
|
||||||
TimeShift=GetHookInfo()->TimeShift;
|
TimeShift=GetHookInfo()->TimeShift;
|
||||||
dwTimer = TimeShifter64(dwTimer, TimeShift);
|
dwTimer.QuadPart += Reminder;
|
||||||
return dwTimer;
|
ret = TimeShifter64(dwTimer, TimeShift);
|
||||||
|
Reminder = (ret.QuadPart==0) ? dwTimer.LowPart : 0;
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void dxwCore::GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime)
|
void dxwCore::GetSystemTimeAsFileTime(LPFILETIME lpSystemTimeAsFileTime)
|
||||||
|
@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "dxwnd.h"
|
#include "dxwnd.h"
|
||||||
#include "dxwcore.hpp"
|
#include "dxwcore.hpp"
|
||||||
|
|
||||||
#define VERSION "2.02.59"
|
#define VERSION "2.02.60"
|
||||||
|
|
||||||
#define DDTHREADLOCK 1
|
#define DDTHREADLOCK 1
|
||||||
|
|
||||||
|
Binary file not shown.
96
dll/hd3d.cpp
96
dll/hd3d.cpp
@ -40,6 +40,11 @@ typedef void (WINAPI *GetGammaRamp_Type)(void *, UINT, D3DGAMMARAMP *);
|
|||||||
typedef void (WINAPI *SetCursorPosition9_Type)(void *, int, int, DWORD);
|
typedef void (WINAPI *SetCursorPosition9_Type)(void *, int, int, DWORD);
|
||||||
typedef void (WINAPI *SetCursorPosition8_Type)(void *, int, int, DWORD);
|
typedef void (WINAPI *SetCursorPosition8_Type)(void *, int, int, DWORD);
|
||||||
|
|
||||||
|
//typedef ULONG (WINAPI *CreateRenderTarget8_Type)(void *, UINT, UINT, D3DFORMAT, D3DMULTISAMPLE_TYPE, BOOL, IDirect3DSurface8**);
|
||||||
|
typedef ULONG (WINAPI *CreateRenderTarget8_Type)(void *, UINT, UINT, D3DFORMAT, D3DMULTISAMPLE_TYPE, BOOL, void**);
|
||||||
|
typedef ULONG (WINAPI *BeginScene_Type)(void *);
|
||||||
|
typedef ULONG (WINAPI *EndScene_Type)(void *);
|
||||||
|
|
||||||
typedef HRESULT (WINAPI *D3D10CreateDevice_Type)(IDXGIAdapter *, D3D10_DRIVER_TYPE, HMODULE, UINT, UINT, ID3D10Device **);
|
typedef HRESULT (WINAPI *D3D10CreateDevice_Type)(IDXGIAdapter *, D3D10_DRIVER_TYPE, HMODULE, UINT, UINT, ID3D10Device **);
|
||||||
typedef HRESULT (WINAPI *D3D10CreateDeviceAndSwapChain_Type)(IDXGIAdapter *, D3D10_DRIVER_TYPE, HMODULE, UINT, UINT, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **, ID3D10Device **);
|
typedef HRESULT (WINAPI *D3D10CreateDeviceAndSwapChain_Type)(IDXGIAdapter *, D3D10_DRIVER_TYPE, HMODULE, UINT, UINT, DXGI_SWAP_CHAIN_DESC *, IDXGISwapChain **, ID3D10Device **);
|
||||||
typedef HRESULT (WINAPI *D3D10CreateDevice1_Type)(IDXGIAdapter *, D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, ID3D10Device **);
|
typedef HRESULT (WINAPI *D3D10CreateDevice1_Type)(IDXGIAdapter *, D3D10_DRIVER_TYPE, HMODULE, UINT, D3D10_FEATURE_LEVEL1, UINT, ID3D10Device **);
|
||||||
@ -88,6 +93,13 @@ ULONG WINAPI extAddRef9(void *);
|
|||||||
ULONG WINAPI extRelease9(void *);
|
ULONG WINAPI extRelease9(void *);
|
||||||
BOOL WINAPI voidDisableD3DSpy(void);
|
BOOL WINAPI voidDisableD3DSpy(void);
|
||||||
|
|
||||||
|
//ULONG WINAPI extCreateRenderTarget8(void *, UINT, UINT, D3DFORMAT, D3DMULTISAMPLE_TYPE, BOOL, IDirect3DSurface8**);
|
||||||
|
ULONG WINAPI extCreateRenderTarget8(void *, UINT, UINT, D3DFORMAT, D3DMULTISAMPLE_TYPE, BOOL, void**);
|
||||||
|
ULONG WINAPI extBeginScene8(void *);
|
||||||
|
ULONG WINAPI extEndScene8(void *);
|
||||||
|
ULONG WINAPI extBeginScene9(void *);
|
||||||
|
ULONG WINAPI extEndScene9(void *);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
HRESULT WINAPI extD3D10CreateDevice(IDXGIAdapter *, D3D10_DRIVER_TYPE, HMODULE, UINT, UINT, ID3D10Device **);
|
HRESULT WINAPI extD3D10CreateDevice(IDXGIAdapter *, D3D10_DRIVER_TYPE, HMODULE, UINT, UINT, ID3D10Device **);
|
||||||
@ -135,6 +147,12 @@ GetGammaRamp_Type pGetGammaRamp = 0;
|
|||||||
SetCursorPosition9_Type pSetCursorPosition9 = 0;
|
SetCursorPosition9_Type pSetCursorPosition9 = 0;
|
||||||
SetCursorPosition8_Type pSetCursorPosition8 = 0;
|
SetCursorPosition8_Type pSetCursorPosition8 = 0;
|
||||||
|
|
||||||
|
CreateRenderTarget8_Type pCreateRenderTarget8 = 0;
|
||||||
|
BeginScene_Type pBeginScene8 = 0;
|
||||||
|
EndScene_Type pEndScene8 = 0;
|
||||||
|
BeginScene_Type pBeginScene9 = 0;
|
||||||
|
EndScene_Type pEndScene9 = 0;
|
||||||
|
|
||||||
D3D10CreateDevice_Type pD3D10CreateDevice = 0;
|
D3D10CreateDevice_Type pD3D10CreateDevice = 0;
|
||||||
D3D10CreateDeviceAndSwapChain_Type pD3D10CreateDeviceAndSwapChain = 0;
|
D3D10CreateDeviceAndSwapChain_Type pD3D10CreateDeviceAndSwapChain = 0;
|
||||||
D3D10CreateDevice1_Type pD3D10CreateDevice1 = 0;
|
D3D10CreateDevice1_Type pD3D10CreateDevice1 = 0;
|
||||||
@ -468,11 +486,20 @@ void HookD3DDevice8(void** ppD3Ddev8)
|
|||||||
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 72), extSetGammaRamp, (void **)&pSetGammaRamp, "SetGammaRamp(D8)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 72), extSetGammaRamp, (void **)&pSetGammaRamp, "SetGammaRamp(D8)");
|
||||||
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 76), extGetGammaRamp, (void **)&pGetGammaRamp, "GetGammaRamp(D8)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 76), extGetGammaRamp, (void **)&pGetGammaRamp, "GetGammaRamp(D8)");
|
||||||
}
|
}
|
||||||
if(dxw.dwFlags2 & WIREFRAME){
|
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 100), extCreateRenderTarget8, (void **)&pCreateRenderTarget8, "CreateRenderTarget(D8)");
|
||||||
|
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 136), extBeginScene8, (void **)&pBeginScene8, "BeginScene(D8)");
|
||||||
|
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 140), extEndScene8, (void **)&pEndScene8, "EndScene(D8)");
|
||||||
|
if((dxw.dwFlags2 & WIREFRAME) || (dxw.dwFlags4 & DISABLEFOGGING) || (dxw.dwFlags4 & ZBUFFERALWAYS)){
|
||||||
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 200), extSetRenderState, (void **)&pSetRenderState, "SetRenderState(D8)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 200), extSetRenderState, (void **)&pSetRenderState, "SetRenderState(D8)");
|
||||||
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 204), extGetRenderState, (void **)&pGetRenderState, "GetRenderState(D8)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev8 + 204), extGetRenderState, (void **)&pGetRenderState, "GetRenderState(D8)");
|
||||||
(*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
|
if(dxw.dwFlags2 & WIREFRAME) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
|
||||||
|
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_FOGENABLE, FALSE);
|
||||||
|
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_ZFUNC, D3DCMP_ALWAYS);
|
||||||
|
//if(1) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_SPECULARENABLE, TRUE);
|
||||||
}
|
}
|
||||||
|
//if (!(dxw.dwTFlags & OUTPROXYTRACE)) return;
|
||||||
|
//SetHook((void *)(**(DWORD **)ppD3Ddev8 + 4), extAddRef8, (void **)&pAddRef8, "AddRef(D8)");
|
||||||
|
//SetHook((void *)(**(DWORD **)ppD3Ddev8 + 8), extRelease8, (void **)&pRelease8, "Release(D8)");
|
||||||
}
|
}
|
||||||
|
|
||||||
void HookD3DDevice9(void** ppD3Ddev9)
|
void HookD3DDevice9(void** ppD3Ddev9)
|
||||||
@ -491,14 +518,18 @@ void HookD3DDevice9(void** ppD3Ddev9)
|
|||||||
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 84), extSetGammaRamp, (void **)&pSetGammaRamp, "SetGammaRamp(D9)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 84), extSetGammaRamp, (void **)&pSetGammaRamp, "SetGammaRamp(D9)");
|
||||||
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 88), extGetGammaRamp, (void **)&pGetGammaRamp, "GetGammaRamp(D9)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 88), extGetGammaRamp, (void **)&pGetGammaRamp, "GetGammaRamp(D9)");
|
||||||
}
|
}
|
||||||
|
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 164), extBeginScene9, (void **)&pBeginScene9, "BeginScene(D9)");
|
||||||
|
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 168), extEndScene9, (void **)&pEndScene9, "EndScene(D9)");
|
||||||
//SetHook((void *)(**(DWORD **)ppD3Ddev9 +188), extSetViewport, (void **)&pSetViewport, "SetViewport(D9)");
|
//SetHook((void *)(**(DWORD **)ppD3Ddev9 +188), extSetViewport, (void **)&pSetViewport, "SetViewport(D9)");
|
||||||
//SetHook((void *)(**(DWORD **)ppD3Ddev9 +192), extGetViewport, (void **)&pGetViewport, "GetViewport(D9)");
|
//SetHook((void *)(**(DWORD **)ppD3Ddev9 +192), extGetViewport, (void **)&pGetViewport, "GetViewport(D9)");
|
||||||
if(dxw.dwFlags2 & WIREFRAME){
|
if((dxw.dwFlags2 & WIREFRAME) || (dxw.dwFlags4 & DISABLEFOGGING) || (dxw.dwFlags4 & ZBUFFERALWAYS)){
|
||||||
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 228), extSetRenderState, (void **)&pSetRenderState, "SetRenderState(D9)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 228), extSetRenderState, (void **)&pSetRenderState, "SetRenderState(D9)");
|
||||||
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 232), extGetRenderState, (void **)&pGetRenderState, "GetRenderState(D9)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 232), extGetRenderState, (void **)&pGetRenderState, "GetRenderState(D9)");
|
||||||
(*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
|
if(dxw.dwFlags2 & WIREFRAME) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_FILLMODE, D3DFILL_WIREFRAME);
|
||||||
|
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_FOGENABLE, FALSE);
|
||||||
|
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_ZFUNC, D3DCMP_ALWAYS);
|
||||||
|
//if(1) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_SPECULARENABLE, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(dxw.dwTFlags & OUTPROXYTRACE)) return;
|
if (!(dxw.dwTFlags & OUTPROXYTRACE)) return;
|
||||||
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 4), extAddRef9, (void **)&pAddRef9, "AddRef(D9)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 4), extAddRef9, (void **)&pAddRef9, "AddRef(D9)");
|
||||||
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 8), extRelease9, (void **)&pRelease9, "Release(D9)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 8), extRelease9, (void **)&pRelease9, "Release(D9)");
|
||||||
@ -925,9 +956,17 @@ HRESULT WINAPI extCreateDeviceEx(void *lpd3d, UINT adapter, D3DDEVTYPE devicetyp
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern char *ExplainRenderstateValue(DWORD Value);
|
||||||
|
|
||||||
HRESULT WINAPI extSetRenderState(void *pd3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
HRESULT WINAPI extSetRenderState(void *pd3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
||||||
{
|
{
|
||||||
if (State == D3DRS_FILLMODE) Value=D3DFILL_WIREFRAME;
|
if((dxw.dwFlags4 & ZBUFFERALWAYS) && (State == D3DRS_ZFUNC)) {
|
||||||
|
OutTraceD3D("SetRenderState: FIXED State=ZFUNC Value=%s->D3DCMP_ALWAYS\n", ExplainRenderstateValue(Value));
|
||||||
|
Value = D3DCMP_ALWAYS;
|
||||||
|
}
|
||||||
|
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRS_FILLMODE)) Value=D3DFILL_WIREFRAME;
|
||||||
|
if((dxw.dwFlags4 & DISABLEFOGGING) && (State == D3DRS_FOGENABLE)) Value=FALSE;
|
||||||
|
//if(1 && (State == D3DRS_SPECULARENABLE)) Value=TRUE;
|
||||||
return (*pSetRenderState)(pd3dd, State, Value);
|
return (*pSetRenderState)(pd3dd, State, Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1295,3 +1334,48 @@ ULONG WINAPI extRelease9(void *lpdd3dd)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ULONG WINAPI extCreateRenderTarget8(void *lpdd3dd, UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, BOOL Lockable, IDirect3DSurface8** ppSurface)
|
||||||
|
ULONG WINAPI extCreateRenderTarget8(void *lpdd3dd, UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, BOOL Lockable, void** ppSurface)
|
||||||
|
{
|
||||||
|
ULONG res;
|
||||||
|
|
||||||
|
OutTraceD3D("Device::CreateRenderTarget(8): dd3dd=%x dim=(%dx%d) Format=%x Lockable=%x\n",
|
||||||
|
lpdd3dd, Width, Height, Format, Lockable);
|
||||||
|
res=(*pCreateRenderTarget8)(lpdd3dd, Width, Height, Format, MultiSample, Lockable, ppSurface);
|
||||||
|
OutTraceD3D("Device::CreateRenderTarget(8): res=%x\n", res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONG WINAPI extBeginScene8(void *lpdd3dd)
|
||||||
|
{
|
||||||
|
ULONG res;
|
||||||
|
OutTraceD3D("Device::BeginScene(8): d3dd=%x\n", lpdd3dd);
|
||||||
|
res=(*pBeginScene8)(lpdd3dd);
|
||||||
|
if (res) OutTraceE("Device::BeginScene(8) ERROR: err=%x\n", res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONG WINAPI extBeginScene9(void *lpdd3dd)
|
||||||
|
{
|
||||||
|
ULONG res;
|
||||||
|
OutTraceD3D("Device::BeginScene(9): d3dd=%x\n", lpdd3dd);
|
||||||
|
res=(*pBeginScene9)(lpdd3dd);
|
||||||
|
if (res) OutTraceE("Device::BeginScene(9) ERROR: err=%x\n", res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONG WINAPI extEndScene8(void *lpdd3dd)
|
||||||
|
{
|
||||||
|
ULONG res;
|
||||||
|
res=(*pEndScene8)(lpdd3dd);
|
||||||
|
if (res) OutTraceE("Device::EndScene(8) ERROR: err=%x\n", res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
ULONG WINAPI extEndScene9(void *lpdd3dd)
|
||||||
|
{
|
||||||
|
ULONG res;
|
||||||
|
res=(*pEndScene9)(lpdd3dd);
|
||||||
|
if (res) OutTraceE("Device::EndScene(9) ERROR: err=%x\n", res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
@ -301,6 +301,7 @@ void HookDirect3DDevice(void **lpd3ddev, int d3dversion)
|
|||||||
if(pSetRenderState2){
|
if(pSetRenderState2){
|
||||||
if(dxw.dwFlags2 & WIREFRAME)(*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
|
if(dxw.dwFlags2 & WIREFRAME)(*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
|
||||||
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_FOGENABLE, FALSE);
|
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_FOGENABLE, FALSE);
|
||||||
|
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_ALWAYS);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@ -315,6 +316,7 @@ void HookDirect3DDevice(void **lpd3ddev, int d3dversion)
|
|||||||
if(pSetRenderState3){
|
if(pSetRenderState3){
|
||||||
if(dxw.dwFlags2 & WIREFRAME)(*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
|
if(dxw.dwFlags2 & WIREFRAME)(*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
|
||||||
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_FOGENABLE, FALSE);
|
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_FOGENABLE, FALSE);
|
||||||
|
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_ALWAYS);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
@ -801,6 +803,10 @@ HRESULT WINAPI extSetRenderState2(void *d3dd, D3DRENDERSTATETYPE State, DWORD Va
|
|||||||
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRENDERSTATE_FILLMODE)){
|
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRENDERSTATE_FILLMODE)){
|
||||||
Value = D3DFILL_WIREFRAME;
|
Value = D3DFILL_WIREFRAME;
|
||||||
OutTraceD3D("SetRenderState: FIXED State=FILLMODE Value=D3DFILL_WIREFRAME\n");
|
OutTraceD3D("SetRenderState: FIXED State=FILLMODE Value=D3DFILL_WIREFRAME\n");
|
||||||
|
}
|
||||||
|
if((dxw.dwFlags4 & DISABLEFOGGING) && (State == D3DRENDERSTATE_FOGENABLE)){
|
||||||
|
OutTraceD3D("SetRenderState: FIXED State=FOGENABLE Value=FALSE\n");
|
||||||
|
Value = FALSE;
|
||||||
}
|
}
|
||||||
res=(*pSetRenderState2)(d3dd, State, Value);
|
res=(*pSetRenderState2)(d3dd, State, Value);
|
||||||
if(res) OutTraceE("SetRenderState(2): res=%x(%s)\n", res, ExplainDDError(res));
|
if(res) OutTraceE("SetRenderState(2): res=%x(%s)\n", res, ExplainDDError(res));
|
||||||
|
@ -41,8 +41,8 @@ static HookEntry_Type TimeHooks[]={
|
|||||||
{"GetSystemTimeAsFileTime", (FARPROC)GetSystemTimeAsFileTime, (FARPROC *)&pGetSystemTimeAsFileTime, (FARPROC)extGetSystemTimeAsFileTime},
|
{"GetSystemTimeAsFileTime", (FARPROC)GetSystemTimeAsFileTime, (FARPROC *)&pGetSystemTimeAsFileTime, (FARPROC)extGetSystemTimeAsFileTime},
|
||||||
{"Sleep", (FARPROC)Sleep, (FARPROC *)&pSleep, (FARPROC)extSleep},
|
{"Sleep", (FARPROC)Sleep, (FARPROC *)&pSleep, (FARPROC)extSleep},
|
||||||
{"SleepEx", (FARPROC)SleepEx, (FARPROC *)&pSleepEx, (FARPROC)extSleepEx},
|
{"SleepEx", (FARPROC)SleepEx, (FARPROC *)&pSleepEx, (FARPROC)extSleepEx},
|
||||||
{"QueryPerformanceCounter", (FARPROC)NULL, (FARPROC *)&pQueryPerformanceCounter, (FARPROC)extQueryPerformanceCounter},
|
{"QueryPerformanceCounter", (FARPROC)QueryPerformanceCounter, (FARPROC *)&pQueryPerformanceCounter, (FARPROC)extQueryPerformanceCounter},
|
||||||
{"QueryPerformanceFrequency", (FARPROC)NULL, (FARPROC *)&pQueryPerformanceFrequency, (FARPROC)extQueryPerformanceFrequency},
|
{"QueryPerformanceFrequency", (FARPROC)QueryPerformanceFrequency, (FARPROC *)&pQueryPerformanceFrequency, (FARPROC)extQueryPerformanceFrequency},
|
||||||
{0, NULL, 0, 0} // terminator
|
{0, NULL, 0, 0} // terminator
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user