mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_03_15_src
Former-commit-id: c0871612c8d7009c746fbea9ca91e67a1457a7f1
This commit is contained in:
parent
41a3507207
commit
8f000f5b5e
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:864a3a7f784d58281c340c7d1ac1302d110b6d98167c3c4f8a42624e9341b65a
|
||||
size 571904
|
||||
oid sha256:e6237930755cc2d17f723f7d6948732a5e75da7fd5dc9b2a8f0f6572774d38f7
|
||||
size 574464
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:07f3136aad64bf4ff6b095c147274f42b9b14063a3760ebb2ab99550717af873
|
||||
oid sha256:6434855ecb64769aed7706cd7fef0bcab197a29b76710278cfe164933632ffaf
|
||||
size 538624
|
||||
|
@ -1,2 +0,0 @@
|
||||
[window]
|
||||
exportpath=D:\DxWnd\exports\
|
4947
build/dxwnd.log
4947
build/dxwnd.log
File diff suppressed because it is too large
Load Diff
@ -9,7 +9,7 @@ coord0=0
|
||||
flag0=134218272
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=134217732
|
||||
flagi0=138412036
|
||||
tflag0=0
|
||||
initx0=0
|
||||
inity0=0
|
||||
@ -25,3 +25,5 @@ maxfps0=0
|
||||
initts0=0
|
||||
winver0=0
|
||||
maxres0=-1
|
||||
notes0=
|
||||
flagj0=128
|
||||
|
29
build/exports/Nascar Pinball.dxw
Normal file
29
build/exports/Nascar Pinball.dxw
Normal file
@ -0,0 +1,29 @@
|
||||
[target]
|
||||
title0=Nascar Pinball
|
||||
path0=D:\Games\NASCAR Pinball\Pinball.exe
|
||||
launchpath0=
|
||||
module0=
|
||||
opengllib0=
|
||||
notes0=Some glitches while moving cursor close to borders
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=138412036
|
||||
flagj0=4224
|
||||
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
|
29
build/exports/Nuclear Strike (3dfx).dxw
Normal file
29
build/exports/Nuclear Strike (3dfx).dxw
Normal file
@ -0,0 +1,29 @@
|
||||
[target]
|
||||
title0=Nuclear Strike (3dfx)
|
||||
path0=D:\Games\nuclear_strike\NUKEPC.EXE
|
||||
launchpath0=
|
||||
module0=
|
||||
opengllib0=
|
||||
notes0=Use glide wrapper on D3D9
|
||||
ver0=9
|
||||
coord0=0
|
||||
flag0=134217762
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=138412036
|
||||
flagj0=4224
|
||||
tflag0=1073741824
|
||||
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
|
29
build/exports/Silent Hunter III.dxw
Normal file
29
build/exports/Silent Hunter III.dxw
Normal file
@ -0,0 +1,29 @@
|
||||
[target]
|
||||
title0=Silent Hunter III
|
||||
path0=D:\Games\Ubisoft\SilentHunterIII\SH3.EXE
|
||||
launchpath0=
|
||||
module0=
|
||||
opengllib0=
|
||||
notes0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=679493666
|
||||
flagg0=1757413392
|
||||
flagh0=33554452
|
||||
flagi0=673185796
|
||||
flagj0=4224
|
||||
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=3
|
||||
maxres0=3
|
29
build/exports/Zero Critical.dxw
Normal file
29
build/exports/Zero Critical.dxw
Normal file
@ -0,0 +1,29 @@
|
||||
[target]
|
||||
title0=Zero Critical
|
||||
path0=D:\Games\zero_critical_-_satin_rift\ZEROCR.EXE
|
||||
launchpath0=
|
||||
module0=
|
||||
opengllib0=
|
||||
notes0=
|
||||
ver0=0
|
||||
coord0=0
|
||||
flag0=671088674
|
||||
flagg0=1207959552
|
||||
flagh0=20
|
||||
flagi0=138412036
|
||||
flagj0=4224
|
||||
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
|
@ -763,4 +763,11 @@ fix: several log improvements
|
||||
v2.03.14
|
||||
add: window commands Minimize, Restore & Close
|
||||
add: made palette behaviour configurable (until better understood...)
|
||||
add: "updatepaths" tag in dxwnd.ini
|
||||
add: "updatepaths" tag in dxwnd.ini
|
||||
|
||||
v2.03.15
|
||||
fix: keep aspect ratio calculations
|
||||
fix: d3d Present method, to properly scale to window size (fixes "Silent Hunter III" rendering)
|
||||
fix: GetMonitorInfo hooker: in windowed mode the call may fail, a virtual size and ok retcode should be returned
|
||||
fix: Blt method recovering errors when D3D CreateAdditionalSwapChain method fails: allow to see the intro movies of "Silent Hunter III".
|
||||
fix: added some missing D3D errorcode labels in log file
|
||||
|
@ -253,16 +253,19 @@ static HRESULT sBltToPrimary(char *api, LPDIRECTDRAWSURFACE lpdds, LPRECT lpdest
|
||||
it seems that you can't blit from compressed or different surfaces in memory,
|
||||
while the operation COULD be supported to video. As a mater of fact, it DOES
|
||||
work on my PC. The error code is DDERR_UNSUPPORTED.
|
||||
v2.02.98 update....
|
||||
The same thing happens with New York Racer, but with DDERR_EXCEPTION error code.
|
||||
v2.02.98: The same thing happens with "New York Racer", but with DDERR_EXCEPTION error code.
|
||||
V2.03.15: The same thing happens with "Silent Hunter III", but with DDERR_INVALIDRECT error code.
|
||||
*/
|
||||
if((res==DDERR_UNSUPPORTED) || (res==DDERR_EXCEPTION)){
|
||||
if((res==DDERR_UNSUPPORTED) || (res==DDERR_EXCEPTION) || (res==DDERR_INVALIDRECT)){
|
||||
RECT targetrect;
|
||||
dxw.ShowOverlay(lpddssrc);
|
||||
if (IsDebug) BlitTrace("UNSUPP", &emurect, &destrect, __LINE__);
|
||||
res=(*pBlt)(lpDDSEmu_Prim, &destrect, lpddssrc, lpsrcrect, dwflags, lpddbltfx);
|
||||
targetrect=destrect;
|
||||
dxw.MapWindowRect(&targetrect); // v2.03.15
|
||||
res=(*pBlt)(lpDDSEmu_Prim, &targetrect, lpddssrc, lpsrcrect, dwflags, lpddbltfx);
|
||||
if (res) BlitError(res, lpsrcrect, &destrect, __LINE__);
|
||||
}
|
||||
|
||||
|
||||
// Try to handle HDC lock concurrency....
|
||||
if(res==DDERR_SURFACEBUSY){
|
||||
res=(*pUnlockMethod(lpddssrc))(lpddssrc, NULL);
|
||||
|
303
dll/dxhelper.cpp
303
dll/dxhelper.cpp
@ -659,127 +659,6 @@ char *ExplainFlipStatus(DWORD c)
|
||||
return(eb);
|
||||
}
|
||||
|
||||
char *ExplainDDError(DWORD c)
|
||||
{
|
||||
static char *eb;
|
||||
switch(c)
|
||||
{
|
||||
case DD_OK: eb="DD_OK"; break;
|
||||
case DDERR_ALREADYINITIALIZED: eb="DDERR_ALREADYINITIALIZED"; break;
|
||||
case DDERR_BLTFASTCANTCLIP: eb="DDERR_BLTFASTCANTCLIP"; break;
|
||||
case DDERR_CANNOTATTACHSURFACE: eb="DDERR_CANNOTATTACHSURFACE"; break;
|
||||
case DDERR_CANNOTDETACHSURFACE: eb="DDERR_CANNOTDETACHSURFACE"; break;
|
||||
case DDERR_CANTCREATEDC: eb="DDERR_CANTCREATEDC"; break;
|
||||
case DDERR_CANTDUPLICATE: eb="DDERR_CANTDUPLICATE"; break;
|
||||
case DDERR_CANTLOCKSURFACE: eb="DDERR_CANTLOCKSURFACE"; break;
|
||||
case DDERR_CANTPAGELOCK: eb="DDERR_CANTPAGELOCK"; break;
|
||||
case DDERR_CANTPAGEUNLOCK: eb="DDERR_CANTPAGEUNLOCK"; break;
|
||||
case DDERR_CLIPPERISUSINGHWND: eb="DDERR_CLIPPERISUSINGHWND"; break;
|
||||
case DDERR_COLORKEYNOTSET: eb="DDERR_COLORKEYNOTSET"; break;
|
||||
case DDERR_CURRENTLYNOTAVAIL: eb="DDERR_CURRENTLYNOTAVAIL"; break;
|
||||
case DDERR_DCALREADYCREATED: eb="DDERR_DCALREADYCREATED"; break;
|
||||
case DDERR_DEVICEDOESNTOWNSURFACE: eb="DDERR_DEVICEDOESNTOWNSURFACE"; break;
|
||||
case DDERR_DIRECTDRAWALREADYCREATED: eb="DDERR_DIRECTDRAWALREADYCREATED"; break;
|
||||
case DDERR_EXCEPTION: eb="DDERR_EXCEPTION"; break;
|
||||
case DDERR_EXCLUSIVEMODEALREADYSET: eb="DDERR_EXCLUSIVEMODEALREADYSET"; break;
|
||||
case DDERR_EXPIRED: eb="DDERR_EXPIRED"; break;
|
||||
case DDERR_GENERIC: eb="DDERR_GENERIC"; break;
|
||||
case DDERR_HEIGHTALIGN: eb="DDERR_HEIGHTALIGN"; break;
|
||||
case DDERR_HWNDALREADYSET: eb="DDERR_HWNDALREADYSET"; break;
|
||||
case DDERR_HWNDSUBCLASSED: eb="DDERR_HWNDSUBCLASSED"; break;
|
||||
case DDERR_IMPLICITLYCREATED: eb="DDERR_IMPLICITLYCREATED"; break;
|
||||
case DDERR_INCOMPATIBLEPRIMARY: eb="DDERR_INCOMPATIBLEPRIMARY"; break;
|
||||
case DDERR_INVALIDCAPS: eb="DDERR_INVALIDCAPS"; break;
|
||||
case DDERR_INVALIDCLIPLIST: eb="DDERR_INVALIDCLIPLIST"; break;
|
||||
case DDERR_INVALIDDIRECTDRAWGUID: eb="DDERR_INVALIDDIRECTDRAWGUID"; break;
|
||||
case DDERR_INVALIDMODE: eb="DDERR_INVALIDMODE"; break;
|
||||
case DDERR_INVALIDOBJECT: eb="DDERR_INVALIDOBJECT"; break;
|
||||
case DDERR_INVALIDPARAMS: eb="DDERR_INVALIDPARAMS"; break;
|
||||
case DDERR_INVALIDPIXELFORMAT: eb="DDERR_INVALIDPIXELFORMAT"; break;
|
||||
case DDERR_INVALIDPOSITION: eb="DDERR_INVALIDPOSITION"; break;
|
||||
case DDERR_INVALIDRECT: eb="DDERR_INVALIDRECT"; break;
|
||||
case DDERR_INVALIDSTREAM: eb="DDERR_INVALIDSTREAM"; break;
|
||||
case DDERR_INVALIDSURFACETYPE: eb="DDERR_INVALIDSURFACETYPE"; break;
|
||||
case DDERR_LOCKEDSURFACES: eb="DDERR_LOCKEDSURFACES"; break;
|
||||
case DDERR_MOREDATA: eb="DDERR_MOREDATA"; break;
|
||||
case DDERR_NO3D: eb="DDERR_NO3D"; break;
|
||||
case DDERR_NOALPHAHW: eb="DDERR_NOALPHAHW"; break;
|
||||
case DDERR_NOBLTHW: eb="DDERR_NOBLTHW"; break;
|
||||
case DDERR_NOCLIPLIST: eb="DDERR_NOCLIPLIST"; break;
|
||||
case DDERR_NOCLIPPERATTACHED: eb="DDERR_NOCLIPPERATTACHED"; break;
|
||||
case DDERR_NOCOLORCONVHW: eb="DDERR_NOCOLORCONVHW"; break;
|
||||
case DDERR_NOCOLORKEY: eb="DDERR_NOCOLORKEY"; break;
|
||||
case DDERR_NOCOLORKEYHW: eb="DDERR_NOCOLORKEYHW"; break;
|
||||
case DDERR_NOCOOPERATIVELEVELSET: eb="DDERR_NOCOOPERATIVELEVELSET"; break;
|
||||
case DDERR_NODC: eb="DDERR_NODC"; break;
|
||||
case DDERR_NODDROPSHW: eb="DDERR_NODDROPSHW"; break;
|
||||
case DDERR_NODIRECTDRAWHW: eb="DDERR_NODIRECTDRAWHW"; break;
|
||||
case DDERR_NODIRECTDRAWSUPPORT: eb="DDERR_NODIRECTDRAWSUPPORT"; break;
|
||||
case DDERR_NOEMULATION: eb="DDERR_NOEMULATION"; break;
|
||||
case DDERR_NOEXCLUSIVEMODE: eb="DDERR_NOEXCLUSIVEMODE"; break;
|
||||
case DDERR_NOFLIPHW: eb="DDERR_NOFLIPHW"; break;
|
||||
case DDERR_NOFOCUSWINDOW: eb="DDERR_NOFOCUSWINDOW"; break;
|
||||
case DDERR_NOGDI: eb="DDERR_NOGDI"; break;
|
||||
case DDERR_NOHWND: eb="DDERR_NOHWND"; break;
|
||||
case DDERR_NOMIPMAPHW: eb="DDERR_NOMIPMAPHW"; break;
|
||||
case DDERR_NOMIRRORHW: eb="DDERR_NOMIRRORHW"; break;
|
||||
case DDERR_NONONLOCALVIDMEM: eb="DDERR_NONONLOCALVIDMEM"; break;
|
||||
case DDERR_NOOPTIMIZEHW: eb="DDERR_NOOPTIMIZEHW"; break;
|
||||
case DDERR_NOOVERLAYDEST: eb="DDERR_NOOVERLAYDEST"; break;
|
||||
case DDERR_NOOVERLAYHW: eb="DDERR_NOOVERLAYHW"; break;
|
||||
case DDERR_NOPALETTEATTACHED: eb="DDERR_NOPALETTEATTACHED"; break;
|
||||
case DDERR_NOPALETTEHW: eb="DDERR_NOPALETTEHW"; break;
|
||||
case DDERR_NORASTEROPHW: eb="DDERR_NORASTEROPHW"; break;
|
||||
case DDERR_NOROTATIONHW: eb="DDERR_NOROTATIONHW"; break;
|
||||
case DDERR_NOSTRETCHHW: eb="DDERR_NOSTRETCHHW"; break;
|
||||
case DDERR_NOT4BITCOLOR: eb="DDERR_NOT4BITCOLOR"; break;
|
||||
case DDERR_NOT4BITCOLORINDEX: eb="DDERR_NOT4BITCOLORINDEX"; break;
|
||||
case DDERR_NOT8BITCOLOR: eb="DDERR_NOT8BITCOLOR"; break;
|
||||
case DDERR_NOTAOVERLAYSURFACE: eb="DDERR_NOTAOVERLAYSURFACE"; break;
|
||||
case DDERR_NOTEXTUREHW: eb="DDERR_NOTEXTUREHW"; break;
|
||||
case DDERR_NOTFLIPPABLE: eb="DDERR_NOTFLIPPABLE"; break;
|
||||
case DDERR_NOTFOUND: eb="DDERR_NOTFOUND"; break;
|
||||
case DDERR_NOTINITIALIZED: eb="DDERR_NOTINITIALIZED"; break;
|
||||
case DDERR_NOTLOADED: eb="DDERR_NOTLOADED"; break;
|
||||
case DDERR_NOTLOCKED: eb="DDERR_NOTLOCKED"; break;
|
||||
case DDERR_NOTPAGELOCKED: eb="DDERR_NOTPAGELOCKED"; break;
|
||||
case DDERR_NOTPALETTIZED: eb="DDERR_NOTPALETTIZED"; break;
|
||||
case DDERR_NOVSYNCHW: eb="DDERR_NOVSYNCHW"; break;
|
||||
case DDERR_NOZBUFFERHW: eb="DDERR_NOZBUFFERHW"; break;
|
||||
case DDERR_NOZOVERLAYHW: eb="DDERR_NOZOVERLAYHW"; break;
|
||||
case DDERR_OUTOFCAPS: eb="DDERR_OUTOFCAPS"; break;
|
||||
case DDERR_OUTOFMEMORY: eb="DDERR_OUTOFMEMORY"; break;
|
||||
case DDERR_OUTOFVIDEOMEMORY: eb="DDERR_OUTOFVIDEOMEMORY"; break;
|
||||
case DDERR_OVERLAPPINGRECTS: eb="DDERR_OVERLAPPINGRECTS"; break;
|
||||
case DDERR_OVERLAYCANTCLIP: eb="DDERR_OVERLAYCANTCLIP"; break;
|
||||
case DDERR_OVERLAYCOLORKEYONLYONEACTIVE:eb="DDERR_OVERLAYCOLORKEYONLYONEACTIVE"; break;
|
||||
case DDERR_OVERLAYNOTVISIBLE: eb="DDERR_OVERLAYNOTVISIBLE"; break;
|
||||
case DDERR_PALETTEBUSY: eb="DDERR_PALETTEBUSY"; break;
|
||||
case DDERR_PRIMARYSURFACEALREADYEXISTS: eb="DDERR_PRIMARYSURFACEALREADYEXISTS"; break;
|
||||
case DDERR_REGIONTOOSMALL: eb="DDERR_REGIONTOOSMALL"; break;
|
||||
case DDERR_SURFACEALREADYATTACHED: eb="DDERR_SURFACEALREADYATTACHED"; break;
|
||||
case DDERR_SURFACEALREADYDEPENDENT: eb="DDERR_SURFACEALREADYDEPENDENT"; break;
|
||||
case DDERR_SURFACEBUSY: eb="DDERR_SURFACEBUSY"; break;
|
||||
case DDERR_SURFACEISOBSCURED: eb="DDERR_SURFACEISOBSCURED"; break;
|
||||
case DDERR_SURFACELOST: eb="DDERR_SURFACELOST"; break;
|
||||
case DDERR_SURFACENOTATTACHED: eb="DDERR_SURFACENOTATTACHED"; break;
|
||||
case DDERR_TOOBIGHEIGHT: eb="DDERR_TOOBIGHEIGHT"; break;
|
||||
case DDERR_TOOBIGSIZE: eb="DDERR_TOOBIGSIZE"; break;
|
||||
case DDERR_TOOBIGWIDTH: eb="DDERR_TOOBIGWIDTH"; break;
|
||||
case DDERR_UNSUPPORTED: eb="DDERR_UNSUPPORTED"; break;
|
||||
case DDERR_UNSUPPORTEDFORMAT: eb="DDERR_UNSUPPORTEDFORMAT"; break;
|
||||
case DDERR_UNSUPPORTEDMASK: eb="DDERR_UNSUPPORTEDMASK"; break;
|
||||
case DDERR_UNSUPPORTEDMODE: eb="DDERR_UNSUPPORTEDMODE"; break;
|
||||
case DDERR_VERTICALBLANKINPROGRESS: eb="DDERR_VERTICALBLANKINPROGRESS"; break;
|
||||
case DDERR_VIDEONOTACTIVE: eb="DDERR_VIDEONOTACTIVE"; break;
|
||||
case DDERR_WASSTILLDRAWING: eb="DDERR_WASSTILLDRAWING"; break;
|
||||
case DDERR_WRONGMODE: eb="DDERR_WRONGMODE"; break;
|
||||
case DDERR_XALIGN: eb="DDERR_XALIGN"; break;
|
||||
default: eb="unknown"; break;
|
||||
}
|
||||
return eb;
|
||||
}
|
||||
|
||||
char *ExplainWinMessage(DWORD c)
|
||||
{
|
||||
static char *eb;
|
||||
@ -1741,3 +1620,185 @@ char *ExplainRegionType(DWORD c)
|
||||
if(c<4) return sRetCodes[c];
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
#define _FACD3D 0x876
|
||||
#define MAKE_D3DHRESULT( code ) MAKE_HRESULT( 1, _FACD3D, code )
|
||||
#define MAKE_D3DSTATUS( code ) MAKE_HRESULT( 0, _FACD3D, code )
|
||||
|
||||
#define D3DERR_DRIVERINTERNALERROR MAKE_D3DHRESULT(2087)
|
||||
#define D3DERR_NOTFOUND MAKE_D3DHRESULT(2150)
|
||||
#define D3DERR_MOREDATA MAKE_D3DHRESULT(2151)
|
||||
#define D3DERR_DEVICELOST MAKE_D3DHRESULT(2152)
|
||||
#define D3DERR_DEVICENOTRESET MAKE_D3DHRESULT(2153)
|
||||
#define D3DERR_NOTAVAILABLE MAKE_D3DHRESULT(2154)
|
||||
#define D3DERR_OUTOFVIDEOMEMORY MAKE_D3DHRESULT(380)
|
||||
#define D3DERR_INVALIDDEVICE MAKE_D3DHRESULT(2155)
|
||||
#define D3DERR_INVALIDCALL MAKE_D3DHRESULT(2156)
|
||||
#define D3DERR_DRIVERINVALIDCALL MAKE_D3DHRESULT(2157)
|
||||
#define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT(540)
|
||||
#define D3DOK_NOAUTOGEN MAKE_D3DSTATUS(2159)
|
||||
|
||||
#define D3DERR_DEVICEREMOVED MAKE_D3DHRESULT(2160)
|
||||
#define S_NOT_RESIDENT MAKE_D3DSTATUS(2165)
|
||||
#define S_RESIDENT_IN_SHARED_MEMORY MAKE_D3DSTATUS(2166)
|
||||
#define S_PRESENT_MODE_CHANGED MAKE_D3DSTATUS(2167)
|
||||
#define S_PRESENT_OCCLUDED MAKE_D3DSTATUS(2168)
|
||||
#define D3DERR_DEVICEHUNG MAKE_D3DHRESULT(2164)
|
||||
#define D3DERR_UNSUPPORTEDOVERLAY MAKE_D3DHRESULT(2171)
|
||||
#define D3DERR_UNSUPPORTEDOVERLAYFORMAT MAKE_D3DHRESULT(2172)
|
||||
#define D3DERR_CANNOTPROTECTCONTENT MAKE_D3DHRESULT(2173)
|
||||
#define D3DERR_UNSUPPORTEDCRYPTO MAKE_D3DHRESULT(2174)
|
||||
#define D3DERR_PRESENT_STATISTICS_DISJOINT MAKE_D3DHRESULT(2180)
|
||||
|
||||
char *ExplainDDError(DWORD c)
|
||||
{
|
||||
static char *eb;
|
||||
switch(c)
|
||||
{
|
||||
case DD_OK: eb="DD_OK"; break;
|
||||
case DDERR_ALREADYINITIALIZED: eb="DDERR_ALREADYINITIALIZED"; break;
|
||||
case DDERR_BLTFASTCANTCLIP: eb="DDERR_BLTFASTCANTCLIP"; break;
|
||||
case DDERR_CANNOTATTACHSURFACE: eb="DDERR_CANNOTATTACHSURFACE"; break;
|
||||
case DDERR_CANNOTDETACHSURFACE: eb="DDERR_CANNOTDETACHSURFACE"; break;
|
||||
case DDERR_CANTCREATEDC: eb="DDERR_CANTCREATEDC"; break;
|
||||
case DDERR_CANTDUPLICATE: eb="DDERR_CANTDUPLICATE"; break;
|
||||
case DDERR_CANTLOCKSURFACE: eb="DDERR_CANTLOCKSURFACE"; break;
|
||||
case DDERR_CANTPAGELOCK: eb="DDERR_CANTPAGELOCK"; break;
|
||||
case DDERR_CANTPAGEUNLOCK: eb="DDERR_CANTPAGEUNLOCK"; break;
|
||||
case DDERR_CLIPPERISUSINGHWND: eb="DDERR_CLIPPERISUSINGHWND"; break;
|
||||
case DDERR_COLORKEYNOTSET: eb="DDERR_COLORKEYNOTSET"; break;
|
||||
case DDERR_CURRENTLYNOTAVAIL: eb="DDERR_CURRENTLYNOTAVAIL"; break;
|
||||
case DDERR_DCALREADYCREATED: eb="DDERR_DCALREADYCREATED"; break;
|
||||
case DDERR_DEVICEDOESNTOWNSURFACE: eb="DDERR_DEVICEDOESNTOWNSURFACE"; break;
|
||||
case DDERR_DIRECTDRAWALREADYCREATED: eb="DDERR_DIRECTDRAWALREADYCREATED"; break;
|
||||
case DDERR_EXCEPTION: eb="DDERR_EXCEPTION"; break;
|
||||
case DDERR_EXCLUSIVEMODEALREADYSET: eb="DDERR_EXCLUSIVEMODEALREADYSET"; break;
|
||||
case DDERR_EXPIRED: eb="DDERR_EXPIRED"; break;
|
||||
case DDERR_GENERIC: eb="DDERR_GENERIC"; break;
|
||||
case DDERR_HEIGHTALIGN: eb="DDERR_HEIGHTALIGN"; break;
|
||||
case DDERR_HWNDALREADYSET: eb="DDERR_HWNDALREADYSET"; break;
|
||||
case DDERR_HWNDSUBCLASSED: eb="DDERR_HWNDSUBCLASSED"; break;
|
||||
case DDERR_IMPLICITLYCREATED: eb="DDERR_IMPLICITLYCREATED"; break;
|
||||
case DDERR_INCOMPATIBLEPRIMARY: eb="DDERR_INCOMPATIBLEPRIMARY"; break;
|
||||
case DDERR_INVALIDCAPS: eb="DDERR_INVALIDCAPS"; break;
|
||||
case DDERR_INVALIDCLIPLIST: eb="DDERR_INVALIDCLIPLIST"; break;
|
||||
case DDERR_INVALIDDIRECTDRAWGUID: eb="DDERR_INVALIDDIRECTDRAWGUID"; break;
|
||||
case DDERR_INVALIDMODE: eb="DDERR_INVALIDMODE"; break;
|
||||
case DDERR_INVALIDOBJECT: eb="DDERR_INVALIDOBJECT"; break;
|
||||
case DDERR_INVALIDPARAMS: eb="DDERR_INVALIDPARAMS"; break;
|
||||
case DDERR_INVALIDPIXELFORMAT: eb="DDERR_INVALIDPIXELFORMAT"; break;
|
||||
case DDERR_INVALIDPOSITION: eb="DDERR_INVALIDPOSITION"; break;
|
||||
case DDERR_INVALIDRECT: eb="DDERR_INVALIDRECT"; break;
|
||||
case DDERR_INVALIDSTREAM: eb="DDERR_INVALIDSTREAM"; break;
|
||||
case DDERR_INVALIDSURFACETYPE: eb="DDERR_INVALIDSURFACETYPE"; break;
|
||||
case DDERR_LOCKEDSURFACES: eb="DDERR_LOCKEDSURFACES"; break;
|
||||
case DDERR_MOREDATA: eb="DDERR_MOREDATA"; break;
|
||||
case DDERR_NO3D: eb="DDERR_NO3D"; break;
|
||||
case DDERR_NOALPHAHW: eb="DDERR_NOALPHAHW"; break;
|
||||
case DDERR_NOBLTHW: eb="DDERR_NOBLTHW"; break;
|
||||
case DDERR_NOCLIPLIST: eb="DDERR_NOCLIPLIST"; break;
|
||||
case DDERR_NOCLIPPERATTACHED: eb="DDERR_NOCLIPPERATTACHED"; break;
|
||||
case DDERR_NOCOLORCONVHW: eb="DDERR_NOCOLORCONVHW"; break;
|
||||
case DDERR_NOCOLORKEY: eb="DDERR_NOCOLORKEY"; break;
|
||||
case DDERR_NOCOLORKEYHW: eb="DDERR_NOCOLORKEYHW"; break;
|
||||
case DDERR_NOCOOPERATIVELEVELSET: eb="DDERR_NOCOOPERATIVELEVELSET"; break;
|
||||
case DDERR_NODC: eb="DDERR_NODC"; break;
|
||||
case DDERR_NODDROPSHW: eb="DDERR_NODDROPSHW"; break;
|
||||
case DDERR_NODIRECTDRAWHW: eb="DDERR_NODIRECTDRAWHW"; break;
|
||||
case DDERR_NODIRECTDRAWSUPPORT: eb="DDERR_NODIRECTDRAWSUPPORT"; break;
|
||||
case DDERR_NOEMULATION: eb="DDERR_NOEMULATION"; break;
|
||||
case DDERR_NOEXCLUSIVEMODE: eb="DDERR_NOEXCLUSIVEMODE"; break;
|
||||
case DDERR_NOFLIPHW: eb="DDERR_NOFLIPHW"; break;
|
||||
case DDERR_NOFOCUSWINDOW: eb="DDERR_NOFOCUSWINDOW"; break;
|
||||
case DDERR_NOGDI: eb="DDERR_NOGDI"; break;
|
||||
case DDERR_NOHWND: eb="DDERR_NOHWND"; break;
|
||||
case DDERR_NOMIPMAPHW: eb="DDERR_NOMIPMAPHW"; break;
|
||||
case DDERR_NOMIRRORHW: eb="DDERR_NOMIRRORHW"; break;
|
||||
case DDERR_NONONLOCALVIDMEM: eb="DDERR_NONONLOCALVIDMEM"; break;
|
||||
case DDERR_NOOPTIMIZEHW: eb="DDERR_NOOPTIMIZEHW"; break;
|
||||
case DDERR_NOOVERLAYDEST: eb="DDERR_NOOVERLAYDEST"; break;
|
||||
case DDERR_NOOVERLAYHW: eb="DDERR_NOOVERLAYHW"; break;
|
||||
case DDERR_NOPALETTEATTACHED: eb="DDERR_NOPALETTEATTACHED"; break;
|
||||
case DDERR_NOPALETTEHW: eb="DDERR_NOPALETTEHW"; break;
|
||||
case DDERR_NORASTEROPHW: eb="DDERR_NORASTEROPHW"; break;
|
||||
case DDERR_NOROTATIONHW: eb="DDERR_NOROTATIONHW"; break;
|
||||
case DDERR_NOSTRETCHHW: eb="DDERR_NOSTRETCHHW"; break;
|
||||
case DDERR_NOT4BITCOLOR: eb="DDERR_NOT4BITCOLOR"; break;
|
||||
case DDERR_NOT4BITCOLORINDEX: eb="DDERR_NOT4BITCOLORINDEX"; break;
|
||||
case DDERR_NOT8BITCOLOR: eb="DDERR_NOT8BITCOLOR"; break;
|
||||
case DDERR_NOTAOVERLAYSURFACE: eb="DDERR_NOTAOVERLAYSURFACE"; break;
|
||||
case DDERR_NOTEXTUREHW: eb="DDERR_NOTEXTUREHW"; break;
|
||||
case DDERR_NOTFLIPPABLE: eb="DDERR_NOTFLIPPABLE"; break;
|
||||
case DDERR_NOTFOUND: eb="DDERR_NOTFOUND"; break;
|
||||
case DDERR_NOTINITIALIZED: eb="DDERR_NOTINITIALIZED"; break;
|
||||
case DDERR_NOTLOADED: eb="DDERR_NOTLOADED"; break;
|
||||
case DDERR_NOTLOCKED: eb="DDERR_NOTLOCKED"; break;
|
||||
case DDERR_NOTPAGELOCKED: eb="DDERR_NOTPAGELOCKED"; break;
|
||||
case DDERR_NOTPALETTIZED: eb="DDERR_NOTPALETTIZED"; break;
|
||||
case DDERR_NOVSYNCHW: eb="DDERR_NOVSYNCHW"; break;
|
||||
case DDERR_NOZBUFFERHW: eb="DDERR_NOZBUFFERHW"; break;
|
||||
case DDERR_NOZOVERLAYHW: eb="DDERR_NOZOVERLAYHW"; break;
|
||||
case DDERR_OUTOFCAPS: eb="DDERR_OUTOFCAPS"; break;
|
||||
case DDERR_OUTOFMEMORY: eb="DDERR_OUTOFMEMORY"; break;
|
||||
case DDERR_OUTOFVIDEOMEMORY: eb="DDERR_OUTOFVIDEOMEMORY"; break;
|
||||
case DDERR_OVERLAPPINGRECTS: eb="DDERR_OVERLAPPINGRECTS"; break;
|
||||
case DDERR_OVERLAYCANTCLIP: eb="DDERR_OVERLAYCANTCLIP"; break;
|
||||
case DDERR_OVERLAYCOLORKEYONLYONEACTIVE:eb="DDERR_OVERLAYCOLORKEYONLYONEACTIVE"; break;
|
||||
case DDERR_OVERLAYNOTVISIBLE: eb="DDERR_OVERLAYNOTVISIBLE"; break;
|
||||
case DDERR_PALETTEBUSY: eb="DDERR_PALETTEBUSY"; break;
|
||||
case DDERR_PRIMARYSURFACEALREADYEXISTS: eb="DDERR_PRIMARYSURFACEALREADYEXISTS"; break;
|
||||
case DDERR_REGIONTOOSMALL: eb="DDERR_REGIONTOOSMALL"; break;
|
||||
case DDERR_SURFACEALREADYATTACHED: eb="DDERR_SURFACEALREADYATTACHED"; break;
|
||||
case DDERR_SURFACEALREADYDEPENDENT: eb="DDERR_SURFACEALREADYDEPENDENT"; break;
|
||||
case DDERR_SURFACEBUSY: eb="DDERR_SURFACEBUSY"; break;
|
||||
case DDERR_SURFACEISOBSCURED: eb="DDERR_SURFACEISOBSCURED"; break;
|
||||
case DDERR_SURFACELOST: eb="DDERR_SURFACELOST"; break;
|
||||
case DDERR_SURFACENOTATTACHED: eb="DDERR_SURFACENOTATTACHED"; break;
|
||||
case DDERR_TOOBIGHEIGHT: eb="DDERR_TOOBIGHEIGHT"; break;
|
||||
case DDERR_TOOBIGSIZE: eb="DDERR_TOOBIGSIZE"; break;
|
||||
case DDERR_TOOBIGWIDTH: eb="DDERR_TOOBIGWIDTH"; break;
|
||||
case DDERR_UNSUPPORTED: eb="DDERR_UNSUPPORTED"; break;
|
||||
case DDERR_UNSUPPORTEDFORMAT: eb="DDERR_UNSUPPORTEDFORMAT"; break;
|
||||
case DDERR_UNSUPPORTEDMASK: eb="DDERR_UNSUPPORTEDMASK"; break;
|
||||
case DDERR_UNSUPPORTEDMODE: eb="DDERR_UNSUPPORTEDMODE"; break;
|
||||
case DDERR_VERTICALBLANKINPROGRESS: eb="DDERR_VERTICALBLANKINPROGRESS"; break;
|
||||
case DDERR_VIDEONOTACTIVE: eb="DDERR_VIDEONOTACTIVE"; break;
|
||||
case DDERR_WASSTILLDRAWING: eb="DDERR_WASSTILLDRAWING"; break;
|
||||
case DDERR_WRONGMODE: eb="DDERR_WRONGMODE"; break;
|
||||
case DDERR_XALIGN: eb="DDERR_XALIGN"; break;
|
||||
// D3D errors
|
||||
case D3DERR_WRONGTEXTUREFORMAT: eb="D3DERR_WRONGTEXTUREFORMAT"; break;
|
||||
case D3DERR_UNSUPPORTEDCOLOROPERATION: eb="D3DERR_UNSUPPORTEDCOLOROPERATION"; break;
|
||||
case D3DERR_UNSUPPORTEDCOLORARG: eb="D3DERR_UNSUPPORTEDCOLORARG"; break;
|
||||
case D3DERR_UNSUPPORTEDALPHAOPERATION: eb="D3DERR_UNSUPPORTEDALPHAOPERATION"; break;
|
||||
case D3DERR_UNSUPPORTEDALPHAARG: eb="D3DERR_UNSUPPORTEDALPHAARG"; break;
|
||||
case D3DERR_TOOMANYOPERATIONS: eb="D3DERR_TOOMANYOPERATIONS"; break;
|
||||
case D3DERR_CONFLICTINGTEXTUREFILTER: eb="D3DERR_CONFLICTINGTEXTUREFILTER"; break;
|
||||
case D3DERR_UNSUPPORTEDFACTORVALUE: eb="D3DERR_UNSUPPORTEDFACTORVALUE"; break;
|
||||
case D3DERR_CONFLICTINGRENDERSTATE: eb="D3DERR_CONFLICTINGRENDERSTATE"; break;
|
||||
case D3DERR_UNSUPPORTEDTEXTUREFILTER: eb="D3DERR_UNSUPPORTEDTEXTUREFILTER"; break;
|
||||
case D3DERR_CONFLICTINGTEXTUREPALETTE: eb="D3DERR_CONFLICTINGTEXTUREPALETTE"; break;
|
||||
case D3DERR_DRIVERINTERNALERROR: eb="D3DERR_DRIVERINTERNALERROR"; break;
|
||||
case D3DERR_NOTFOUND: eb="D3DERR_NOTFOUND"; break;
|
||||
case D3DERR_MOREDATA: eb="D3DERR_MOREDATA"; break;
|
||||
case D3DERR_DEVICELOST: eb="D3DERR_DEVICELOST"; break;
|
||||
case D3DERR_DEVICENOTRESET: eb="D3DERR_DEVICENOTRESET"; break;
|
||||
case D3DERR_NOTAVAILABLE: eb="D3DERR_NOTAVAILABLE"; break;
|
||||
//case D3DERR_OUTOFVIDEOMEMORY: eb="D3DERR_OUTOFVIDEOMEMORY"; break;
|
||||
case D3DERR_INVALIDDEVICE: eb="D3DERR_INVALIDDEVICE"; break;
|
||||
case D3DERR_INVALIDCALL: eb="D3DERR_INVALIDCALL"; break;
|
||||
case D3DERR_DRIVERINVALIDCALL: eb="D3DERR_DRIVERINVALIDCALL"; break;
|
||||
//case D3DERR_WASSTILLDRAWING: eb="D3DERR_WASSTILLDRAWING"; break;
|
||||
case D3DOK_NOAUTOGEN: eb="D3DOK_NOAUTOGEN"; break;
|
||||
case D3DERR_DEVICEREMOVED: eb="D3DERR_DEVICEREMOVED"; break;
|
||||
case D3DERR_DEVICEHUNG: eb="D3DERR_DEVICEHUNG"; break;
|
||||
case D3DERR_UNSUPPORTEDOVERLAY: eb="D3DERR_UNSUPPORTEDOVERLAY"; break;
|
||||
case D3DERR_UNSUPPORTEDOVERLAYFORMAT: eb="D3DERR_UNSUPPORTEDOVERLAYFORMAT"; break;
|
||||
case D3DERR_CANNOTPROTECTCONTENT: eb="D3DERR_CANNOTPROTECTCONTENT"; break;
|
||||
case D3DERR_UNSUPPORTEDCRYPTO: eb="D3DERR_UNSUPPORTEDCRYPTO"; break;
|
||||
case D3DERR_PRESENT_STATISTICS_DISJOINT:eb="D3DERR_PRESENT_STATISTICS_DISJOINT"; break;
|
||||
|
||||
default: eb="unknown"; break;
|
||||
}
|
||||
return eb;
|
||||
}
|
||||
|
@ -722,10 +722,11 @@ RECT dxwCore::MapClientRect(LPRECT lpRect)
|
||||
LONG Width, Height;
|
||||
Width = ClientRect.right - (2*bx);
|
||||
Height = ClientRect.bottom - (2*by);
|
||||
// v2.03.15 - fixed right & bottom values
|
||||
RetRect.left = bx + (lpRect->left * Width / dwScreenWidth);
|
||||
RetRect.right = (lpRect->right * Width / dwScreenWidth);
|
||||
RetRect.right = RetRect.left + Width;
|
||||
RetRect.top = by + (lpRect->top * Height / dwScreenHeight);
|
||||
RetRect.bottom = (lpRect->bottom * Height / dwScreenHeight);
|
||||
RetRect.bottom = RetRect.top + Height;
|
||||
}
|
||||
else{
|
||||
RetRect.left = ClientRect.left + bx;
|
||||
|
@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "TlHelp32.h"
|
||||
|
||||
#define VERSION "2.03.14"
|
||||
#define VERSION "2.03.15"
|
||||
|
||||
#define DDTHREADLOCK 1
|
||||
//#define LOCKTHREADS
|
||||
|
Binary file not shown.
50
dll/hd3d.cpp
50
dll/hd3d.cpp
@ -1,4 +1,6 @@
|
||||
//#define D3D10_IGNORE_SDK_LAYERS 1
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
|
||||
#include <windows.h>
|
||||
#include <d3d9.h>
|
||||
#include <D3D10_1.h>
|
||||
@ -802,12 +804,23 @@ HRESULT WINAPI extReset(void *pd3dd, D3DPRESENT_PARAMETERS* pPresParam)
|
||||
HRESULT WINAPI extPresent(void *pd3dd, CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion)
|
||||
{
|
||||
HRESULT res;
|
||||
OutTraceB("Present\n");
|
||||
RECT RemappedRect;
|
||||
if(IsDebug){
|
||||
char sSourceRect[81];
|
||||
char sDestRect[81];
|
||||
if (pSourceRect) sprintf_s(sSourceRect, 80, "(%d,%d)-(%d,%d)", pSourceRect->left, pSourceRect->top, pSourceRect->right, pSourceRect->bottom);
|
||||
else strcpy(sSourceRect, "(NULL)");
|
||||
if (pDestRect) sprintf_s(sDestRect, 80, "(%d,%d)-(%d,%d)", pDestRect->left, pDestRect->top, pDestRect->right, pDestRect->bottom);
|
||||
else strcpy(sDestRect, "(NULL)");
|
||||
OutTraceB("Present: SourceRect=%s DestRect=%s hDestWndOverride=%x\n", sSourceRect, sDestRect, hDestWindowOverride);
|
||||
}
|
||||
// frame counter handling....
|
||||
if (dxw.HandleFPS()) return D3D_OK;
|
||||
if (dxw.dwFlags1 & SAVELOAD) dxw.VSyncWait();
|
||||
// proxy ....
|
||||
res=(*pPresent)(pd3dd, pSourceRect, pDestRect, hDestWindowOverride, pDirtyRegion);
|
||||
// v2.03.15 - fix target RECT region
|
||||
if(dxw.dwFlags2 & FULLRECTBLT) pSourceRect = pDestRect = NULL;
|
||||
RemappedRect=dxw.MapClientRect((LPRECT)pDestRect);
|
||||
res=(*pPresent)(pd3dd, pSourceRect, &RemappedRect, hDestWindowOverride, pDirtyRegion);
|
||||
dxw.ShowOverlay();
|
||||
return res;
|
||||
}
|
||||
@ -1194,7 +1207,7 @@ HRESULT WINAPI extSetViewport(void *pd3dd, D3DVIEWPORT9 *pViewport)
|
||||
|
||||
HRESULT WINAPI extCreateAdditionalSwapChain(void *lpd3dd, D3DPRESENT_PARAMETERS *pPresentationParameters, IDirect3DSwapChain9 **ppSwapChain)
|
||||
{
|
||||
HRESULT res;
|
||||
HRESULT res, res2;
|
||||
DWORD param[64], *tmp;
|
||||
D3DDISPLAYMODE mode;
|
||||
|
||||
@ -1224,12 +1237,16 @@ HRESULT WINAPI extCreateAdditionalSwapChain(void *lpd3dd, D3DPRESENT_PARAMETERS
|
||||
}
|
||||
|
||||
if (dwD3DVersion == 9)
|
||||
(*pGetAdapterDisplayMode9)(lpd3dd, 0, &mode);
|
||||
res2=(*pGetAdapterDisplayMode9)(lpd3dd, D3DADAPTER_DEFAULT, &mode);
|
||||
else
|
||||
(*pGetAdapterDisplayMode8)(lpd3dd, 0, &mode);
|
||||
res2=(*pGetAdapterDisplayMode8)(lpd3dd, D3DADAPTER_DEFAULT, &mode);
|
||||
if(res2==DD_OK){
|
||||
OutTraceD3D(" Current Format = 0x%x\n", mode.Format);
|
||||
OutTraceD3D(" Current ScreenSize = (%dx%d)\n", mode.Width, mode.Height);
|
||||
OutTraceD3D(" Current Refresh Rate = %d\n", mode.RefreshRate);
|
||||
}
|
||||
else
|
||||
OutTraceE("CreateAdditionalSwapChain: GetAdapterDisplayMode err=%x(%s)\n", res2, ExplainDDError(res2));
|
||||
|
||||
if(dxw.Windowize){
|
||||
if(dwD3DVersion == 9){
|
||||
@ -1247,8 +1264,14 @@ HRESULT WINAPI extCreateAdditionalSwapChain(void *lpd3dd, D3DPRESENT_PARAMETERS
|
||||
param[12] = D3DPRESENT_INTERVAL_DEFAULT; //PresentationInterval
|
||||
}
|
||||
}
|
||||
|
||||
if(res2 == D3DERR_DEVICELOST){
|
||||
res2 = (*pReset)(lpd3dd, (D3DPRESENT_PARAMETERS *)param);
|
||||
if(res2 != DD_OK) OutTraceE("CreateAdditionalSwapChain: Reset err=%x(%s)\n", res2, ExplainDDError(res2));
|
||||
}
|
||||
|
||||
res=(*pCreateAdditionalSwapChain)(lpd3dd, (D3DPRESENT_PARAMETERS *)param, ppSwapChain);
|
||||
if(res){
|
||||
if(res && (res2==DD_OK)){
|
||||
OutTraceD3D("switching to mode=%x\n", mode.Format);
|
||||
param[2] = mode.Format; // first attempt: current screen mode
|
||||
res=(*pCreateAdditionalSwapChain)(lpd3dd, (D3DPRESENT_PARAMETERS *)param, ppSwapChain);
|
||||
@ -1258,8 +1281,13 @@ HRESULT WINAPI extCreateAdditionalSwapChain(void *lpd3dd, D3DPRESENT_PARAMETERS
|
||||
param[2] = D3DFMT_UNKNOWN; // second attempt: unknown, good for windowed mode
|
||||
res=(*pCreateAdditionalSwapChain)(lpd3dd, (D3DPRESENT_PARAMETERS *)param, ppSwapChain);
|
||||
}
|
||||
//if(res){
|
||||
// OutTraceD3D("switching to size=0,0\n");
|
||||
// param[0] = param[1] = 0; // third attempt: unknown, good for windowed mode
|
||||
// res=(*pCreateAdditionalSwapChain)(lpd3dd, (D3DPRESENT_PARAMETERS *)param, ppSwapChain);
|
||||
//}
|
||||
if(res) {
|
||||
OutTraceE("CreateAdditionalSwapChain ERROR: res=%x\n", res);
|
||||
OutTraceE("CreateAdditionalSwapChain ERROR: res=%x(%s)\n", res, ExplainDDError(res));
|
||||
}
|
||||
|
||||
(dwD3DVersion == 9) ? HookD3DDevice9(&lpd3dd) : HookD3DDevice8(&lpd3dd);
|
||||
@ -1725,8 +1753,12 @@ UINT WINAPI extGetAdapterModeCount(void *lpd3d, UINT Adapter, D3DFORMAT Format)
|
||||
|
||||
HRESULT WINAPI extCheckDeviceType(void *lpd3d, UINT Adapter, D3DDEVTYPE DevType, D3DFORMAT AdapterFormat, D3DFORMAT BackBufferFormat, BOOL bWindowed)
|
||||
{
|
||||
HRESULT res;
|
||||
OutTraceD3D("CheckDeviceType: d3d=%x adapter=%d windowed=%x\n", lpd3d, Adapter, bWindowed);
|
||||
return (*pCheckDeviceType)(lpd3d, Adapter, DevType, AdapterFormat, BackBufferFormat, bWindowed);
|
||||
if(dxw.Windowize) bWindowed = TRUE;
|
||||
res = (*pCheckDeviceType)(lpd3d, Adapter, DevType, AdapterFormat, BackBufferFormat, bWindowed);
|
||||
OutTraceD3D("CheckDeviceType: res=%x\n", res);
|
||||
return res;
|
||||
}
|
||||
|
||||
HRESULT WINAPI extCheckDeviceFormat(void *lpd3d, UINT Adapter, D3DDEVTYPE DeviceType, D3DFORMAT AdapterFormat, DWORD Usage, D3DRESOURCETYPE RType, D3DFORMAT CheckFormat)
|
||||
|
@ -41,8 +41,8 @@ static HookEntry_Type Hooks[]={
|
||||
{HOOK_HOT_CANDIDATE, "ChangeDisplaySettingsExA", (FARPROC)ChangeDisplaySettingsExA, (FARPROC *)&pChangeDisplaySettingsExA, (FARPROC)extChangeDisplaySettingsExA},
|
||||
{HOOK_HOT_CANDIDATE, "ChangeDisplaySettingsW", (FARPROC)NULL, (FARPROC *)&pChangeDisplaySettingsW, (FARPROC)extChangeDisplaySettingsW}, // ref. by Knights of Honor
|
||||
{HOOK_HOT_CANDIDATE, "ChangeDisplaySettingsExW", (FARPROC)NULL, (FARPROC *)&pChangeDisplaySettingsExW, (FARPROC)extChangeDisplaySettingsExW},
|
||||
{HOOK_HOT_CANDIDATE, "GetMonitorInfoA", (FARPROC)NULL, (FARPROC *)&pGetMonitorInfoA, (FARPROC)extGetMonitorInfoA},
|
||||
{HOOK_HOT_CANDIDATE, "GetMonitorInfoW", (FARPROC)NULL, (FARPROC *)&pGetMonitorInfoW, (FARPROC)extGetMonitorInfoW},
|
||||
{HOOK_HOT_CANDIDATE, "GetMonitorInfoA", (FARPROC)GetMonitorInfoA, (FARPROC *)&pGetMonitorInfoA, (FARPROC)extGetMonitorInfoA},
|
||||
{HOOK_HOT_CANDIDATE, "GetMonitorInfoW", (FARPROC)GetMonitorInfoW, (FARPROC *)&pGetMonitorInfoW, (FARPROC)extGetMonitorInfoW},
|
||||
{HOOK_IAT_CANDIDATE, "ShowCursor", (FARPROC)ShowCursor, (FARPROC *)&pShowCursor, (FARPROC)extShowCursor},
|
||||
{HOOK_IAT_CANDIDATE, "CreateDialogIndirectParamA", (FARPROC)CreateDialogIndirectParamA, (FARPROC *)&pCreateDialogIndirectParam, (FARPROC)extCreateDialogIndirectParam},
|
||||
{HOOK_IAT_CANDIDATE, "CreateDialogParamA", (FARPROC)CreateDialogParamA, (FARPROC *)&pCreateDialogParam, (FARPROC)extCreateDialogParam},
|
||||
@ -1418,7 +1418,8 @@ static HWND WINAPI extCreateWindowCommon(
|
||||
|
||||
// "Hoyle Casino Empire" needs to be in a maximized state to continue after the intro movie.
|
||||
// Sending a SW_MAXIMIZE message intercepted by the PREVENTMAXIMIZE handling fixes the problem.
|
||||
if (dxw.IsFullScreen() && (dxw.dwFlags1 & PREVENTMAXIMIZE)){
|
||||
//if (dxw.IsFullScreen() && (dxw.dwFlags1 & PREVENTMAXIMIZE)){
|
||||
if ((hwnd == dxw.GethWnd()) && dxw.IsFullScreen() && (dxw.dwFlags1 & PREVENTMAXIMIZE)){
|
||||
OutTraceDW("%s: entering maximized state\n", ApiName);
|
||||
(*pShowWindow)(hwnd, SW_MAXIMIZE);
|
||||
}
|
||||
@ -2776,13 +2777,15 @@ BOOL extGetMonitorInfo(HMONITOR hMonitor, LPMONITORINFO lpmi, GetMonitorInfo_Typ
|
||||
BOOL res;
|
||||
OutTraceDW("GetMonitorInfo: hMonitor=%x mi=MONITORINFO%s\n", hMonitor, lpmi->cbSize==sizeof(MONITORINFO)?"":"EX");
|
||||
res=(*pGetMonitorInfo)(hMonitor, lpmi);
|
||||
if(res && dxw.Windowize){
|
||||
//v2.03.15 - must fix the coordinates also in case of error: that may depend on the windowed mode.
|
||||
if(dxw.Windowize){
|
||||
OutTraceDW("GetMonitorInfo: FIX Work=(%d,%d)-(%d,%d) Monitor=(%d,%d)-(%d,%d) -> (%d,%d)-(%d,%d)\n",
|
||||
lpmi->rcWork.left, lpmi->rcWork.top, lpmi->rcWork.right, lpmi->rcWork.bottom,
|
||||
lpmi->rcMonitor.left, lpmi->rcMonitor.top, lpmi->rcMonitor.right, lpmi->rcMonitor.bottom,
|
||||
0, 0, dxw.GetScreenWidth(), dxw.GetScreenHeight());
|
||||
lpmi->rcWork = dxw.GetScreenRect();
|
||||
lpmi->rcMonitor = dxw.GetScreenRect();
|
||||
res=TRUE;
|
||||
}
|
||||
else
|
||||
OutTraceE("GetMonitorInfo: ERROR err=%d\n", GetLastError());
|
||||
|
@ -36,6 +36,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
|
||||
m_OutDWTrace = FALSE;
|
||||
m_OutD3DTrace = FALSE;
|
||||
m_OutDDRAWTrace = FALSE;
|
||||
m_OutDebugString = FALSE;
|
||||
m_DXProxed = FALSE;
|
||||
//m_HandleDC = FALSE;
|
||||
m_HandleExceptions = FALSE;
|
||||
|
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user