mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_03_25_src
Former-commit-id: 3c0f75c523701024f1eb1270e9ba36d2cbff5ed6
This commit is contained in:
parent
8f439ed44d
commit
6b20484cd8
@ -175,7 +175,7 @@
|
|||||||
#define STRESSRESOURCES 0x02000000 // simulates a lack of resources condition, for testing (debug opt.)
|
#define STRESSRESOURCES 0x02000000 // simulates a lack of resources condition, for testing (debug opt.)
|
||||||
#define MESSAGEPUMP 0x04000000 // inserts a "message pump" loop between repeated operation that may stop the task on Win7 and greater
|
#define MESSAGEPUMP 0x04000000 // inserts a "message pump" loop between repeated operation that may stop the task on Win7 and greater
|
||||||
#define TEXTUREFORMAT 0x08000000 // Apply virtual pixel format to texture surfaces without DDSD_PIXELFORMAT attribute
|
#define TEXTUREFORMAT 0x08000000 // Apply virtual pixel format to texture surfaces without DDSD_PIXELFORMAT attribute
|
||||||
#define GSKYHACK 0x10000000 // use VIDEOMEMORY+LOCALVIDMEM capability to turn hw acceleration on ...
|
//#define GSKYHACK 0x10000000 // use VIDEOMEMORY+LOCALVIDMEM capability to turn hw acceleration on ...
|
||||||
#define LOCKRESERVEDPALETTE 0x20000000 // lock the reserved palette entries (usually 20: 0-9 and 246-255)
|
#define LOCKRESERVEDPALETTE 0x20000000 // lock the reserved palette entries (usually 20: 0-9 and 246-255)
|
||||||
#define UNLOCKZORDER 0x40000000 // Inhibit attempts to keep the main win on top of ZORDER by stripping BringWindowToTop and SetForegroundWindow calls
|
#define UNLOCKZORDER 0x40000000 // Inhibit attempts to keep the main win on top of ZORDER by stripping BringWindowToTop and SetForegroundWindow calls
|
||||||
#define EASPORTSHACK 0X80000000 // Hack to intercept and neutralize some of the hooks set internally by EA Sports games
|
#define EASPORTSHACK 0X80000000 // Hack to intercept and neutralize some of the hooks set internally by EA Sports games
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:5211d477a57e94924d26e7fdb6bafab7271fb26dbace81ea1d77114cad7fa1c3
|
oid sha256:56ab101cb2b224e431663b2780b0f9909105b05d8224c9aaf04fce73f4478f2c
|
||||||
size 576000
|
size 576000
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:ec8dfbc77b459282a1bde4e41baf74b3c9a05edfd78fd1f8660c051ce47cc97f
|
oid sha256:4689f5e3e9616fb6a9cffaa580a02ca3aceb4364593deeb30b373e1e6f0d0696
|
||||||
size 539648
|
size 539648
|
||||||
|
@ -9,7 +9,7 @@ flag0=140525606
|
|||||||
flagg0=1207959568
|
flagg0=1207959568
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=4194596
|
flagi0=4194596
|
||||||
tflag0=258
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
minx0=0
|
minx0=0
|
||||||
@ -26,3 +26,6 @@ launchpath0=
|
|||||||
flagj0=128
|
flagj0=128
|
||||||
winver0=0
|
winver0=0
|
||||||
maxres0=0
|
maxres0=0
|
||||||
|
notes0=
|
||||||
|
flagk0=0
|
||||||
|
swapeffect0=0
|
||||||
|
@ -5,10 +5,10 @@ module0=
|
|||||||
opengllib0=
|
opengllib0=
|
||||||
ver0=0
|
ver0=0
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=671089184
|
flag0=671088674
|
||||||
flagg0=1207959552
|
flagg0=1207959552
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=4
|
flagi0=4194308
|
||||||
tflag0=0
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
@ -24,3 +24,8 @@ maxfps0=0
|
|||||||
initts0=2
|
initts0=2
|
||||||
winver0=0
|
winver0=0
|
||||||
maxres0=-1
|
maxres0=-1
|
||||||
|
launchpath0=
|
||||||
|
notes0=
|
||||||
|
flagj0=128
|
||||||
|
flagk0=0
|
||||||
|
swapeffect0=0
|
||||||
|
@ -5,10 +5,10 @@ module0=
|
|||||||
opengllib0=
|
opengllib0=
|
||||||
ver0=0
|
ver0=0
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=671088673
|
flag0=671088675
|
||||||
flagg0=1208025088
|
flagg0=1208025088
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=12
|
flagi0=4194316
|
||||||
tflag0=0
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
@ -24,3 +24,8 @@ maxfps0=0
|
|||||||
initts0=0
|
initts0=0
|
||||||
winver0=0
|
winver0=0
|
||||||
maxres0=-1
|
maxres0=-1
|
||||||
|
launchpath0=
|
||||||
|
notes0=
|
||||||
|
flagj0=128
|
||||||
|
flagk0=0
|
||||||
|
swapeffect0=0
|
||||||
|
@ -5,7 +5,7 @@ module0=
|
|||||||
opengllib0=
|
opengllib0=
|
||||||
ver0=0
|
ver0=0
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=679493664
|
flag0=679493666
|
||||||
flagg0=1207959552
|
flagg0=1207959552
|
||||||
flagh0=65556
|
flagh0=65556
|
||||||
flagi0=69206020
|
flagi0=69206020
|
||||||
@ -25,3 +25,7 @@ initts0=0
|
|||||||
winver0=0
|
winver0=0
|
||||||
maxres0=-1
|
maxres0=-1
|
||||||
launchpath0=
|
launchpath0=
|
||||||
|
notes0=
|
||||||
|
flagj0=128
|
||||||
|
flagk0=0
|
||||||
|
swapeffect0=0
|
||||||
|
@ -8,8 +8,8 @@ coord0=0
|
|||||||
flag0=134217766
|
flag0=134217766
|
||||||
flagg0=1207959552
|
flagg0=1207959552
|
||||||
flagh0=65556
|
flagh0=65556
|
||||||
flagi0=0
|
flagi0=4194304
|
||||||
tflag0=67
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
minx0=0
|
minx0=0
|
||||||
@ -22,3 +22,10 @@ sizx0=800
|
|||||||
sizy0=600
|
sizy0=600
|
||||||
maxfps0=0
|
maxfps0=0
|
||||||
initts0=0
|
initts0=0
|
||||||
|
launchpath0=
|
||||||
|
notes0=
|
||||||
|
flagj0=128
|
||||||
|
flagk0=0
|
||||||
|
winver0=0
|
||||||
|
maxres0=0
|
||||||
|
swapeffect0=0
|
||||||
|
@ -6,7 +6,7 @@ module0=
|
|||||||
opengllib0=
|
opengllib0=
|
||||||
ver0=0
|
ver0=0
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=671105072
|
flag0=671105074
|
||||||
flagg0=1207959552
|
flagg0=1207959552
|
||||||
flagh0=16
|
flagh0=16
|
||||||
flagi0=-2009071612
|
flagi0=-2009071612
|
||||||
@ -25,3 +25,7 @@ maxfps0=0
|
|||||||
initts0=-4
|
initts0=-4
|
||||||
winver0=0
|
winver0=0
|
||||||
maxres0=-1
|
maxres0=-1
|
||||||
|
notes0=
|
||||||
|
flagj0=128
|
||||||
|
flagk0=0
|
||||||
|
swapeffect0=0
|
||||||
|
@ -6,12 +6,12 @@ module0=
|
|||||||
opengllib0=
|
opengllib0=
|
||||||
ver0=0
|
ver0=0
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=671096866
|
flag0=673194018
|
||||||
flagg0=1207959552
|
flagg0=1207959552
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=138412036
|
flagi0=138412036
|
||||||
flagj0=8328
|
flagj0=128
|
||||||
tflag0=6403
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
minx0=0
|
minx0=0
|
||||||
@ -26,3 +26,6 @@ maxfps0=0
|
|||||||
initts0=0
|
initts0=0
|
||||||
winver0=0
|
winver0=0
|
||||||
maxres0=-1
|
maxres0=-1
|
||||||
|
notes0=
|
||||||
|
flagk0=0
|
||||||
|
swapeffect0=0
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
[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
|
|
@ -4,12 +4,15 @@ path0=D:\Games\Dune 2000\DUNE2000.DAT
|
|||||||
launchpath0=D:\Games\Dune 2000\DUNE2000.EXE
|
launchpath0=D:\Games\Dune 2000\DUNE2000.EXE
|
||||||
module0=
|
module0=
|
||||||
opengllib0=
|
opengllib0=
|
||||||
|
notes0=
|
||||||
ver0=0
|
ver0=0
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=671105058
|
flag0=671105058
|
||||||
flagg0=1207959568
|
flagg0=1207959568
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=4194308
|
flagi0=4194308
|
||||||
|
flagj0=128
|
||||||
|
flagk0=0
|
||||||
tflag0=0
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
@ -25,5 +28,4 @@ maxfps0=0
|
|||||||
initts0=0
|
initts0=0
|
||||||
winver0=0
|
winver0=0
|
||||||
maxres0=-1
|
maxres0=-1
|
||||||
notes0=
|
swapeffect0=0
|
||||||
flagj0=128
|
|
||||||
|
@ -9,7 +9,7 @@ flag0=402669606
|
|||||||
flagg0=1207959552
|
flagg0=1207959552
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=4194308
|
flagi0=4194308
|
||||||
tflag0=64
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
minx0=0
|
minx0=0
|
||||||
|
@ -5,10 +5,10 @@ module0=
|
|||||||
opengllib0=
|
opengllib0=
|
||||||
ver0=0
|
ver0=0
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=411058208
|
flag0=950026274
|
||||||
flagg0=1207959808
|
flagg0=1207959812
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=2097156
|
flagi0=4194308
|
||||||
tflag0=0
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
@ -26,6 +26,6 @@ winver0=0
|
|||||||
maxres0=-1
|
maxres0=-1
|
||||||
launchpath0=
|
launchpath0=
|
||||||
notes0=
|
notes0=
|
||||||
flagj0=262272
|
flagj0=162
|
||||||
flagk0=0
|
flagk0=0
|
||||||
swapeffect0=0
|
swapeffect0=0
|
||||||
|
31
build/exports/Killing Time.dxw
Normal file
31
build/exports/Killing Time.dxw
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[target]
|
||||||
|
title0=Killing Time
|
||||||
|
path0=D:\Games\killingtime\KILLTIME.EXE
|
||||||
|
launchpath0=
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
notes0=Movies not rendered correctly
|
||||||
|
ver0=0
|
||||||
|
coord0=0
|
||||||
|
flag0=136314914
|
||||||
|
flagg0=1207959552
|
||||||
|
flagh0=20
|
||||||
|
flagi0=138412036
|
||||||
|
flagj0=4224
|
||||||
|
flagk0=0
|
||||||
|
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
|
||||||
|
swapeffect0=0
|
31
build/exports/STCC Swedish TouringCar Championship.dxw
Normal file
31
build/exports/STCC Swedish TouringCar Championship.dxw
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
[target]
|
||||||
|
title0=STCC Swedish TouringCar Championship
|
||||||
|
path0=D:\Games\STCC\STCC.exe
|
||||||
|
launchpath0=
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
notes0=Still slow and choppy in emulation mode
|
||||||
|
ver0=0
|
||||||
|
coord0=0
|
||||||
|
flag0=136314914
|
||||||
|
flagg0=1207959552
|
||||||
|
flagh0=20
|
||||||
|
flagi0=138412036
|
||||||
|
flagj0=4256
|
||||||
|
flagk0=0
|
||||||
|
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
|
||||||
|
swapeffect0=0
|
@ -5,10 +5,10 @@ module0=
|
|||||||
opengllib0=
|
opengllib0=
|
||||||
ver0=1
|
ver0=1
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=134234784
|
flag0=134234274
|
||||||
flagg0=1208025344
|
flagg0=1207959808
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=12
|
flagi0=4194308
|
||||||
tflag0=0
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
@ -24,3 +24,8 @@ maxfps0=0
|
|||||||
initts0=2
|
initts0=2
|
||||||
winver0=0
|
winver0=0
|
||||||
maxres0=-1
|
maxres0=-1
|
||||||
|
launchpath0=
|
||||||
|
notes0=
|
||||||
|
flagj0=128
|
||||||
|
flagk0=0
|
||||||
|
swapeffect0=0
|
||||||
|
@ -9,9 +9,9 @@ coord0=0
|
|||||||
flag0=134217762
|
flag0=134217762
|
||||||
flagg0=1207959552
|
flagg0=1207959552
|
||||||
flagh0=20
|
flagh0=20
|
||||||
flagi0=134217732
|
flagi0=138412036
|
||||||
flagj0=8320
|
flagj0=128
|
||||||
tflag0=129
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
inity0=0
|
inity0=0
|
||||||
minx0=0
|
minx0=0
|
||||||
@ -26,3 +26,6 @@ maxfps0=0
|
|||||||
initts0=0
|
initts0=0
|
||||||
winver0=0
|
winver0=0
|
||||||
maxres0=-1
|
maxres0=-1
|
||||||
|
notes0=
|
||||||
|
flagk0=0
|
||||||
|
swapeffect0=0
|
||||||
|
@ -825,4 +825,9 @@ fix: handling of DDERR_SURFACEBUSY error in blit operations, recovers "Virtua Co
|
|||||||
fix: several changes in palette handling, improve (but don't fix!) "Man in Black" palette rendering
|
fix: several changes in palette handling, improve (but don't fix!) "Man in Black" palette rendering
|
||||||
fix: EnumDisplayMode hooker, passing wrong vodeo modes to the callback routine. Fixes "Total Annihilation Kingdoms" crash
|
fix: EnumDisplayMode hooker, passing wrong vodeo modes to the callback routine. Fixes "Total Annihilation Kingdoms" crash
|
||||||
fix: DxWnd GUI build with very large width, causing slow interface responsiveness.
|
fix: DxWnd GUI build with very large width, causing slow interface responsiveness.
|
||||||
add: added the "Suppress Release on backbuffer" that makes "Tetris Worlds" working, avoiding to release the backbuffer surface too many times.
|
add: added the "Suppress Release on backbuffer" that makes "Tetris Worlds" working, avoiding to release the backbuffer surface too many times.
|
||||||
|
|
||||||
|
v2.03.25:
|
||||||
|
fix: CoCreateInstance hooking for IDirectDraw interface: fixes "Darius Gaiden"
|
||||||
|
fix: BackBufferCaps value for NOSYSTEMEMULATED option. Fixes "Forsaken" crashes in AERO mode.
|
||||||
|
fix: GDI GetDC and GetWindowDC must not redirect the zero hWnd to the current main window if not in fullscreen mode.
|
@ -2238,8 +2238,8 @@ static HRESULT BuildPrimaryEmu(LPDIRECTDRAW lpdd, CreateSurface_Type pCreateSurf
|
|||||||
// DDSCAPS_SYSTEMMEMORY makes operations faster, but it is not always good...
|
// DDSCAPS_SYSTEMMEMORY makes operations faster, but it is not always good...
|
||||||
dwBackBufferCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY);
|
dwBackBufferCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_SYSTEMMEMORY);
|
||||||
// on WinXP Fifa 99 doesn't like DDSCAPS_SYSTEMMEMORY cap, so better to leave a way to unset it....
|
// on WinXP Fifa 99 doesn't like DDSCAPS_SYSTEMMEMORY cap, so better to leave a way to unset it....
|
||||||
// if(dxw.dwFlags5 & NOSYSTEMEMULATED) dwBackBufferCaps &= ~DDSCAPS_SYSTEMMEMORY;
|
// this is important to avoid that certain D3D operations will abort - see "Forsaken" problem
|
||||||
if(dxw.dwFlags5 & GSKYHACK) dwBackBufferCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM);
|
if(dxw.dwFlags5 & NOSYSTEMEMULATED) dwBackBufferCaps = DDSCAPS_OFFSCREENPLAIN;
|
||||||
|
|
||||||
if(dxw.dwFlags5 & GDIMODE) return DD_OK;
|
if(dxw.dwFlags5 & GDIMODE) return DD_OK;
|
||||||
|
|
||||||
@ -2905,19 +2905,19 @@ HRESULT WINAPI PrimaryStretchBlt(LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect, L
|
|||||||
ddsd.ddsCaps.dwCaps = dwBackBufferCaps;
|
ddsd.ddsCaps.dwCaps = dwBackBufferCaps;
|
||||||
res=(*pCreateSurface)(lpPrimaryDD, (LPDDSURFACEDESC)&ddsd, &lpddsTmp, NULL);
|
res=(*pCreateSurface)(lpPrimaryDD, (LPDDSURFACEDESC)&ddsd, &lpddsTmp, NULL);
|
||||||
if(res) {
|
if(res) {
|
||||||
OutTraceE("CreateSurface: ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
OutTraceE("PrimaryStretchBlt: CreateSurface ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
OutTraceB("CreateSurface: %s\n", LogSurfaceAttributes((LPDDSURFACEDESC)&ddsd, "[Gateway]", __LINE__));
|
OutTraceB("PrimaryStretchBlt: CreateSurface %s\n", LogSurfaceAttributes((LPDDSURFACEDESC)&ddsd, "[Gateway]", __LINE__));
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
// stretch-blit to target size on OFFSCREENPLAIN temp surface
|
// stretch-blit to target size on OFFSCREENPLAIN temp surface
|
||||||
res= (*pBlt)(lpddsTmp, &TmpRect, lpddssrc, lpsrcrect, DDBLT_WAIT, 0);
|
res= (*pBlt)(lpddsTmp, &TmpRect, lpddssrc, lpsrcrect, DDBLT_WAIT, 0);
|
||||||
if(res) {
|
if(res) {
|
||||||
OutTraceE("Blt: ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
OutTraceE("PrimaryStretchBlt: Blt ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// fast-blit to primary
|
// fast-blit to primary
|
||||||
res= (*pBltFast)(lpdds, lpdestrect->left, lpdestrect->top, lpddsTmp, &TmpRect, DDBLTFAST_WAIT);
|
res= (*pBltFast)(lpdds, lpdestrect->left, lpdestrect->top, lpddsTmp, &TmpRect, DDBLTFAST_WAIT);
|
||||||
if(res) OutTraceE("Blt: ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
if(res) OutTraceE("PrimaryStretchBlt: Blt ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
}
|
}
|
||||||
(*pReleaseS)(lpddsTmp);
|
(*pReleaseS)(lpddsTmp);
|
||||||
return res;
|
return res;
|
||||||
@ -3005,7 +3005,7 @@ HRESULT WINAPI PrimaryBilinearBlt(LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect,
|
|||||||
// capabilities must cope with primary / backbuffer surface capabilities to get speedy operations
|
// capabilities must cope with primary / backbuffer surface capabilities to get speedy operations
|
||||||
ddsd.ddsCaps.dwCaps = dwBackBufferCaps;
|
ddsd.ddsCaps.dwCaps = dwBackBufferCaps;
|
||||||
res=(*pCreateSurface)(lpPrimaryDD, (LPDDSURFACEDESC)&ddsd, &lpddsTmp, NULL);
|
res=(*pCreateSurface)(lpPrimaryDD, (LPDDSURFACEDESC)&ddsd, &lpddsTmp, NULL);
|
||||||
if(res) OutTraceE("CreateSurface: ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
if(res) OutTraceE("PrimaryBilinearBlt: CreateSurface ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
|
|
||||||
// get informations
|
// get informations
|
||||||
memset(&ddsd,0,dwSize);
|
memset(&ddsd,0,dwSize);
|
||||||
@ -3013,7 +3013,7 @@ HRESULT WINAPI PrimaryBilinearBlt(LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect,
|
|||||||
ddsd.dwFlags = DDSD_LPSURFACE | DDSD_PITCH;
|
ddsd.dwFlags = DDSD_LPSURFACE | DDSD_PITCH;
|
||||||
res=(*pLock)(lpddssrc, 0, (LPDDSURFACEDESC)&ddsd, DDLOCK_SURFACEMEMORYPTR|DDLOCK_READONLY, 0);
|
res=(*pLock)(lpddssrc, 0, (LPDDSURFACEDESC)&ddsd, DDLOCK_SURFACEMEMORYPTR|DDLOCK_READONLY, 0);
|
||||||
if(res) {
|
if(res) {
|
||||||
OutTraceE("Lock: ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
OutTraceE("PrimaryBilinearBlt: Lock ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
return DD_OK;
|
return DD_OK;
|
||||||
}
|
}
|
||||||
bSourceBuf = (BYTE *)ddsd.lpSurface;
|
bSourceBuf = (BYTE *)ddsd.lpSurface;
|
||||||
@ -3023,7 +3023,7 @@ HRESULT WINAPI PrimaryBilinearBlt(LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect,
|
|||||||
ddsd.dwFlags = DDSD_LPSURFACE | DDSD_PITCH;
|
ddsd.dwFlags = DDSD_LPSURFACE | DDSD_PITCH;
|
||||||
res=(*pLock)(lpddsTmp, 0, (LPDDSURFACEDESC)&ddsd, DDLOCK_SURFACEMEMORYPTR|DDLOCK_WRITEONLY|DDLOCK_WAIT, 0);
|
res=(*pLock)(lpddsTmp, 0, (LPDDSURFACEDESC)&ddsd, DDLOCK_SURFACEMEMORYPTR|DDLOCK_WRITEONLY|DDLOCK_WAIT, 0);
|
||||||
if(res) {
|
if(res) {
|
||||||
OutTraceE("Lock: ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
OutTraceE("PrimaryBilinearBlt: Lock ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
return DD_OK;
|
return DD_OK;
|
||||||
}
|
}
|
||||||
bDestBuf = (BYTE *)ddsd.lpSurface;
|
bDestBuf = (BYTE *)ddsd.lpSurface;
|
||||||
@ -3070,7 +3070,7 @@ HRESULT WINAPI PrimaryBilinearBlt(LPDIRECTDRAWSURFACE lpdds, LPRECT lpdestrect,
|
|||||||
(*pUnlockMethod(lpddssrc))(lpddssrc, NULL);
|
(*pUnlockMethod(lpddssrc))(lpddssrc, NULL);
|
||||||
(*pUnlockMethod(lpddsTmp))(lpddsTmp, NULL);
|
(*pUnlockMethod(lpddsTmp))(lpddsTmp, NULL);
|
||||||
res= (*pBltFast)(lpdds, lpdestrect->left, lpdestrect->top, lpddsTmp, &TmpRect, DDBLTFAST_WAIT);
|
res= (*pBltFast)(lpdds, lpdestrect->left, lpdestrect->top, lpddsTmp, &TmpRect, DDBLTFAST_WAIT);
|
||||||
if(res) OutTraceE("BltFast: ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
if(res) OutTraceE("PrimaryBilinearBlt: BltFast ERROR %x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||||
(*pReleaseS)(lpddsTmp);
|
(*pReleaseS)(lpddsTmp);
|
||||||
if(lpddsCopy) (*pReleaseS)(lpddsCopy);
|
if(lpddsCopy) (*pReleaseS)(lpddsCopy);
|
||||||
return res;
|
return res;
|
||||||
|
@ -101,7 +101,7 @@ static char *Flag5Names[32]={
|
|||||||
"TEXTURETRANSP", "NORMALIZEPERFCOUNT", "HYBRIDMODE", "GDICOLORCONV",
|
"TEXTURETRANSP", "NORMALIZEPERFCOUNT", "HYBRIDMODE", "GDICOLORCONV",
|
||||||
"INJECTSON", "ENABLESONHOOK", "FREEZEINJECTEDSON", "GDIMODE",
|
"INJECTSON", "ENABLESONHOOK", "FREEZEINJECTEDSON", "GDIMODE",
|
||||||
"CENTERTOWIN", "STRESSRESOURCES", "MESSAGEPUMP", "TEXTUREFORMAT",
|
"CENTERTOWIN", "STRESSRESOURCES", "MESSAGEPUMP", "TEXTUREFORMAT",
|
||||||
"GSKYHACK", "LOCKRESERVEDPALETTE", "UNLOCKZORDER", "EASPORTSHACK",
|
"--GSKYHACK", "LOCKRESERVEDPALETTE", "UNLOCKZORDER", "EASPORTSHACK",
|
||||||
};
|
};
|
||||||
|
|
||||||
static char *Flag6Names[32]={
|
static char *Flag6Names[32]={
|
||||||
|
@ -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.24"
|
#define VERSION "2.03.25"
|
||||||
|
|
||||||
#define DDTHREADLOCK 1
|
#define DDTHREADLOCK 1
|
||||||
//#define LOCKTHREADS
|
//#define LOCKTHREADS
|
||||||
|
Binary file not shown.
@ -125,6 +125,7 @@ typedef HRESULT (WINAPI *DeleteViewport1_Type)(void *, LPDIRECT3DVIEWPORT);
|
|||||||
typedef HRESULT (WINAPI *NextViewport1_Type)(void *, LPDIRECT3DVIEWPORT, LPDIRECT3DVIEWPORT *, DWORD);
|
typedef HRESULT (WINAPI *NextViewport1_Type)(void *, LPDIRECT3DVIEWPORT, LPDIRECT3DVIEWPORT *, DWORD);
|
||||||
typedef HRESULT (WINAPI *DeleteViewport2_Type)(void *, LPDIRECT3DVIEWPORT2);
|
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);
|
||||||
|
|
||||||
InitializeVP_Type pInitializeVP = NULL;
|
InitializeVP_Type pInitializeVP = NULL;
|
||||||
SetViewport_Type pSetViewport = NULL;
|
SetViewport_Type pSetViewport = NULL;
|
||||||
@ -141,6 +142,7 @@ DeleteViewport1_Type pDeleteViewport1 = NULL;
|
|||||||
NextViewport1_Type pNextViewport1 = NULL;
|
NextViewport1_Type pNextViewport1 = NULL;
|
||||||
DeleteViewport2_Type pDeleteViewport2 = NULL;
|
DeleteViewport2_Type pDeleteViewport2 = NULL;
|
||||||
NextViewport2_Type pNextViewport2 = NULL;
|
NextViewport2_Type pNextViewport2 = NULL;
|
||||||
|
ViewportClear_Type pViewportClear = NULL;
|
||||||
|
|
||||||
HRESULT WINAPI extInitialize(void *);
|
HRESULT WINAPI extInitialize(void *);
|
||||||
HRESULT WINAPI extEnumDevices(void *, LPD3DENUMDEVICESCALLBACK, LPVOID);
|
HRESULT WINAPI extEnumDevices(void *, LPD3DENUMDEVICESCALLBACK, LPVOID);
|
||||||
@ -158,6 +160,7 @@ HRESULT WINAPI extDeleteViewport1(void *, LPDIRECT3DVIEWPORT);
|
|||||||
HRESULT WINAPI extNextViewport1(void *, LPDIRECT3DVIEWPORT, LPDIRECT3DVIEWPORT *, DWORD);
|
HRESULT WINAPI extNextViewport1(void *, LPDIRECT3DVIEWPORT, LPDIRECT3DVIEWPORT *, DWORD);
|
||||||
HRESULT WINAPI extDeleteViewport2(void *, LPDIRECT3DVIEWPORT2);
|
HRESULT WINAPI extDeleteViewport2(void *, LPDIRECT3DVIEWPORT2);
|
||||||
HRESULT WINAPI extNextViewport2(void *, LPDIRECT3DVIEWPORT2, LPDIRECT3DVIEWPORT2 *, DWORD);
|
HRESULT WINAPI extNextViewport2(void *, LPDIRECT3DVIEWPORT2, LPDIRECT3DVIEWPORT2 *, DWORD);
|
||||||
|
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);
|
||||||
@ -535,6 +538,9 @@ void HookViewport(LPDIRECT3DVIEWPORT *lpViewport, int d3dversion)
|
|||||||
SetHook((void *)(**(DWORD **)lpViewport + 12), extInitializeVP, (void **)&pInitializeVP, "Initialize(VP1)");
|
SetHook((void *)(**(DWORD **)lpViewport + 12), extInitializeVP, (void **)&pInitializeVP, "Initialize(VP1)");
|
||||||
SetHook((void *)(**(DWORD **)lpViewport + 16), extGetViewport, (void **)&pGetViewport, "GetViewport(1)");
|
SetHook((void *)(**(DWORD **)lpViewport + 16), extGetViewport, (void **)&pGetViewport, "GetViewport(1)");
|
||||||
SetHook((void *)(**(DWORD **)lpViewport + 20), extSetViewport, (void **)&pSetViewport, "SetViewport(1)");
|
SetHook((void *)(**(DWORD **)lpViewport + 20), extSetViewport, (void **)&pSetViewport, "SetViewport(1)");
|
||||||
|
|
||||||
|
// to do: why Clear method crashes in "Forsaken" in emulation and GDI mode???
|
||||||
|
// SetHook((void *)(**(DWORD **)lpViewport + 48), extViewportClear, (void **)&pViewportClear, "Clear(1)");
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
SetHook((void *)(**(DWORD **)lpViewport + 12), extInitializeVP, (void **)&pInitializeVP, "Initialize(VP2)");
|
SetHook((void *)(**(DWORD **)lpViewport + 12), extInitializeVP, (void **)&pInitializeVP, "Initialize(VP2)");
|
||||||
@ -1573,7 +1579,7 @@ HRESULT WINAPI extEnumZBufferFormats(void *lpd3d, REFCLSID riidDevice, LPD3DENUM
|
|||||||
{
|
{
|
||||||
HRESULT ret;
|
HRESULT ret;
|
||||||
CallbackZBufArg Arg;
|
CallbackZBufArg Arg;
|
||||||
OutTrace("Direct3D::EnumZBufferFormats d3d=%x clsid=%x context=%x\n", lpd3d, riidDevice.Data1, lpContext);
|
OutTraceD3D("Direct3D::EnumZBufferFormats d3d=%x clsid=%x context=%x\n", lpd3d, riidDevice.Data1, lpContext);
|
||||||
Arg.cb= &lpEnumCallback;
|
Arg.cb= &lpEnumCallback;
|
||||||
Arg.arg=lpContext;
|
Arg.arg=lpContext;
|
||||||
ret = (*pEnumZBufferFormats)(lpd3d, riidDevice, (LPD3DENUMPIXELFORMATSCALLBACK)extZBufferProxy, (LPVOID)&Arg);
|
ret = (*pEnumZBufferFormats)(lpd3d, riidDevice, (LPD3DENUMPIXELFORMATSCALLBACK)extZBufferProxy, (LPVOID)&Arg);
|
||||||
@ -1581,3 +1587,24 @@ HRESULT WINAPI extEnumZBufferFormats(void *lpd3d, REFCLSID riidDevice, LPD3DENUM
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Beware: using service surfaces with DDSCAPS_SYSTEMMEMORY capability may lead to crashes in D3D operations
|
||||||
|
// like Vievport::Clear() in "Forsaken" set in emulation AERO-friendly mode. To avoid the problem, you can
|
||||||
|
// suppress the offending cap by use of the NOSYSTEMEMULATED flag
|
||||||
|
|
||||||
|
HRESULT WINAPI extViewportClear(void *lpd3dvp, DWORD p1, LPD3DRECT lpRect, DWORD p2)
|
||||||
|
{
|
||||||
|
HRESULT ret;
|
||||||
|
|
||||||
|
if(IsTraceD3D){
|
||||||
|
char sRect[81];
|
||||||
|
if (lpRect) sprintf(sRect, "(%d,%d)-(%d,%d)", lpRect->x1, lpRect->y1, lpRect->x2, lpRect->y2);
|
||||||
|
else strcpy(sRect, "(NULL)");
|
||||||
|
OutTrace("Viewport::Clear lpd3dvp=%x p1=%x p2=%x rect=%s\n", lpd3dvp, p1, p2, sRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
// proxying the call ....
|
||||||
|
ret = (*pViewportClear)(lpd3dvp, p1, lpRect, p2);
|
||||||
|
|
||||||
|
OutTraceD3D("Viewport::Clear ret=%x\n", ret);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
@ -117,8 +117,13 @@ HRESULT STDAPICALLTYPE extCoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter,
|
|||||||
#else
|
#else
|
||||||
LPDIRECTDRAW lpOldDDraw;
|
LPDIRECTDRAW lpOldDDraw;
|
||||||
case 0x6C14DB80:
|
case 0x6C14DB80:
|
||||||
|
// must go through DirectDrawCreate: needed for "Darius Gaiden"
|
||||||
OutTraceDW("CoCreateInstance: IID_DirectDraw RIID\n");
|
OutTraceDW("CoCreateInstance: IID_DirectDraw RIID\n");
|
||||||
HookDDSession((LPDIRECTDRAW *)ppv, 1);
|
res=extDirectDrawCreate(NULL, &lpOldDDraw, 0);
|
||||||
|
if(res)OutTraceDW("DirectDrawCreate: res=%x(%s)\n", res, ExplainDDError(res));
|
||||||
|
res=lpOldDDraw->QueryInterface(IID_IDirectDraw, (LPVOID *)ppv);
|
||||||
|
if(res)OutTraceDW("QueryInterface: res=%x(%s)\n", res, ExplainDDError(res));
|
||||||
|
lpOldDDraw->Release();
|
||||||
break;
|
break;
|
||||||
case 0xB3A6F3E0:
|
case 0xB3A6F3E0:
|
||||||
OutTraceDW("CoCreateInstance: IID_DirectDraw2 RIID\n");
|
OutTraceDW("CoCreateInstance: IID_DirectDraw2 RIID\n");
|
||||||
|
@ -1919,6 +1919,8 @@ static HDC WINAPI sGetDC(HWND hwnd, char *ApiName)
|
|||||||
HDC ret;
|
HDC ret;
|
||||||
HWND lochwnd;
|
HWND lochwnd;
|
||||||
|
|
||||||
|
if(!dxw.IsFullScreen()) return(*pGDIGetDC)(hwnd);
|
||||||
|
|
||||||
lochwnd=hwnd;
|
lochwnd=hwnd;
|
||||||
|
|
||||||
if (dxw.IsRealDesktop(hwnd)) {
|
if (dxw.IsRealDesktop(hwnd)) {
|
||||||
|
@ -47,8 +47,6 @@ void CTabDebug::DoDataExchange(CDataExchange* pDX)
|
|||||||
DDX_Check(pDX, IDC_FREEZEINJECTEDSON, cTarget->m_FreezeInjectedSon);
|
DDX_Check(pDX, IDC_FREEZEINJECTEDSON, cTarget->m_FreezeInjectedSon);
|
||||||
DDX_Check(pDX, IDC_STRESSRESOURCES, cTarget->m_StressResources);
|
DDX_Check(pDX, IDC_STRESSRESOURCES, cTarget->m_StressResources);
|
||||||
DDX_Check(pDX, IDC_NOSYSTEMMEMORY, cTarget->m_NoSystemMemory);
|
DDX_Check(pDX, IDC_NOSYSTEMMEMORY, cTarget->m_NoSystemMemory);
|
||||||
DDX_Check(pDX, IDC_NOSYSTEMEMULATED, cTarget->m_NoSystemEmulated);
|
|
||||||
DDX_Check(pDX, IDC_GSKYHACK, cTarget->m_GSkyHack);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BEGIN_MESSAGE_MAP(CTabDebug, CDialog)
|
BEGIN_MESSAGE_MAP(CTabDebug, CDialog)
|
||||||
|
@ -34,6 +34,7 @@ void CTabDirect3D::DoDataExchange(CDataExchange* pDX)
|
|||||||
DDX_Check(pDX, IDC_NOD3DRESET, cTarget->m_NoD3DReset);
|
DDX_Check(pDX, IDC_NOD3DRESET, cTarget->m_NoD3DReset);
|
||||||
DDX_Check(pDX, IDC_SUPPRESSD3DEXT, cTarget->m_SuppressD3DExt);
|
DDX_Check(pDX, IDC_SUPPRESSD3DEXT, cTarget->m_SuppressD3DExt);
|
||||||
DDX_Check(pDX, IDC_FORCESHEL, cTarget->m_ForcesHEL);
|
DDX_Check(pDX, IDC_FORCESHEL, cTarget->m_ForcesHEL);
|
||||||
|
DDX_Check(pDX, IDC_NOSYSTEMEMULATED, cTarget->m_NoSystemEmulated);
|
||||||
|
|
||||||
// Texture management
|
// Texture management
|
||||||
DDX_Radio(pDX, IDC_TEXTURENONE, cTarget->m_TextureHandling);
|
DDX_Radio(pDX, IDC_TEXTURENONE, cTarget->m_TextureHandling);
|
||||||
|
@ -104,7 +104,6 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
|
|||||||
m_DisableGammaRamp = FALSE;
|
m_DisableGammaRamp = FALSE;
|
||||||
m_AutoRefresh = FALSE;
|
m_AutoRefresh = FALSE;
|
||||||
m_TextureFormat = FALSE;
|
m_TextureFormat = FALSE;
|
||||||
m_GSkyHack = FALSE;
|
|
||||||
m_FixWinFrame = FALSE;
|
m_FixWinFrame = FALSE;
|
||||||
m_EnableClipping = FALSE;
|
m_EnableClipping = FALSE;
|
||||||
m_CursorClipping = FALSE;
|
m_CursorClipping = FALSE;
|
||||||
|
@ -80,7 +80,6 @@ public:
|
|||||||
BOOL m_DisableGammaRamp;
|
BOOL m_DisableGammaRamp;
|
||||||
BOOL m_AutoRefresh;
|
BOOL m_AutoRefresh;
|
||||||
BOOL m_TextureFormat;
|
BOOL m_TextureFormat;
|
||||||
BOOL m_GSkyHack;
|
|
||||||
BOOL m_FixWinFrame;
|
BOOL m_FixWinFrame;
|
||||||
BOOL m_EnableClipping;
|
BOOL m_EnableClipping;
|
||||||
BOOL m_CursorClipping;
|
BOOL m_CursorClipping;
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -300,7 +300,6 @@ static void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
|
|||||||
if(dlg->m_DisableGammaRamp) t->flags2 |= DISABLEGAMMARAMP;
|
if(dlg->m_DisableGammaRamp) t->flags2 |= DISABLEGAMMARAMP;
|
||||||
if(dlg->m_AutoRefresh) t->flags |= AUTOREFRESH;
|
if(dlg->m_AutoRefresh) t->flags |= AUTOREFRESH;
|
||||||
if(dlg->m_TextureFormat) t->flags5 |= TEXTUREFORMAT;
|
if(dlg->m_TextureFormat) t->flags5 |= TEXTUREFORMAT;
|
||||||
if(dlg->m_GSkyHack) t->flags5 |= GSKYHACK;
|
|
||||||
if(dlg->m_FixWinFrame) t->flags |= FIXWINFRAME;
|
if(dlg->m_FixWinFrame) t->flags |= FIXWINFRAME;
|
||||||
if(dlg->m_EnableClipping) t->flags |= ENABLECLIPPING;
|
if(dlg->m_EnableClipping) t->flags |= ENABLECLIPPING;
|
||||||
if(dlg->m_CursorClipping) t->flags |= CLIPCURSOR;
|
if(dlg->m_CursorClipping) t->flags |= CLIPCURSOR;
|
||||||
@ -519,7 +518,6 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
|
|||||||
dlg->m_DisableGammaRamp = t->flags2 & DISABLEGAMMARAMP ? 1 : 0;
|
dlg->m_DisableGammaRamp = t->flags2 & DISABLEGAMMARAMP ? 1 : 0;
|
||||||
dlg->m_AutoRefresh = t->flags & AUTOREFRESH ? 1 : 0;
|
dlg->m_AutoRefresh = t->flags & AUTOREFRESH ? 1 : 0;
|
||||||
dlg->m_TextureFormat = t->flags5 & TEXTUREFORMAT ? 1 : 0;
|
dlg->m_TextureFormat = t->flags5 & TEXTUREFORMAT ? 1 : 0;
|
||||||
dlg->m_GSkyHack = t->flags5 & GSKYHACK ? 1 : 0;
|
|
||||||
dlg->m_FixWinFrame = t->flags & FIXWINFRAME ? 1 : 0;
|
dlg->m_FixWinFrame = t->flags & FIXWINFRAME ? 1 : 0;
|
||||||
dlg->m_EnableClipping = t->flags & ENABLECLIPPING ? 1 : 0;
|
dlg->m_EnableClipping = t->flags & ENABLECLIPPING ? 1 : 0;
|
||||||
dlg->m_CursorClipping = t->flags & CLIPCURSOR ? 1 : 0;
|
dlg->m_CursorClipping = t->flags & CLIPCURSOR ? 1 : 0;
|
||||||
|
BIN
host/resource
BIN
host/resource
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user