mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_03_54_src_fix2
Former-commit-id: 14102b5daf581632f28c9ab056624dda6c7d31ac
This commit is contained in:
parent
6778f01eb9
commit
c095fc7c57
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:b9f75f7b545dbfc03a38bf99d8260cbbe4dee01c82b7955c61769a126c643b82
|
oid sha256:6ca8e1fa67ffd8ece8ce4dd729b0eec753da49cad2b29f93f9560f96a1105d18
|
||||||
size 622080
|
size 620544
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:91dd24684d705c58f1e0bb5870715a997c93b285d02075571f0f8ef87068adec
|
oid sha256:4ee938187a007d36fb26816ecd7ce09990a0990c9c071881fa1a95dc2c4da831
|
||||||
size 548352
|
size 548352
|
||||||
|
176
build/dxwnd.ini
Normal file
176
build/dxwnd.ini
Normal file
@ -0,0 +1,176 @@
|
|||||||
|
[window]
|
||||||
|
exepath=D:\Games\Dark Earth\
|
||||||
|
exportpath=D:\DxWnd\exports\
|
||||||
|
posx=1087
|
||||||
|
posy=286
|
||||||
|
sizx=320
|
||||||
|
sizy=200
|
||||||
|
[target]
|
||||||
|
title0=Warlords Battlecry 3 (GOG)
|
||||||
|
path0=D:\Games\Warlords Battlecry 3 (GOG)\Battlecry III.exe
|
||||||
|
launchpath0=
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
notes0=
|
||||||
|
registry0=
|
||||||
|
ver0=0
|
||||||
|
coord0=2
|
||||||
|
flag0=136314914
|
||||||
|
flagg0=1207959568
|
||||||
|
flagh0=20
|
||||||
|
flagi0=138543108
|
||||||
|
flagj0=4224
|
||||||
|
flagk0=65536
|
||||||
|
flagl0=0
|
||||||
|
flagm0=0
|
||||||
|
tflag0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=0
|
||||||
|
winver0=0
|
||||||
|
maxres0=-1
|
||||||
|
swapeffect0=0
|
||||||
|
maxddinterface0=7
|
||||||
|
title1=Galapagos
|
||||||
|
path1=D:\Games\Galapagos\GALA.EXE
|
||||||
|
launchpath1=
|
||||||
|
module1=
|
||||||
|
opengllib1=
|
||||||
|
notes1=
|
||||||
|
registry1=
|
||||||
|
ver1=7
|
||||||
|
coord1=0
|
||||||
|
flag1=681623718
|
||||||
|
flagg1=1207959556
|
||||||
|
flagh1=20
|
||||||
|
flagi1=203423748
|
||||||
|
flagj1=128
|
||||||
|
flagk1=65536
|
||||||
|
flagl1=0
|
||||||
|
flagm1=0
|
||||||
|
tflag1=-2147477245
|
||||||
|
posx1=50
|
||||||
|
posy1=50
|
||||||
|
sizx1=800
|
||||||
|
sizy1=600
|
||||||
|
maxfps1=0
|
||||||
|
initts1=0
|
||||||
|
winver1=0
|
||||||
|
maxres1=-1
|
||||||
|
swapeffect1=0
|
||||||
|
maxddinterface1=7
|
||||||
|
title2=Warlords Battlecry III
|
||||||
|
path2=D:\Games\Warlords Battlecry III\Battlecry III.exe
|
||||||
|
launchpath2=
|
||||||
|
module2=
|
||||||
|
opengllib2=
|
||||||
|
notes2=
|
||||||
|
registry2=
|
||||||
|
ver2=0
|
||||||
|
coord2=0
|
||||||
|
flag2=136314914
|
||||||
|
flagg2=1207959568
|
||||||
|
flagh2=20
|
||||||
|
flagi2=-2009071612
|
||||||
|
flagj2=4224
|
||||||
|
flagk2=65536
|
||||||
|
flagl2=0
|
||||||
|
flagm2=0
|
||||||
|
tflag2=-2147477245
|
||||||
|
posx2=50
|
||||||
|
posy2=50
|
||||||
|
sizx2=880
|
||||||
|
sizy2=660
|
||||||
|
maxfps2=0
|
||||||
|
initts2=0
|
||||||
|
winver2=0
|
||||||
|
maxres2=-1
|
||||||
|
swapeffect2=0
|
||||||
|
maxddinterface2=7
|
||||||
|
title3=Close Combat 2: a bridge too far
|
||||||
|
path3=D:\Games\Close Combat 2\CC2.EXE
|
||||||
|
launchpath3=
|
||||||
|
module3=
|
||||||
|
opengllib3=
|
||||||
|
notes3=
|
||||||
|
registry3=[HKEY_LOCAL_MACHINE\SOFTWARE]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Close Combat]\n[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Close Combat\2.00]\n"PID"="00000-000-0000000-00000"\n"InstalledTo"="C:\\GAMES\\CC2"\n"ScreenX"="800"\n"ScreenY"="600"\n"Version"="2.0"\n"IType"=hex:01,00,00,00\n"GameSpeed"=hex:01,00,00,00\n"ShowDSAlert"=hex:01,00,00,00\n"ShowQuickHelp"=hex:01,00,00,00\n"PlaySounds"=hex:01,00,00,00\n"PlayMusic"=hex:01,00,00,00\n"PlayVideos"=hex:00,00,00,00\n"FCopy"=hex:00,00,00,00\n"SMethod"=hex:00,00,00,00\n"Save"=hex:00,00,00,00\n"ShowTrees"=hex:01,00,00,00\n"StaticFPS"=hex:0a,00,00,00\n"InstalledFrom"=".\\"\n"Launched"="1"\n"VersionType"="RetailVersion"\n\n[HKEY_LOCAL_MACHINE\SOFTWARE]\n[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft]\n[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games]\n[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\Close Combat]\n[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\Close Combat\2.00]\n"PID"="00000-000-0000000-00000"\n"InstalledTo"="C:\\GAMES\\CC2"\n"ScreenX"="800"\n"ScreenY"="600"\n"Version"="2.0"\n"IType"=hex:01,00,00,00\n"GameSpeed"=hex:01,00,00,00\n"ShowDSAlert"=hex:01,00,00,00\n"ShowQuickHelp"=hex:01,00,00,00\n"PlaySounds"=hex:01,00,00,00\n"PlayMusic"=hex:01,00,00,00\n"PlayVideos"=hex:00,00,00,00\n"FCopy"=hex:00,00,00,00\n"SMethod"=hex:00,00,00,00\n"Save"=hex:00,00,00,00\n"ShowTrees"=hex:01,00,00,00\n"StaticFPS"=hex:0a,00,00,00\n"InstalledFrom"=".\\"\n"Launched"="1"\n"VersionType"="RetailVersion"\n\n
|
||||||
|
ver3=0
|
||||||
|
coord3=0
|
||||||
|
flag3=134225952
|
||||||
|
flagg3=1744830464
|
||||||
|
flagh3=1044
|
||||||
|
flagi3=1279262724
|
||||||
|
flagj3=8392832
|
||||||
|
flagk3=0
|
||||||
|
flagl3=0
|
||||||
|
flagm3=0
|
||||||
|
tflag3=0
|
||||||
|
posx3=50
|
||||||
|
posy3=50
|
||||||
|
sizx3=0
|
||||||
|
sizy3=0
|
||||||
|
maxfps3=0
|
||||||
|
initts3=0
|
||||||
|
winver3=0
|
||||||
|
maxres3=-1
|
||||||
|
swapeffect3=0
|
||||||
|
maxddinterface3=7
|
||||||
|
title4=CyberStrike 2
|
||||||
|
path4=D:\Games\CyberStrike 2\CS2OG.FUN
|
||||||
|
launchpath4=
|
||||||
|
module4=
|
||||||
|
opengllib4=
|
||||||
|
notes4=
|
||||||
|
registry4=
|
||||||
|
ver4=0
|
||||||
|
coord4=0
|
||||||
|
flag4=136314978
|
||||||
|
flagg4=1476395008
|
||||||
|
flagh4=20
|
||||||
|
flagi4=136314884
|
||||||
|
flagj4=1054848
|
||||||
|
flagk4=65536
|
||||||
|
flagl4=0
|
||||||
|
flagm4=0
|
||||||
|
tflag4=-2147477245
|
||||||
|
posx4=50
|
||||||
|
posy4=50
|
||||||
|
sizx4=800
|
||||||
|
sizy4=600
|
||||||
|
maxfps4=0
|
||||||
|
initts4=0
|
||||||
|
winver4=0
|
||||||
|
maxres4=-1
|
||||||
|
swapeffect4=0
|
||||||
|
maxddinterface4=7
|
||||||
|
title5=Dark Earth
|
||||||
|
path5=D:\Games\Dark Earth\dkev.exe
|
||||||
|
launchpath5=
|
||||||
|
module5=
|
||||||
|
opengllib5=
|
||||||
|
notes5=
|
||||||
|
registry5=
|
||||||
|
ver5=0
|
||||||
|
coord5=0
|
||||||
|
flag5=136331362
|
||||||
|
flagg5=1476395008
|
||||||
|
flagh5=20
|
||||||
|
flagi5=138936324
|
||||||
|
flagj5=4224
|
||||||
|
flagk5=65536
|
||||||
|
flagl5=0
|
||||||
|
flagm5=0
|
||||||
|
tflag5=-2147477245
|
||||||
|
posx5=50
|
||||||
|
posy5=50
|
||||||
|
sizx5=800
|
||||||
|
sizy5=600
|
||||||
|
maxfps5=0
|
||||||
|
initts5=0
|
||||||
|
winver5=0
|
||||||
|
maxres5=-1
|
||||||
|
swapeffect5=0
|
||||||
|
maxddinterface5=7
|
52
build/dxwnd.reg
Normal file
52
build/dxwnd.reg
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE]
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games]
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Close Combat]
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Games\Close Combat\2.00]
|
||||||
|
"PID"="00000-000-0000000-00000"
|
||||||
|
"InstalledTo"="C:\\GAMES\\CC2"
|
||||||
|
"ScreenX"="800"
|
||||||
|
"ScreenY"="600"
|
||||||
|
"Version"="2.0"
|
||||||
|
"IType"=hex:01,00,00,00
|
||||||
|
"GameSpeed"=hex:01,00,00,00
|
||||||
|
"ShowDSAlert"=hex:01,00,00,00
|
||||||
|
"ShowQuickHelp"=hex:01,00,00,00
|
||||||
|
"PlaySounds"=hex:01,00,00,00
|
||||||
|
"PlayMusic"=hex:01,00,00,00
|
||||||
|
"PlayVideos"=hex:00,00,00,00
|
||||||
|
"FCopy"=hex:00,00,00,00
|
||||||
|
"SMethod"=hex:00,00,00,00
|
||||||
|
"Save"=hex:00,00,00,00
|
||||||
|
"ShowTrees"=hex:01,00,00,00
|
||||||
|
"StaticFPS"=hex:0a,00,00,00
|
||||||
|
"InstalledFrom"=".\\"
|
||||||
|
"Launched"="1"
|
||||||
|
"VersionType"="RetailVersion"
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE]
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft]
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games]
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\Close Combat]
|
||||||
|
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft Games\Close Combat\2.00]
|
||||||
|
"PID"="00000-000-0000000-00000"
|
||||||
|
"InstalledTo"="C:\\GAMES\\CC2"
|
||||||
|
"ScreenX"="800"
|
||||||
|
"ScreenY"="600"
|
||||||
|
"Version"="2.0"
|
||||||
|
"IType"=hex:01,00,00,00
|
||||||
|
"GameSpeed"=hex:01,00,00,00
|
||||||
|
"ShowDSAlert"=hex:01,00,00,00
|
||||||
|
"ShowQuickHelp"=hex:01,00,00,00
|
||||||
|
"PlaySounds"=hex:01,00,00,00
|
||||||
|
"PlayMusic"=hex:01,00,00,00
|
||||||
|
"PlayVideos"=hex:00,00,00,00
|
||||||
|
"FCopy"=hex:00,00,00,00
|
||||||
|
"SMethod"=hex:00,00,00,00
|
||||||
|
"Save"=hex:00,00,00,00
|
||||||
|
"ShowTrees"=hex:01,00,00,00
|
||||||
|
"StaticFPS"=hex:0a,00,00,00
|
||||||
|
"InstalledFrom"=".\\"
|
||||||
|
"Launched"="1"
|
||||||
|
"VersionType"="RetailVersion"
|
||||||
|
|
@ -1025,8 +1025,9 @@ fix: changed SetHook so that it can get function pointers without necessarily re
|
|||||||
add: option "Limit ddraw interface" to exclude support for IDirectDrawInterface greater than limit (range 1-7)
|
add: option "Limit ddraw interface" to exclude support for IDirectDrawInterface greater than limit (range 1-7)
|
||||||
|
|
||||||
v2.03.53(skipped)
|
v2.03.53(skipped)
|
||||||
v2.03.54
|
v2.03.54 (fix1+2)
|
||||||
add: syslib shared dc mode preliminary implementation, thank to Narzoul's ideas. Works for "MS Golf 98" and "Deadlock II rel. 1.2"
|
add: syslib shared dc mode preliminary implementation, thank to Narzoul's ideas. Works for "MS Golf 98" and "Deadlock II rel. 1.2"
|
||||||
fix: handling of cursor hide/show for programs that don't go through the message window ("Deadlock II rel. 1.2")
|
fix: handling of cursor hide/show for programs that don't go through the message window ("Deadlock II rel. 1.2")
|
||||||
add: /R:n command line option to automatically start DxWnd in icon tray, run the n-th program in configuration and terminate.
|
add: /R:n command line option to automatically start DxWnd in icon tray, run the n-th program in configuration and terminate.
|
||||||
add: option to disable the disabling of Alt-Tab key through SetWindowHooks through WH_KEYBOARD_LL event. Mae it posssible to use Alt-Tab key on "Dungeon Kepper II".
|
add: option to disable the disabling of Alt-Tab key through SetWindowHooks through WH_KEYBOARD_LL event. Make it posssible to use Alt-Tab key on "Dungeon Kepper II".
|
||||||
|
fix: palette object reference count decremented from extra references and zeroed by the "Return 0 refcount" flag: make it possible to run "Dark Earth" that makes a check on the palette reerence counter before starting the game.
|
@ -295,6 +295,7 @@ LPDIRECTDRAWSURFACE lpDDZBuffer=NULL;
|
|||||||
LPDIRECTDRAW lpPrimaryDD=NULL;
|
LPDIRECTDRAW lpPrimaryDD=NULL;
|
||||||
int iBakBufferVersion;
|
int iBakBufferVersion;
|
||||||
LPDIRECTDRAWPALETTE lpDDP=NULL;
|
LPDIRECTDRAWPALETTE lpDDP=NULL;
|
||||||
|
int iDDPExtraRefCounter=0;
|
||||||
// v2.02.37: globals to store requested main surface capabilities
|
// v2.02.37: globals to store requested main surface capabilities
|
||||||
DDSURFACEDESC2 DDSD_Prim;
|
DDSURFACEDESC2 DDSD_Prim;
|
||||||
DWORD DDZBufferCaps;
|
DWORD DDZBufferCaps;
|
||||||
@ -2392,7 +2393,10 @@ static HRESULT BuildPrimaryEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
|
|||||||
}
|
}
|
||||||
// this must be done after hooking - who knows why?
|
// this must be done after hooking - who knows why?
|
||||||
res=(*pSetPalette)(*lplpdds, lpDDP);
|
res=(*pSetPalette)(*lplpdds, lpDDP);
|
||||||
if(res) OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__);
|
if(res) {
|
||||||
|
OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__);
|
||||||
|
}
|
||||||
|
else iDDPExtraRefCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set a global capability value for surfaces that have to blit to primary
|
// set a global capability value for surfaces that have to blit to primary
|
||||||
@ -2469,7 +2473,10 @@ static HRESULT BuildPrimaryFlippable(LPDIRECTDRAW lpdd, CreateSurface_Type pCrea
|
|||||||
}
|
}
|
||||||
// this must be done after hooking - who knows why?
|
// this must be done after hooking - who knows why?
|
||||||
res=(*pSetPalette)(*lplpdds, lpDDP);
|
res=(*pSetPalette)(*lplpdds, lpDDP);
|
||||||
if(res) OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__);
|
if(res) {
|
||||||
|
OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__);
|
||||||
|
}
|
||||||
|
else iDDPExtraRefCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set a global capability value for surfaces that have to blit to primary
|
// set a global capability value for surfaces that have to blit to primary
|
||||||
@ -2590,7 +2597,10 @@ static HRESULT BuildBackBufferEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateS
|
|||||||
}
|
}
|
||||||
// this must be done after hooking - who knows why?
|
// this must be done after hooking - who knows why?
|
||||||
res=(*pSetPalette)(*lplpdds, lpDDP);
|
res=(*pSetPalette)(*lplpdds, lpDDP);
|
||||||
if(res) OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__);
|
if(res) {
|
||||||
|
OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__);
|
||||||
|
}
|
||||||
|
else iDDPExtraRefCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// V2.1.85/V2.2.34: tricky !!!!
|
// V2.1.85/V2.2.34: tricky !!!!
|
||||||
@ -2646,7 +2656,10 @@ static HRESULT BuildBackBufferFlippable(LPDIRECTDRAW lpdd, CreateSurface_Type pC
|
|||||||
}
|
}
|
||||||
// this must be done after hooking - who knows why?
|
// this must be done after hooking - who knows why?
|
||||||
res=(*pSetPalette)(*lplpdds, lpDDP);
|
res=(*pSetPalette)(*lplpdds, lpDDP);
|
||||||
if(res) OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__);
|
if(res) {
|
||||||
|
OutTraceE("CreateSurface: SetPalette ERROR err=%x at %d\n", res, __LINE__);
|
||||||
|
}
|
||||||
|
else iDDPExtraRefCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return DD_OK;
|
return DD_OK;
|
||||||
@ -2798,8 +2811,10 @@ static HRESULT BuildGenericEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
|
|||||||
res=(*pSetPalette)(*lplpdds, lpDDP);
|
res=(*pSetPalette)(*lplpdds, lpDDP);
|
||||||
if(res)
|
if(res)
|
||||||
OutTraceE("SetPalette: ERROR on lpdds=%x(Emu_Generic) res=%x(%s) at %d\n", *lplpdds, res, ExplainDDError(res), __LINE__);
|
OutTraceE("SetPalette: ERROR on lpdds=%x(Emu_Generic) res=%x(%s) at %d\n", *lplpdds, res, ExplainDDError(res), __LINE__);
|
||||||
else
|
else {
|
||||||
OutTraceDW("CreateSurface: applied lpddp=%x to lpdds=%x\n", lpDDP, *lplpdds);
|
OutTraceDW("CreateSurface: applied lpddp=%x to lpdds=%x\n", lpDDP, *lplpdds);
|
||||||
|
iDDPExtraRefCounter++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// diagnostic hooks ....
|
// diagnostic hooks ....
|
||||||
@ -2849,8 +2864,10 @@ static HRESULT BuildGenericFlippable(LPDIRECTDRAW lpdd, CreateSurface_Type pCrea
|
|||||||
res=(*pSetPalette)(*lplpdds, lpDDP);
|
res=(*pSetPalette)(*lplpdds, lpDDP);
|
||||||
if(res)
|
if(res)
|
||||||
OutTraceE("SetPalette: ERROR on lpdds=%x(Emu_Generic) res=%x(%s) at %d\n", *lplpdds, res, ExplainDDError(res), __LINE__);
|
OutTraceE("SetPalette: ERROR on lpdds=%x(Emu_Generic) res=%x(%s) at %d\n", *lplpdds, res, ExplainDDError(res), __LINE__);
|
||||||
else
|
else {
|
||||||
OutTraceDW("CreateSurface: applied lpddp=%x to lpdds=%x\n", lpDDP, *lplpdds);
|
OutTraceDW("CreateSurface: applied lpddp=%x to lpdds=%x\n", lpDDP, *lplpdds);
|
||||||
|
iDDPExtraRefCounter++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// diagnostic hooks ....
|
// diagnostic hooks ....
|
||||||
@ -3815,6 +3832,7 @@ HRESULT WINAPI extGetPalette(LPDIRECTDRAWSURFACE lpdds, LPDIRECTDRAWPALETTE *lpl
|
|||||||
OutTraceDW("GetPalette: retrieve PRIMARY palette for emulated surface lpDDP=%x\n", lpDDP);
|
OutTraceDW("GetPalette: retrieve PRIMARY palette for emulated surface lpDDP=%x\n", lpDDP);
|
||||||
*lplpddp = lpDDP;
|
*lplpddp = lpDDP;
|
||||||
lpDDP->AddRef();
|
lpDDP->AddRef();
|
||||||
|
iDDPExtraRefCounter++;
|
||||||
res=DD_OK;
|
res=DD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4267,6 +4285,7 @@ HRESULT WINAPI extGetDC(LPDIRECTDRAWSURFACE lpdds, HDC FAR *pHDC)
|
|||||||
OutTraceE("GetDC: SetPalette ERROR res=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
OutTraceE("GetDC: SetPalette ERROR res=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
iDDPExtraRefCounter++;
|
||||||
// retry ....
|
// retry ....
|
||||||
res=(*pGetDC)(lpdds, pHDC);
|
res=(*pGetDC)(lpdds, pHDC);
|
||||||
}
|
}
|
||||||
@ -4878,6 +4897,7 @@ ULONG WINAPI extReleaseD(int dxversion, ReleaseD_Type pReleaseD, LPDIRECTDRAW lp
|
|||||||
lpDDSEmu_Prim=NULL;
|
lpDDSEmu_Prim=NULL;
|
||||||
lpDDSEmu_Back=NULL;
|
lpDDSEmu_Back=NULL;
|
||||||
lpDDP=NULL;
|
lpDDP=NULL;
|
||||||
|
iDDPExtraRefCounter = 0;
|
||||||
lpPrimaryDD=NULL; // v2.02.31
|
lpPrimaryDD=NULL; // v2.02.31
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5136,12 +5156,19 @@ HRESULT WINAPI extReleaseP(LPDIRECTDRAWPALETTE lpddPalette)
|
|||||||
ULONG ref;
|
ULONG ref;
|
||||||
|
|
||||||
ref = (*pReleaseP)(lpddPalette);
|
ref = (*pReleaseP)(lpddPalette);
|
||||||
|
|
||||||
OutTraceDDRAW("Release(P): lpddPalette=%x ref=%x\n", lpddPalette, ref);
|
OutTraceDDRAW("Release(P): lpddPalette=%x ref=%x\n", lpddPalette, ref);
|
||||||
if(lpddPalette==lpDDP && ref==0){
|
|
||||||
OutTraceDW("Release(P): clearing lpDDP=%x->NULL\n", lpDDP);
|
if (lpddPalette == lpDDP) {
|
||||||
lpDDP=NULL;
|
OutTraceDW("Release(P): lpDDP extrarefcount=%d\n", iDDPExtraRefCounter);
|
||||||
|
ref -= iDDPExtraRefCounter;
|
||||||
|
if (ref <= 0) {
|
||||||
|
ref = 0;
|
||||||
|
OutTraceDW("Release(P): clearing lpDDP=%x->NULL\n", lpDDP);
|
||||||
|
lpDDP=NULL;
|
||||||
|
}
|
||||||
|
if(dxw.dwFlags4 & RETURNNULLREF) ref = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return ref;
|
return ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include "TlHelp32.h"
|
#include "TlHelp32.h"
|
||||||
|
|
||||||
#define VERSION "2.03.54"
|
#define VERSION "2.03.54.fix2"
|
||||||
|
|
||||||
#define DDTHREADLOCK 1
|
#define DDTHREADLOCK 1
|
||||||
//#define LOCKTHREADS
|
//#define LOCKTHREADS
|
||||||
|
Binary file not shown.
@ -783,6 +783,9 @@ UINT WINAPI extGetSystemPaletteUse(HDC hdc)
|
|||||||
UINT res;
|
UINT res;
|
||||||
OutTraceDW("GDI.GetSystemPaletteUse: hdc=%x\n", hdc);
|
OutTraceDW("GDI.GetSystemPaletteUse: hdc=%x\n", hdc);
|
||||||
res=(*pGetSystemPaletteUse)(hdc);
|
res=(*pGetSystemPaletteUse)(hdc);
|
||||||
|
|
||||||
|
if((res == SYSPAL_ERROR) && (dxw.dwFlags6 & SYNCPALETTE)) res = SYSPAL_NOSTATIC;
|
||||||
|
|
||||||
OutTraceDW("GetSystemPaletteUse: res=%x(%s)\n", res, ExplainPaletteUse(res));
|
OutTraceDW("GetSystemPaletteUse: res=%x(%s)\n", res, ExplainPaletteUse(res));
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,11 @@ typedef HRESULT (WINAPI *Initialize_Type)(void *);
|
|||||||
typedef HRESULT (WINAPI *EnumDevices_Type)(void *, LPD3DENUMDEVICESCALLBACK, LPVOID);
|
typedef HRESULT (WINAPI *EnumDevices_Type)(void *, LPD3DENUMDEVICESCALLBACK, LPVOID);
|
||||||
typedef HRESULT (WINAPI *EnumDevices7_Type)(void *, LPD3DENUMDEVICESCALLBACK7, LPVOID);
|
typedef HRESULT (WINAPI *EnumDevices7_Type)(void *, LPD3DENUMDEVICESCALLBACK7, LPVOID);
|
||||||
typedef HRESULT (WINAPI *CreateLight_Type)(void *, LPDIRECT3DLIGHT *, IUnknown *);
|
typedef HRESULT (WINAPI *CreateLight_Type)(void *, LPDIRECT3DLIGHT *, IUnknown *);
|
||||||
typedef HRESULT (WINAPI *CreateMaterial_Type)(void *, LPDIRECT3DMATERIAL *, IUnknown *);
|
#ifdef TRACEMATERIAL
|
||||||
|
typedef HRESULT (WINAPI *CreateMaterial1_Type)(void *, LPDIRECT3DMATERIAL *, IUnknown *);
|
||||||
|
typedef HRESULT (WINAPI *CreateMaterial2_Type)(void *, LPDIRECT3DMATERIAL2 *, IUnknown *);
|
||||||
|
typedef HRESULT (WINAPI *CreateMaterial3_Type)(void *, LPDIRECT3DMATERIAL3 *, IUnknown *);
|
||||||
|
#endif
|
||||||
typedef HRESULT (WINAPI *CreateViewport1_Type)(void *, LPDIRECT3DVIEWPORT *, IUnknown *);
|
typedef HRESULT (WINAPI *CreateViewport1_Type)(void *, LPDIRECT3DVIEWPORT *, IUnknown *);
|
||||||
typedef HRESULT (WINAPI *CreateViewport2_Type)(void *, LPDIRECT3DVIEWPORT2 *, IUnknown *);
|
typedef HRESULT (WINAPI *CreateViewport2_Type)(void *, LPDIRECT3DVIEWPORT2 *, IUnknown *);
|
||||||
typedef HRESULT (WINAPI *CreateViewport3_Type)(void *, LPDIRECT3DVIEWPORT3 *, IUnknown *);
|
typedef HRESULT (WINAPI *CreateViewport3_Type)(void *, LPDIRECT3DVIEWPORT3 *, IUnknown *);
|
||||||
@ -45,7 +49,11 @@ Initialize_Type pInitialize = NULL;
|
|||||||
EnumDevices_Type pEnumDevices = NULL;
|
EnumDevices_Type pEnumDevices = NULL;
|
||||||
EnumDevices7_Type pEnumDevices7 = NULL;
|
EnumDevices7_Type pEnumDevices7 = NULL;
|
||||||
CreateLight_Type pCreateLight = NULL;
|
CreateLight_Type pCreateLight = NULL;
|
||||||
CreateMaterial_Type pCreateMaterial = NULL;
|
#ifdef TRACEMATERIAL
|
||||||
|
CreateMaterial1_Type pCreateMaterial1 = NULL;
|
||||||
|
CreateMaterial2_Type pCreateMaterial2 = NULL;
|
||||||
|
CreateMaterial3_Type pCreateMaterial3 = NULL;
|
||||||
|
#endif
|
||||||
CreateViewport1_Type pCreateViewport1 = NULL;
|
CreateViewport1_Type pCreateViewport1 = NULL;
|
||||||
CreateViewport2_Type pCreateViewport2 = NULL;
|
CreateViewport2_Type pCreateViewport2 = NULL;
|
||||||
CreateViewport3_Type pCreateViewport3 = NULL;
|
CreateViewport3_Type pCreateViewport3 = NULL;
|
||||||
@ -114,8 +122,6 @@ SwapTextureHandles2_Type pSwapTextureHandles2 = NULL;
|
|||||||
|
|
||||||
typedef HRESULT (WINAPI *InitializeVP_Type)(void *, LPDIRECT3D);
|
typedef HRESULT (WINAPI *InitializeVP_Type)(void *, LPDIRECT3D);
|
||||||
typedef HRESULT (WINAPI *SetViewport_Type)(void *, LPD3DVIEWPORT);
|
typedef HRESULT (WINAPI *SetViewport_Type)(void *, LPD3DVIEWPORT);
|
||||||
typedef HRESULT (WINAPI *SetMaterial_Type)(void *, LPD3DMATERIAL);
|
|
||||||
typedef HRESULT (WINAPI *GetMaterial_Type)(void *, LPD3DMATERIAL);
|
|
||||||
typedef HRESULT (WINAPI *GetViewport_Type)(void *, LPD3DVIEWPORT);
|
typedef HRESULT (WINAPI *GetViewport_Type)(void *, LPD3DVIEWPORT);
|
||||||
typedef HRESULT (WINAPI *GetViewport2_Type)(void *, LPD3DVIEWPORT);
|
typedef HRESULT (WINAPI *GetViewport2_Type)(void *, LPD3DVIEWPORT);
|
||||||
typedef HRESULT (WINAPI *SetViewport2_Type)(void *, LPD3DVIEWPORT);
|
typedef HRESULT (WINAPI *SetViewport2_Type)(void *, LPD3DVIEWPORT);
|
||||||
@ -129,10 +135,15 @@ typedef HRESULT (WINAPI *DeleteViewport2_Type)(void *, LPDIRECT3DVIEWPORT2);
|
|||||||
typedef HRESULT (WINAPI *NextViewport2_Type)(void *, LPDIRECT3DVIEWPORT2, LPDIRECT3DVIEWPORT2 *, DWORD);
|
typedef HRESULT (WINAPI *NextViewport2_Type)(void *, LPDIRECT3DVIEWPORT2, LPDIRECT3DVIEWPORT2 *, DWORD);
|
||||||
typedef HRESULT (WINAPI *ViewportClear_Type)(void *, DWORD, LPD3DRECT, DWORD);
|
typedef HRESULT (WINAPI *ViewportClear_Type)(void *, DWORD, LPD3DRECT, DWORD);
|
||||||
|
|
||||||
|
#ifdef TRACEMATERIAL
|
||||||
|
// IDirect3DMaterial interfaces
|
||||||
|
|
||||||
|
typedef HRESULT (WINAPI *SetMaterial_Type)(void *, LPD3DMATERIAL);
|
||||||
|
typedef HRESULT (WINAPI *GetMaterial_Type)(void *, LPD3DMATERIAL);
|
||||||
|
#endif
|
||||||
|
|
||||||
InitializeVP_Type pInitializeVP = NULL;
|
InitializeVP_Type pInitializeVP = NULL;
|
||||||
SetViewport_Type pSetViewport = NULL;
|
SetViewport_Type pSetViewport = NULL;
|
||||||
SetMaterial_Type pSetMaterial = NULL;
|
|
||||||
GetMaterial_Type pGetMaterial = NULL;
|
|
||||||
GetViewport_Type pGetViewport = NULL;
|
GetViewport_Type pGetViewport = NULL;
|
||||||
GetViewport2_Type pGetViewport2 = NULL;
|
GetViewport2_Type pGetViewport2 = NULL;
|
||||||
SetViewport2_Type pSetViewport2 = NULL;
|
SetViewport2_Type pSetViewport2 = NULL;
|
||||||
@ -146,11 +157,20 @@ DeleteViewport2_Type pDeleteViewport2 = NULL;
|
|||||||
NextViewport2_Type pNextViewport2 = NULL;
|
NextViewport2_Type pNextViewport2 = NULL;
|
||||||
ViewportClear_Type pViewportClear = NULL;
|
ViewportClear_Type pViewportClear = NULL;
|
||||||
|
|
||||||
|
#ifdef TRACEMATERIAL
|
||||||
|
SetMaterial_Type pSetMaterial = NULL;
|
||||||
|
GetMaterial_Type pGetMaterial = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
HRESULT WINAPI extInitialize(void *);
|
HRESULT WINAPI extInitialize(void *);
|
||||||
HRESULT WINAPI extEnumDevices(void *, LPD3DENUMDEVICESCALLBACK, LPVOID);
|
HRESULT WINAPI extEnumDevices(void *, LPD3DENUMDEVICESCALLBACK, LPVOID);
|
||||||
HRESULT WINAPI extEnumDevices7(void *, LPD3DENUMDEVICESCALLBACK7, LPVOID);
|
HRESULT WINAPI extEnumDevices7(void *, LPD3DENUMDEVICESCALLBACK7, LPVOID);
|
||||||
HRESULT WINAPI extCreateLight(void *, LPDIRECT3DLIGHT *, IUnknown *);
|
HRESULT WINAPI extCreateLight(void *, LPDIRECT3DLIGHT *, IUnknown *);
|
||||||
HRESULT WINAPI extCreateMaterial(void *, LPDIRECT3DMATERIAL *, IUnknown *);
|
#ifdef TRACEMATERIAL
|
||||||
|
HRESULT WINAPI extCreateMaterial1(void *, LPDIRECT3DMATERIAL *, IUnknown *);
|
||||||
|
HRESULT WINAPI extCreateMaterial2(void *, LPDIRECT3DMATERIAL2 *, IUnknown *);
|
||||||
|
HRESULT WINAPI extCreateMaterial3(void *, LPDIRECT3DMATERIAL3 *, IUnknown *);
|
||||||
|
#endif
|
||||||
HRESULT WINAPI extCreateViewport1(void *, LPDIRECT3DVIEWPORT *, IUnknown *);
|
HRESULT WINAPI extCreateViewport1(void *, LPDIRECT3DVIEWPORT *, IUnknown *);
|
||||||
HRESULT WINAPI extCreateViewport2(void *, LPDIRECT3DVIEWPORT2 *, IUnknown *);
|
HRESULT WINAPI extCreateViewport2(void *, LPDIRECT3DVIEWPORT2 *, IUnknown *);
|
||||||
HRESULT WINAPI extCreateViewport3(void *, LPDIRECT3DVIEWPORT3 *, IUnknown *);
|
HRESULT WINAPI extCreateViewport3(void *, LPDIRECT3DVIEWPORT3 *, IUnknown *);
|
||||||
@ -167,8 +187,10 @@ HRESULT WINAPI extViewportClear(void *, DWORD, LPD3DRECT, DWORD);
|
|||||||
HRESULT WINAPI extInitializeVP(void *, LPDIRECT3D);
|
HRESULT WINAPI extInitializeVP(void *, LPDIRECT3D);
|
||||||
HRESULT WINAPI extSetViewport(void *, LPD3DVIEWPORT);
|
HRESULT WINAPI extSetViewport(void *, LPD3DVIEWPORT);
|
||||||
HRESULT WINAPI extGetViewport(void *, LPD3DVIEWPORT);
|
HRESULT WINAPI extGetViewport(void *, LPD3DVIEWPORT);
|
||||||
|
#ifdef TRACEMATERIAL
|
||||||
HRESULT WINAPI extSetMaterial(void *, LPD3DMATERIAL);
|
HRESULT WINAPI extSetMaterial(void *, LPD3DMATERIAL);
|
||||||
HRESULT WINAPI extGetMaterial(void *, LPD3DMATERIAL);
|
HRESULT WINAPI extGetMaterial(void *, LPD3DMATERIAL);
|
||||||
|
#endif
|
||||||
HRESULT WINAPI extQueryInterfaceD3(void *, REFIID, LPVOID *);
|
HRESULT WINAPI extQueryInterfaceD3(void *, REFIID, LPVOID *);
|
||||||
HRESULT WINAPI extQueryInterfaceD3D(void *, REFIID, LPVOID *);
|
HRESULT WINAPI extQueryInterfaceD3D(void *, REFIID, LPVOID *);
|
||||||
|
|
||||||
@ -382,7 +404,9 @@ void HookDirect3DSession(LPDIRECTDRAW *lplpdd, int d3dversion)
|
|||||||
SetHook((void *)(**(DWORD **)lplpdd + 12), extInitialize, (void **)&pInitialize, "Initialize(1)");
|
SetHook((void *)(**(DWORD **)lplpdd + 12), extInitialize, (void **)&pInitialize, "Initialize(1)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 16), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
|
SetHook((void *)(**(DWORD **)lplpdd + 16), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 20), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
SetHook((void *)(**(DWORD **)lplpdd + 20), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 24), extCreateMaterial, (void **)&pCreateMaterial, "CreateMaterial");
|
#ifdef TRACEMATERIAL
|
||||||
|
SetHook((void *)(**(DWORD **)lplpdd + 24), extCreateMaterial1, (void **)&pCreateMaterial1, "CreateMaterial(1)");
|
||||||
|
#endif
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 28), extCreateViewport1, (void **)&pCreateViewport1, "CreateViewport(1)");
|
SetHook((void *)(**(DWORD **)lplpdd + 28), extCreateViewport1, (void **)&pCreateViewport1, "CreateViewport(1)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 32), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
SetHook((void *)(**(DWORD **)lplpdd + 32), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
||||||
break;
|
break;
|
||||||
@ -390,7 +414,9 @@ void HookDirect3DSession(LPDIRECTDRAW *lplpdd, int d3dversion)
|
|||||||
SetHook((void *)(**(DWORD **)lplpdd + 0), extQueryInterfaceD3, (void **)&pQueryInterfaceD3, "QueryInterface(D3S)");
|
SetHook((void *)(**(DWORD **)lplpdd + 0), extQueryInterfaceD3, (void **)&pQueryInterfaceD3, "QueryInterface(D3S)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 12), extEnumDevices, (void **)&pEnumDevices, "EnumDevices(2)");
|
SetHook((void *)(**(DWORD **)lplpdd + 12), extEnumDevices, (void **)&pEnumDevices, "EnumDevices(2)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 16), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
SetHook((void *)(**(DWORD **)lplpdd + 16), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 20), extCreateMaterial, (void **)&pCreateMaterial, "CreateMaterial");
|
#ifdef TRACEMATERIAL
|
||||||
|
SetHook((void *)(**(DWORD **)lplpdd + 20), extCreateMaterial2, (void **)&pCreateMaterial2, "CreateMaterial(2)");
|
||||||
|
#endif
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 24), extCreateViewport2, (void **)&pCreateViewport2, "CreateViewport(2)");
|
SetHook((void *)(**(DWORD **)lplpdd + 24), extCreateViewport2, (void **)&pCreateViewport2, "CreateViewport(2)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 28), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
SetHook((void *)(**(DWORD **)lplpdd + 28), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 32), extCreateDevice2, (void **)&pCreateDevice2, "CreateDevice(D3D2)");
|
SetHook((void *)(**(DWORD **)lplpdd + 32), extCreateDevice2, (void **)&pCreateDevice2, "CreateDevice(D3D2)");
|
||||||
@ -399,7 +425,9 @@ void HookDirect3DSession(LPDIRECTDRAW *lplpdd, int d3dversion)
|
|||||||
SetHook((void *)(**(DWORD **)lplpdd + 0), extQueryInterfaceD3, (void **)&pQueryInterfaceD3, "QueryInterface(D3S)");
|
SetHook((void *)(**(DWORD **)lplpdd + 0), extQueryInterfaceD3, (void **)&pQueryInterfaceD3, "QueryInterface(D3S)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 12), extEnumDevices, (void **)&pEnumDevices, "EnumDevices(3)");
|
SetHook((void *)(**(DWORD **)lplpdd + 12), extEnumDevices, (void **)&pEnumDevices, "EnumDevices(3)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 16), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
SetHook((void *)(**(DWORD **)lplpdd + 16), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 20), extCreateMaterial, (void **)&pCreateMaterial, "CreateMaterial");
|
#ifdef TRACEMATERIAL
|
||||||
|
SetHook((void *)(**(DWORD **)lplpdd + 20), extCreateMaterial3, (void **)&pCreateMaterial3, "CreateMaterial(3)");
|
||||||
|
#endif
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 24), extCreateViewport3, (void **)&pCreateViewport3, "CreateViewport(3)");
|
SetHook((void *)(**(DWORD **)lplpdd + 24), extCreateViewport3, (void **)&pCreateViewport3, "CreateViewport(3)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 28), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
SetHook((void *)(**(DWORD **)lplpdd + 28), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 32), extCreateDevice3, (void **)&pCreateDevice3, "CreateDevice(D3D3)");
|
SetHook((void *)(**(DWORD **)lplpdd + 32), extCreateDevice3, (void **)&pCreateDevice3, "CreateDevice(D3D3)");
|
||||||
@ -563,6 +591,7 @@ void HookViewport(LPDIRECT3DVIEWPORT *lpViewport, int d3dversion)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TRACEMATERIAL
|
||||||
void HookMaterial(LPDIRECT3DMATERIAL *lpMaterial, int d3dversion)
|
void HookMaterial(LPDIRECT3DMATERIAL *lpMaterial, int d3dversion)
|
||||||
{
|
{
|
||||||
OutTraceD3D("HookMaterial: Material=%x d3dversion=%d\n", *lpMaterial, d3dversion);
|
OutTraceD3D("HookMaterial: Material=%x d3dversion=%d\n", *lpMaterial, d3dversion);
|
||||||
@ -578,6 +607,7 @@ void HookMaterial(LPDIRECT3DMATERIAL *lpMaterial, int d3dversion)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void HookTexture(LPVOID *lpTexture, int version)
|
void HookTexture(LPVOID *lpTexture, int version)
|
||||||
{
|
{
|
||||||
@ -618,21 +648,27 @@ HRESULT WINAPI extQueryInterfaceD3(void *lpd3d, REFIID riid, LPVOID *ppvObj)
|
|||||||
SetHook((void *)(**(DWORD **)ppvObj + 12), extInitialize, (void **)&pInitialize, "Initialize");
|
SetHook((void *)(**(DWORD **)ppvObj + 12), extInitialize, (void **)&pInitialize, "Initialize");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 16), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
|
SetHook((void *)(**(DWORD **)ppvObj + 16), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 20), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
SetHook((void *)(**(DWORD **)ppvObj + 20), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 24), extCreateMaterial, (void **)&pCreateMaterial, "CreateMaterial");
|
#ifdef TRACEMATERIAL
|
||||||
|
SetHook((void *)(**(DWORD **)ppvObj + 24), extCreateMaterial1, (void **)&pCreateMaterial1, "CreateMaterial(1)");
|
||||||
|
#endif
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 28), extCreateViewport1, (void **)&pCreateViewport1, "CreateViewport(1)");
|
SetHook((void *)(**(DWORD **)ppvObj + 28), extCreateViewport1, (void **)&pCreateViewport1, "CreateViewport(1)");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 32), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
SetHook((void *)(**(DWORD **)ppvObj + 32), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 12), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
|
SetHook((void *)(**(DWORD **)ppvObj + 12), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 16), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
SetHook((void *)(**(DWORD **)ppvObj + 16), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 20), extCreateMaterial, (void **)&pCreateMaterial, "CreateMaterial");
|
#ifdef TRACEMATERIAL
|
||||||
|
SetHook((void *)(**(DWORD **)ppvObj + 20), extCreateMaterial2, (void **)&pCreateMaterial2, "CreateMaterial(2)");
|
||||||
|
#endif
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 24), extCreateViewport2, (void **)&pCreateViewport2, "CreateViewport(2)");
|
SetHook((void *)(**(DWORD **)ppvObj + 24), extCreateViewport2, (void **)&pCreateViewport2, "CreateViewport(2)");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 28), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
SetHook((void *)(**(DWORD **)ppvObj + 28), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 12), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
|
SetHook((void *)(**(DWORD **)ppvObj + 12), extEnumDevices, (void **)&pEnumDevices, "EnumDevices");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 16), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
SetHook((void *)(**(DWORD **)ppvObj + 16), extCreateLight, (void **)&pCreateLight, "CreateLight");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 20), extCreateMaterial, (void **)&pCreateMaterial, "CreateMaterial");
|
#ifdef TRACEMATERIAL
|
||||||
|
SetHook((void *)(**(DWORD **)ppvObj + 20), extCreateMaterial3, (void **)&pCreateMaterial3, "CreateMaterial(3)");
|
||||||
|
#endif
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 24), extCreateViewport3, (void **)&pCreateViewport3, "CreateViewport(3)");
|
SetHook((void *)(**(DWORD **)ppvObj + 24), extCreateViewport3, (void **)&pCreateViewport3, "CreateViewport(3)");
|
||||||
SetHook((void *)(**(DWORD **)ppvObj + 28), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
SetHook((void *)(**(DWORD **)ppvObj + 28), extFindDevice, (void **)&pFindDevice, "FindDevice");
|
||||||
break;
|
break;
|
||||||
@ -778,18 +814,44 @@ HRESULT WINAPI extCreateLight(void *lpd3d, LPDIRECT3DLIGHT *lpLight, IUnknown *p
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI extCreateMaterial(void *lpd3d, LPDIRECT3DMATERIAL *lpMaterial, IUnknown *p0)
|
#ifdef TRACEMATERIAL
|
||||||
|
HRESULT WINAPI extCreateMaterial1(void *lpd3d, LPDIRECT3DMATERIAL *lpMaterial, IUnknown *p0)
|
||||||
{
|
{
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
|
|
||||||
OutTraceD3D("CreateMaterial: d3d=%x\n", lpd3d);
|
OutTraceD3D("CreateMaterial(1): d3d=%x\n", lpd3d);
|
||||||
res=(*pCreateMaterial)(lpd3d, lpMaterial, p0);
|
res=(*pCreateMaterial1)(lpd3d, lpMaterial, p0);
|
||||||
if(res) OutTraceE("CreateMaterial ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
if(res) OutTraceE("CreateMaterial ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
else OutTraceD3D("CreateMaterial: OK\n");
|
else OutTraceD3D("CreateMaterial: OK\n");
|
||||||
HookMaterial(lpMaterial, GD3DDeviceVersion);
|
HookMaterial(lpMaterial, GD3DDeviceVersion);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT WINAPI extCreateMaterial2(void *lpd3d, LPDIRECT3DMATERIAL2 *lpMaterial, IUnknown *p0)
|
||||||
|
{
|
||||||
|
HRESULT res;
|
||||||
|
|
||||||
|
OutTraceD3D("CreateMaterial(2): d3d=%x\n", lpd3d);
|
||||||
|
res=(*pCreateMaterial2)(lpd3d, lpMaterial, p0);
|
||||||
|
if(res) OutTraceE("CreateMaterial ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
|
else OutTraceD3D("CreateMaterial: OK\n");
|
||||||
|
//HookMaterial(lpMaterial, GD3DDeviceVersion);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT WINAPI extCreateMaterial3(void *lpd3d, LPDIRECT3DMATERIAL3 *lpMaterial, IUnknown *p0)
|
||||||
|
{
|
||||||
|
HRESULT res;
|
||||||
|
|
||||||
|
OutTraceD3D("CreateMaterial(1): d3d=%x\n", lpd3d);
|
||||||
|
res=(*pCreateMaterial3)(lpd3d, lpMaterial, p0);
|
||||||
|
if(res) OutTraceE("CreateMaterial ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
|
else OutTraceD3D("CreateMaterial: OK\n");
|
||||||
|
//HookMaterial(lpMaterial, GD3DDeviceVersion);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
HRESULT WINAPI extCreateViewport1(void *lpd3d, LPDIRECT3DVIEWPORT *lpViewport, IUnknown *p0)
|
HRESULT WINAPI extCreateViewport1(void *lpd3d, LPDIRECT3DVIEWPORT *lpViewport, IUnknown *p0)
|
||||||
{
|
{
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
@ -1412,6 +1474,7 @@ HRESULT WINAPI extSetTexture7(void *d3dd, DWORD flags, LPDIRECTDRAWSURFACE7 lpte
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TRACEMATERIAL
|
||||||
HRESULT WINAPI extSetMaterial(void *d3dd, LPD3DMATERIAL lpMaterial)
|
HRESULT WINAPI extSetMaterial(void *d3dd, LPD3DMATERIAL lpMaterial)
|
||||||
{
|
{
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
@ -1450,6 +1513,7 @@ HRESULT WINAPI extGetMaterial(void *d3dd, LPD3DMATERIAL lpMaterial)
|
|||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
HRESULT WINAPI extSwapTextureHandles(void *d3dd, LPDIRECT3DTEXTURE t1, LPDIRECT3DTEXTURE t2)
|
HRESULT WINAPI extSwapTextureHandles(void *d3dd, LPDIRECT3DTEXTURE t1, LPDIRECT3DTEXTURE t2)
|
||||||
{
|
{
|
||||||
|
Binary file not shown.
@ -2166,7 +2166,10 @@ void CDxwndhostView::OnRun()
|
|||||||
if(i<0) i=0;
|
if(i<0) i=0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(!listctrl.GetSelectedCount()) return;
|
if(!listctrl.GetSelectedCount()) {
|
||||||
|
IsLocked = FALSE;
|
||||||
|
return;
|
||||||
|
}
|
||||||
pos = listctrl.GetFirstSelectedItemPosition();
|
pos = listctrl.GetFirstSelectedItemPosition();
|
||||||
i = listctrl.GetNextSelectedItem(pos);
|
i = listctrl.GetNextSelectedItem(pos);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user