1
0
mirror of https://github.com/DxWnd/DxWnd.reloaded synced 2024-12-30 09:25:35 +01:00

v2_03_99_srcb3

Former-commit-id: d636adca44c0d58a02cbd89845da28e2b8b616a8
This commit is contained in:
gho tik 2016-06-12 12:48:33 -04:00 committed by Refael ACkermann
parent f37215c5dc
commit ad7dcb62d7
23 changed files with 238 additions and 129 deletions

View File

@ -27,7 +27,7 @@
#define FIXWINFRAME 0x00002000
#define HIDEHWCURSOR 0x00004000
#define SLOWDOWN 0x00008000
#define DISABLECLIPPING 0x00010000
#define ENABLECLIPPING 0x00010000
#define LOCKWINSTYLE 0x00020000
#define MAPGDITOPRIMARY 0x00040000
#define FIXTEXTOUT 0x00080000
@ -255,8 +255,6 @@
#define FORCENOVSYNC 0x00000008 // Forces NO hardware VSync
#define VSYNCSCANLINE 0x00000010 // Activates WaitForVerticalBlank algorythm based on reaching a given scan line
#define TRIMTEXTUREFORMATS 0x00000020 // Emulates "DirectXTrimTextureFormats" shim to fix textures in Heavy Gear II
#define NOHALDEVICE 0x00000040 // Simulates a situation of lack of 3D hardware support, like in presence of remote desktop
#define CLIPLOCKED 0x00000080 // never destroy cursor clipper on window move events ....
// logging Tflags DWORD:
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general
@ -357,7 +355,6 @@ void OutTraceHex(BYTE *, int);
void *HookAPI(HMODULE, char *, void *, const char *, void *);
void AdjustWindowFrame(HWND, DWORD, DWORD);
char *hexdump(unsigned char *, int);
void HexTrace(unsigned char *, int);
LRESULT CALLBACK extWindowProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK extChildWindowProc(HWND, UINT, WPARAM, LPARAM);

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bb1649c75e814ca6706d0e6951fb34ade18b013d75a1c8d2afce83c6c8143042
size 709632
oid sha256:d026c47f6a552131246762e9b1f03400fa5031ea484d5d72ffb555a8df94f99a
size 709120

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ef6bb4b84f380a5e3e519d08ce9fca17bb67783b32655728f48197f403477976
size 668160
oid sha256:7f6b72cb6b9aacee5a608ebf28b57d92c9f814cb8b8e300ab867338c5abed17d
size 667648

184
build/dxwnd.ini Normal file
View File

@ -0,0 +1,184 @@
[window]
exportpath=D:\DxWnd\exports.ok\
posx=-1195
posy=557
sizx=320
sizy=200
debug=0
autohide=0
checkadmin=0
namefromfolder=1
multiprocesshook=0
warnonexit=0
updatepaths=1
defaultcoord=0
defaultposx=50
defaultposy=50
defaultsizx=800
defaultsizy=600
exepath=D:\Games\Heavy Gear 2\
[target]
title0=Star Trek Armada
path0=D:\Games\Star Trek Armada\Armada.exe
startfolder0=
launchpath0=
module0=
opengllib0=
notes0=
registry0=
ver0=0
monitorid0=0
coord0=0
flag0=-1474297757
flagg0=1544552448
flagh0=73744
flagi0=136314884
flagj0=4224
flagk0=69632
flagl0=0
flagm0=0
tflag0=-2147477245
dflag0=0
posx0=100
posy0=100
sizx0=800
sizy0=600
maxfps0=0
initts0=0
winver0=0
maxres0=-1
swapeffect0=0
maxddinterface0=7
slowratio0=1
scanline0=1
initresw0=0
initresh0=0
title1=Jazz Jackrabbit 2
path1=D:\Games\Jazz Jackrabbit 2\Jazz2.exe
startfolder1=
launchpath1=
module1=
opengllib1=
notes1=
registry1=
ver1=0
monitorid1=-1
coord1=0
flag1=673185826
flagg1=1207959552
flagh1=8212
flagi1=138412036
flagj1=5248
flagk1=65536
flagl1=0
flagm1=0
tflag1=-2147477245
dflag1=0
posx1=50
posy1=50
sizx1=800
sizy1=600
maxfps1=0
initts1=0
winver1=0
maxres1=-1
swapeffect1=0
maxddinterface1=7
slowratio1=2
scanline1=0
initresw1=800
initresh1=600
title2=Armor Command
path2=D:\Games\Armor Command\armrcmd.exe
startfolder2=
launchpath2=
module2=
opengllib2=
notes2=Needs a copy of S3DTKW.dll in game folder.\n
registry2=
ver2=0
monitorid2=-1
coord2=0
flag2=673185826
flagg2=1207959552
flagh2=8212
flagi2=138412036
flagj2=4224
flagk2=65536
flagl2=268435456
flagm2=0
tflag2=0
dflag2=0
posx2=50
posy2=50
sizx2=800
sizy2=600
maxfps2=0
initts2=0
winver2=0
maxres2=-1
swapeffect2=0
maxddinterface2=7
slowratio2=2
scanline2=0
initresw2=800
initresh2=600
title3=Heavy Gear 2
path3=D:\Games\Heavy Gear 2\Heavy Gear 2.exe
startfolder3=
launchpath3=
module3=
opengllib3=
notes3=
registry3=
ver3=0
monitorid3=-1
coord3=0
flag3=673185826
flagg3=1208221696
flagh3=8212
flagi3=-2009071612
flagj3=4224
flagk3=98304
flagl3=0
flagm3=0
tflag3=0
dflag3=0
posx3=50
posy3=50
sizx3=800
sizy3=600
maxfps3=0
initts3=0
winver3=0
maxres3=-1
swapeffect3=0
maxddinterface3=7
slowratio3=2
scanline3=0
initresw3=800
initresh3=600
[texture]
MinTexX=0
MinTexY=0
MaxTexX=0
MaxTexY=0
[keymapping]
timetoggle=
timefast=
timeslow=
altf4=
cliptoggle=
refresh=
logtoggle=
plogtoggle=
fpstoggle=
printscreen=
corner=
freezetime=
fullscreen=
workarea=
desktop=
minimize=
restore=
kill=

View File

@ -1375,7 +1375,6 @@ fix: fixed the policy for redrecting the WindowProc routine. Fixes "Ultimate Spi
v2.03.99
fix: unwanted hook to directsound when passing by CoCreateInstance()
fix: transient mode, now checks for both the target and the launcher to be dead before terminating
add: Direct3D TRIMTEXTUREFORMAT flag, to mimic MS "DirectXTrimTextureFormat" shim. Fixes problems in "Heavy Gear 2" and "Star Wars: Rogue Squardon 3D".
add: Direct3D TRIMTEXTUREFORMAT flag, to mimic MS "DirectXTrimTextureFormat" shim. Fixes problems in ....
add: D3DDevice GetCaps hooking and full dump of D3DDevice capabilities
add: "No HAL Device" flag, making it unavailable the IID_Direct3DHALDevice device. Fixes "Grand Prix World" when the 3D car models are invisible.
add: reorganization of mouse clipper fields, with the addition of LOCK mode (useful for Tribal Rage)

View File

@ -1555,7 +1555,6 @@ static void HandleCapsD(char *sLabel, LPDDCAPS c)
sLabel, c->dwVidMemTotal, c->dwVidMemFree, c->dwZBufferBitDepths, ExplainZBufferBitDepths(c->dwZBufferBitDepths));
OutTraceDDRAW("GetCaps(%s): MaxVisibleOverlays=%x CurrVisibleOverlays=%x\n",
sLabel, c->dwMaxVisibleOverlays, c->dwCurrVisibleOverlays);
if(IsDebug) HexTrace((unsigned char *)c, c->dwSize);
if(dxw.bHintActive){
if(c->dwVidMemTotal > dwMaxMem) ShowHint(HINT_LIMITMEM);
@ -1592,14 +1591,13 @@ static HRESULT WINAPI extGetCapsD(int dxversion, GetCapsD_Type pGetCapsD, LPDIRE
HRESULT res;
OutTraceDDRAW("GetCaps(D%d): lpdd=%x %s %s\n", dxversion, lpdd, c1?"c1":"NULL", c2?"c2":"NULL");
res=(*pGetCapsD)(lpdd, c1, c2);
if(res) {
if(res)
OutTraceE("GetCaps(D): ERROR res=%x(%s)\n", res, ExplainDDError(res));
return res;
else {
if (c1) HandleCapsD("D-HW", c1);
if (c2) HandleCapsD("D-SW", c2);
}
if (c1) HandleCapsD("D-HW", c1);
if (c2) HandleCapsD("D-SW", c2);
if((dxw.dwFlags3 & FORCESHEL) && c1) {
DDCAPS_DX7 swcaps; // DDCAPS_DX7 because it is the bigger in size
int size;
@ -1621,20 +1619,6 @@ static HRESULT WINAPI extGetCapsD(int dxversion, GetCapsD_Type pGetCapsD, LPDIRE
if (c2) HandleCapsD("D-SW(fixed)", c2);
}
if((dxw.dwFlags8 & NOHALDEVICE) && c1) {
OutTraceDW("GetCaps(D): NOHALDEVICE\n");
c1->ddsCaps.dwCaps = DDCAPS_NOHARDWARE;
c1->ddsCaps.dwCaps2 = DDCAPS2_CANRENDERWINDOWED;
c1->dwPalCaps = 0;
c1->dwFXCaps = 0;
c1->dwFXAlphaCaps = 0;
c1->dwCKeyCaps = 0;
c1->dwVidMemTotal = c1->dwVidMemFree = 0;
c1->dwZBufferBitDepths = 0;
c1->dwMaxVisibleOverlays = c1->dwCurrVisibleOverlays = 0;
HandleCapsD("D-HW(NoHAL)", c1);
}
if((dxw.dwFlags3 & MINIMALCAPS)) SetMinimalCaps(c1, c2);
if(dxw.dwFlags3 & CAPMASK) MaskCapsD(c1, c2);
@ -2618,13 +2602,6 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet
return DDERR_NOTFOUND;
}
}
if((dxw.dwFlags8 & NOHALDEVICE) && (lpddsc->dwCaps & DDSCAPS_ZBUFFER)){
// tested with "Grand Prix World": if a ZBUFFER is returned, CreateDevice fails!
*lplpddas = NULL;
OutTraceDW("GetAttachedSurface(%d): NOHALDEVICE no attached ZBUFFER\n", dxversion);
return DDERR_NOTFOUND;
}
}
else {
// Virtual primary surfaces are created with no DDSCAPS_3DDEVICE caps, so don't look for it ....
@ -4820,7 +4797,6 @@ static HRESULT WINAPI extGetCapsS(int dxInterface, GetCapsS_Type pGetCapsS, LPDI
caps->dwCaps |= (DDSCAPS_BACKBUFFER|DDSCAPS_VIDEOMEMORY|DDSCAPS_FLIP|DDSCAPS_LOCALVIDMEM); // you never know....
caps->dwCaps &= ~(DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN); // backbuffer surfaces can't be this way
if(caps->dwCaps & DDSCAPS_3DDEVICE) caps->dwCaps |= DDSCAPS_LOCALVIDMEM;
//if(caps->dwCaps & DDSCAPS_3DDEVICE) caps->dwCaps |= (DDSCAPS_LOCALVIDMEM | DDSCAPS_COMPLEX);
}
// v2.03.82: fixed logic for ZBUFFER capabilities: "The Creed" may have two, in SYSTEMMEMORY or in VIDEOMEMORY ...

View File

@ -67,7 +67,7 @@ static char *FlagNames[32]={
"HOOKDI", "MODIFYMOUSE", "HANDLEEXCEPTIONS", "SAVELOAD",
"EMULATEBUFFER", "HOOKDI8", "BLITFROMBACKBUFFER", "SUPPRESSCLIPPING",
"AUTOREFRESH", "FIXWINFRAME", "HIDEHWCURSOR", "SLOWDOWN",
"DISABLECLIPPING", "LOCKWINSTYLE", "MAPGDITOPRIMARY", "FIXTEXTOUT",
"ENABLECLIPPING", "LOCKWINSTYLE", "MAPGDITOPRIMARY", "FIXTEXTOUT",
"KEEPCURSORWITHIN", "USERGB565", "SUPPRESSDXERRORS", "PREVENTMAXIMIZE",
"LOCKEDSURFACE", "FIXPARENTWIN", "SWITCHVIDEOMEMORY", "CLIENTREMAPPING",
"HANDLEALTF4", "LOCKWINPOS", "HOOKCHILDWIN", "MESSAGEPROC"
@ -141,7 +141,7 @@ static char *Flag7Names[32]={
static char *Flag8Names[32]={
"FORCEWAIT", "FORCENOWAIT", "FORCEVSYNC", "FORCENOVSYNC",
"VSYNCSCANLINES", "TRIMTEXTUREFORMATS", "NOHALDEVICE", "CLIPLOCK",
"VSYNCSCANLINES", "TRIMTEXTUREFORMATS", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", "",
@ -277,23 +277,6 @@ void OutTrace(const char *format, ...)
dxw.dwTFlags = tFlags; // restore settings
}
void HexTrace(unsigned char *buf, int len)
{
char line[3*32 + 40];
char hex[6];
int count=0;
while(len){
sprintf(line,"%04X: ", count);
for(int i=32; i && len; i--, len--, buf++){
sprintf(hex, "%02X.", *buf);
strcat(line, hex);
}
strcat(line, "\n");
OutTrace(line);
count += 32;
}
}
// from MSDN:
// GetVersionEx may be altered or unavailable for releases after Windows 8.1. Instead, use the Version Helper functions
//

View File

@ -363,7 +363,7 @@ POINT dxwCore::FixCursorPos(POINT prev)
if (h) curr.y = (curr.y * dxw.GetScreenHeight()) / h;
}
if((dxw.dwFlags1 & DISABLECLIPPING) && lpClipRegion){
if((dxw.dwFlags1 & ENABLECLIPPING) && lpClipRegion){
// v2.1.93:
// in clipping mode, avoid the cursor position to lay outside the valid rect
// note 1: the rect follow the convention and valid coord lay between left to righ-1,

View File

@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "TlHelp32.h"
#define VERSION "2.03.99"
#define VERSION "2.03.99.b3"
#define DDTHREADLOCK 1
//#define LOCKTHREADS

Binary file not shown.

View File

@ -800,6 +800,23 @@ typedef struct {
LPVOID arg;
} CallbackArg7;
static void HexDump(unsigned char *buf, int len)
{
char line[3*32 + 40];
char hex[6];
int count=0;
while(len){
sprintf(line,"%04X: ", count);
for(int i=32; i && len; i--, len--, buf++){
sprintf(hex, "%02X.", *buf);
strcat(line, hex);
}
strcat(line, "\n");
OutTrace(line);
count += 32;
}
}
static void DumpD3DDeviceDesc(LPD3DDEVICEDESC d3, char *label)
{
if(IsTraceD3D){
@ -817,7 +834,7 @@ static void DumpD3DDeviceDesc(LPD3DDEVICEDESC d3, char *label)
if(d3->dwFlags & D3DDD_MAXBUFFERSIZE) OutTrace("MaxBufferSize=%d ", d3->dwMaxBufferSize);
if(d3->dwFlags & D3DDD_MAXVERTEXCOUNT) OutTrace("MaxVertexCount=%d ", d3->dwMaxVertexCount);
OutTrace("Texture min=(%dx%d) max=(%dx%d)\n", d3->dwMinTextureWidth, d3->dwMinTextureHeight, d3->dwMaxTextureWidth, d3->dwMaxTextureHeight);
HexTrace((unsigned char *)d3, d3->dwSize);
HexDump((unsigned char *)d3, d3->dwSize);
}
else
OutTrace("EnumDevices: CALLBACK dev=%s ddesc=NULL\n", label);
@ -844,7 +861,7 @@ static void DumpD3DDeviceDesc7(LPD3DDEVICEDESC7 d3, char *label)
OutTrace("Texture min=(%dx%d) max=(%dx%d)\n", d3->dwMinTextureWidth, d3->dwMinTextureHeight, d3->dwMaxTextureWidth, d3->dwMaxTextureHeight);
// to be completed ....
//OutTrace("\n");
HexTrace((unsigned char *)d3, sizeof(D3DDEVICEDESC7));
HexDump((unsigned char *)d3, sizeof(D3DDEVICEDESC7));
}
else
OutTrace("EnumDevices: CALLBACK dev=%s ddesc=NULL\n", label);
@ -857,14 +874,6 @@ HRESULT WINAPI extDeviceProxy(GUID FAR *lpGuid, LPSTR lpDeviceDescription, LPSTR
OutTraceD3D("EnumDevices: CALLBACK GUID=%x(%s) DeviceDescription=\"%s\", DeviceName=\"%s\", arg=%x\n", lpGuid->Data1, ExplainGUID(lpGuid), lpDeviceDescription, lpDeviceName, ((CallbackArg *)arg)->arg);
DumpD3DDeviceDesc(lpd3ddd1, "HWDEV");
DumpD3DDeviceDesc(lpd3ddd2, "SWDEV");
// IID_IDirect3DHALDevice = 0x84e63de0....
if((dxw.dwFlags8 & NOHALDEVICE) && (lpGuid->Data1 == 0x84e63de0))
{
OutTraceDW("EnumDevices: D3DHALDEVICE SKIP\n");
return TRUE;
}
if(dxw.dwFlags4 & NOPOWER2FIX){
D3DDEVICEDESC lpd3ddd1fix, lpd3ddd2fix;
if(lpd3ddd1) memcpy(&lpd3ddd1fix, lpd3ddd1, sizeof(D3DDEVICEDESC));
@ -887,9 +896,6 @@ HRESULT WINAPI extDeviceProxy7(LPSTR lpDeviceDescription, LPSTR lpDeviceName, LP
HRESULT res;
OutTraceD3D("EnumDevices(D3D7): CALLBACK DeviceDescription=\"%s\", DeviceName=\"%s\", arg=%x\n", lpDeviceDescription, lpDeviceName, ((CallbackArg *)arg)->arg);
DumpD3DDeviceDesc((LPD3DDEVICEDESC)lpd3ddd, "DEV");
// to do: NOHALDEVICE handling, we have no GUID here!
if(dxw.dwFlags4 & NOPOWER2FIX){
D3DDEVICEDESC7 lpd3dddfix;
if(lpd3ddd) memcpy(&lpd3dddfix, lpd3ddd, sizeof(D3DDEVICEDESC7));
@ -1124,12 +1130,6 @@ HRESULT WINAPI extInitializeVP(void *lpvp, LPDIRECT3D lpd3d)
return res;
}
#ifndef D3DERR_NOTAVAILABLE
#define _FACD3D 0x876
#define D3DERR_NOTAVAILABLE MAKE_HRESULT(1, _FACD3D, 2154)
#endif
HRESULT WINAPI extCreateDevice2(void *lpd3d, REFCLSID Guid, LPDIRECTDRAWSURFACE lpdds, LPDIRECT3DDEVICE2 *lplpd3dd)
{
HRESULT res;
@ -1137,11 +1137,6 @@ HRESULT WINAPI extCreateDevice2(void *lpd3d, REFCLSID Guid, LPDIRECTDRAWSURFACE
OutTraceD3D("CreateDevice(D3D2): d3d=%x GUID=%x(%s) lpdds=%x%s\n",
lpd3d, Guid.Data1, ExplainGUID((GUID *)&Guid), lpdds, dxwss.ExplainSurfaceRole((LPDIRECTDRAWSURFACE)lpdds));
if((dxw.dwFlags8 & NOHALDEVICE) && (Guid.Data1 == 0x84e63de0)) {
OutTraceDW("CreateDevice(D3D2): D3DHALDEVICE SKIP\n");
return D3DERR_NOTAVAILABLE;
}
res=(*pCreateDevice2)(lpd3d, Guid, lpdds, lplpd3dd);
if(res!=DD_OK) {
OutTraceE("CreateDevice(D3D2) ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
@ -1161,11 +1156,6 @@ HRESULT WINAPI extCreateDevice3(void *lpd3d, REFCLSID Guid, LPDIRECTDRAWSURFACE4
OutTraceD3D("CreateDevice(D3D3): d3d=%x GUID=%x(%s) lpdds=%x%s\n",
lpd3d, Guid.Data1, ExplainGUID((GUID *)&Guid), lpdds, dxwss.ExplainSurfaceRole((LPDIRECTDRAWSURFACE)lpdds));
if((dxw.dwFlags8 & NOHALDEVICE) && (Guid.Data1 == 0x84e63de0)) {
OutTraceDW("CreateDevice(D3D3): D3DHALDEVICE SKIP\n");
return D3DERR_NOTAVAILABLE;
}
res=(*pCreateDevice3)(lpd3d, Guid, lpdds, lplpd3dd, unk);
if(res!=DD_OK) {
OutTraceE("CreateDevice(D3D3) ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);

View File

@ -2121,8 +2121,7 @@ BOOL WINAPI extClipCursor(RECT *lpRectArg)
OutTrace("ClipCursor: rect=(NULL)\n");
}
if (!(dxw.dwFlags1 & DISABLECLIPPING)) return TRUE;
if ((dxw.dwFlags8 & CLIPLOCKED) && (lpRectArg == NULL)) return TRUE;
if (!(dxw.dwFlags1 & ENABLECLIPPING)) return 1;
if(lpRectArg){
Rect=*lpRectArg;
@ -2151,12 +2150,12 @@ BOOL WINAPI extClipCursor(RECT *lpRectArg)
BOOL WINAPI extGetClipCursor(LPRECT lpRect)
{
// v2.1.93: if DISABLECLIPPING, return the saved clip rect coordinates
// v2.1.93: if ENABLECLIPPING, return the saved clip rect coordinates
BOOL ret;
// proxy....
if (!(dxw.dwFlags1 & DISABLECLIPPING)) {
if (!(dxw.dwFlags1 & ENABLECLIPPING)) {
ret=(*pGetClipCursor)(lpRect);
// v2.03.11: fix for "SubCulture" mouse movement
if(lpRect && dxw.Windowize) *lpRect = dxw.GetScreenRect();

View File

@ -384,8 +384,8 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
dxw.dwFlags1 &= ~LOCKWINPOS;
}
while((*pShowCursor)(1) < 0);
if((dxw.dwFlags1 & CLIPCURSOR) && !(dxw.dwFlags8 & CLIPLOCKED)) dxw.EraseClipCursor();
if(dxw.dwFlags1 & DISABLECLIPPING) dxw.EraseClipCursor();
if(dxw.dwFlags1 & CLIPCURSOR) dxw.EraseClipCursor();
if(dxw.dwFlags1 & ENABLECLIPPING) (*pClipCursor)(NULL);
break;
case WM_EXITSIZEMOVE:
if(IsToBeLocked){
@ -394,7 +394,7 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
}
if((dxw.dwFlags1 & HIDEHWCURSOR) && dxw.IsFullScreen()) while((*pShowCursor)(0) >= 0);
if(dxw.dwFlags2 & SHOWHWCURSOR) while((*pShowCursor)(1) < 0);
if(dxw.dwFlags1 & DISABLECLIPPING) extClipCursor(lpClipRegion);
if(dxw.dwFlags1 & ENABLECLIPPING) extClipCursor(lpClipRegion);
if(dxw.dwFlags2 & REFRESHONRESIZE) dxw.ScreenRefresh();
if(dxw.dwFlags4 & HIDEDESKTOP) dxw.HideDesktop(dxw.GethWnd());
if(dxw.dwFlags5 & CENTERTOWIN) {
@ -489,12 +489,12 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
case WM_SETFOCUS:
OutTraceDW("WindowProc: hwnd=%x GOT FOCUS\n", hwnd);
if(dxw.dwFlags1 & CLIPCURSOR) dxw.SetClipCursor();
if (dxw.dwFlags1 & DISABLECLIPPING) extClipCursor(lpClipRegion);
if (dxw.dwFlags1 & ENABLECLIPPING) extClipCursor(lpClipRegion);
break;
case WM_KILLFOCUS:
OutTraceDW("WindowProc: hwnd=%x LOST FOCUS\n", hwnd);
if((dxw.dwFlags1 & CLIPCURSOR) && !(dxw.dwFlags8 & CLIPLOCKED)) dxw.EraseClipCursor();
if (dxw.dwFlags1 & DISABLECLIPPING) dxw.EraseClipCursor();
if (dxw.dwFlags1 & CLIPCURSOR) dxw.EraseClipCursor();
if (dxw.dwFlags1 & ENABLECLIPPING) (*pClipCursor)(NULL);
break;
case WM_SYSCOMMAND:
// v2.03.56.fix1 by FunkyFr3sh: ensure that "C&C Red Alert 2" receives the WM_SYSCOMMAND / SC_CLOSE message

View File

@ -35,7 +35,6 @@ void CTabDirectX2::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_FIXREFCOUNTER, cTarget->m_FixRefCounter);
DDX_Check(pDX, IDC_RETURNNULLREF, cTarget->m_ReturnNullRef);
DDX_Check(pDX, IDC_FORCESHEL, cTarget->m_ForcesHEL);
DDX_Check(pDX, IDC_NOHALDEVICE, cTarget->m_NoHALDevice);
DDX_Check(pDX, IDC_MINIMALCAPS, cTarget->m_MinimalCaps);
DDX_Check(pDX, IDC_SETZBUFFERBITDEPTHS, cTarget->m_SetZBufferBitDepths);
DDX_Check(pDX, IDC_DEINTERLACE, cTarget->m_Deinterlace);

View File

@ -31,8 +31,8 @@ void CTabInput::DoDataExchange(CDataExchange* pDX)
DDX_Radio(pDX, IDC_CURSORAUTOMATIC, cTarget->m_MouseVisibility);
// Cursor Handling
DDX_Check(pDX, IDC_MODIFYMOUSE, cTarget->m_ModifyMouse);
//DDX_Check(pDX, IDC_DISABLECLIPPING, cTarget->m_EnableClipping);
//DDX_Check(pDX, IDC_CLIPCURSOR, cTarget->m_CursorClipping);
DDX_Check(pDX, IDC_ENABLECLIPPING, cTarget->m_EnableClipping);
DDX_Check(pDX, IDC_CLIPCURSOR, cTarget->m_CursorClipping);
DDX_Check(pDX, IDC_KEEPCURSORWITHIN, cTarget->m_KeepCursorWithin);
DDX_Check(pDX, IDC_KEEPCURSORFIXED, cTarget->m_KeepCursorFixed);
DDX_Check(pDX, IDC_MESSAGEPROC, cTarget->m_MessageProc);
@ -41,8 +41,7 @@ void CTabInput::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_SLOW, cTarget->m_SlowDown);
DDX_Check(pDX, IDC_RELEASEMOUSE, cTarget->m_ReleaseMouse);
DDX_Check(pDX, IDC_VIRTUALJOYSTICK, cTarget->m_VirtualJoystick);
// Cursor Clipper
DDX_Radio(pDX, IDC_CLIPPERAUTO, cTarget->m_MouseClipper);
//DDX_Check(pDX, IDC_FRAMECOMPENSATION, cTarget->m_FrameCompensation);
// DirectInput
DDX_Check(pDX, IDC_HOOKDI, cTarget->m_HookDI);
DDX_Check(pDX, IDC_HOOKDI8, cTarget->m_HookDI8);

View File

@ -31,7 +31,6 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
m_DxFilterMode = 0; // default: ddraw filtering
m_DCEmulationMode = 0; // default: no emulation
m_MouseVisibility = 0;
m_MouseClipper = 0;
m_OffendingMessages = 0;
m_TextureHandling = 0;
m_HookDI = FALSE;
@ -150,8 +149,8 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
m_IndependentRefresh = FALSE;
m_TextureFormat = FALSE;
m_FixWinFrame = FALSE;
//m_EnableClipping = FALSE;
//m_CursorClipping = FALSE;
m_EnableClipping = FALSE;
m_CursorClipping = FALSE;
m_VideoToSystemMem = FALSE;
m_FixTextOut = FALSE;
m_SharedDC = FALSE;

View File

@ -33,7 +33,6 @@ public:
int m_DxFilterMode;
int m_DCEmulationMode;
int m_MouseVisibility;
int m_MouseClipper;
int m_OffendingMessages;
int m_TextureHandling;
int m_SonProcessMode;
@ -111,8 +110,8 @@ public:
BOOL m_IndependentRefresh;
BOOL m_TextureFormat;
BOOL m_FixWinFrame;
//BOOL m_EnableClipping;
//BOOL m_CursorClipping;
BOOL m_EnableClipping;
BOOL m_CursorClipping;
BOOL m_VideoToSystemMem;
BOOL m_FixTextOut;
BOOL m_SharedDC;
@ -235,7 +234,6 @@ public:
BOOL m_DisableDisableAltTab;
BOOL m_NoImagehlp;
BOOL m_ForcesHEL;
BOOL m_NoHALDevice;
BOOL m_MinimalCaps;
BOOL m_SetZBufferBitDepths;
BOOL m_ForcesSwapEffect;

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -277,13 +277,6 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
case 2: t->flags2 |= SHOWHWCURSOR; break;
}
switch(dlg->m_MouseClipper){
case 0: break;
case 1: t->flags |= DISABLECLIPPING; break;
case 2: t->flags |= CLIPCURSOR; break;
case 3: t->flags |= CLIPCURSOR; t->flags8 |= CLIPLOCKED; break;
}
switch(dlg->m_OffendingMessages){
case 0: break;
case 1: t->flags3 |= FILTERMESSAGES; break;
@ -401,7 +394,6 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
if(dlg->m_DisableDisableAltTab) t->flags7 |= DISABLEDISABLEALTTAB;
if(dlg->m_NoImagehlp) t->flags5 |= NOIMAGEHLP;
if(dlg->m_ForcesHEL) t->flags3 |= FORCESHEL;
if(dlg->m_NoHALDevice) t->flags8 |= NOHALDEVICE;
if(dlg->m_MinimalCaps) t->flags3 |= MINIMALCAPS;
if(dlg->m_SetZBufferBitDepths) t->flags6 |= SETZBUFFERBITDEPTHS;
if(dlg->m_ForcesSwapEffect) t->flags6 |= FORCESWAPEFFECT;
@ -435,8 +427,8 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
if(dlg->m_IndependentRefresh) t->flags2 |= INDEPENDENTREFRESH;
if(dlg->m_TextureFormat) t->flags5 |= TEXTUREFORMAT;
if(dlg->m_FixWinFrame) t->flags |= FIXWINFRAME;
//if(dlg->m_EnableClipping) t->flags |= DISABLECLIPPING;
//if(dlg->m_CursorClipping) t->flags |= CLIPCURSOR;
if(dlg->m_EnableClipping) t->flags |= ENABLECLIPPING;
if(dlg->m_CursorClipping) t->flags |= CLIPCURSOR;
if(dlg->m_VideoToSystemMem) t->flags |= SWITCHVIDEOMEMORY;
if(dlg->m_FixTextOut) t->flags |= FIXTEXTOUT;
if(dlg->m_HookGlide) t->flags4 |= HOOKGLIDE;
@ -611,11 +603,6 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
if(t->flags & HIDEHWCURSOR) dlg->m_MouseVisibility = 1;
if(t->flags2 & SHOWHWCURSOR) dlg->m_MouseVisibility = 2;
dlg->m_MouseClipper = 0;
if(t->flags & DISABLECLIPPING) dlg->m_MouseClipper = 1;
if(t->flags & CLIPCURSOR) dlg->m_MouseClipper = 2;
if(t->flags8 & CLIPLOCKED) dlg->m_MouseClipper = 3;
dlg->m_OffendingMessages = 0;
if(t->flags3 & FILTERMESSAGES) dlg->m_OffendingMessages = 1;
if(t->flags3 & DEFAULTMESSAGES) dlg->m_OffendingMessages = 2;
@ -702,7 +689,6 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
dlg->m_DisableDisableAltTab = t->flags7 & DISABLEDISABLEALTTAB ? 1 : 0;
dlg->m_NoImagehlp = t->flags5 & NOIMAGEHLP ? 1 : 0;
dlg->m_ForcesHEL = t->flags3 & FORCESHEL ? 1 : 0;
dlg->m_NoHALDevice = t->flags8 & NOHALDEVICE ? 1 : 0;
dlg->m_MinimalCaps = t->flags3 & MINIMALCAPS ? 1 : 0;
dlg->m_SetZBufferBitDepths = t->flags6 & SETZBUFFERBITDEPTHS ? 1 : 0;
dlg->m_ForcesSwapEffect = t->flags6 & FORCESWAPEFFECT ? 1 : 0;
@ -755,8 +741,8 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
dlg->m_IndependentRefresh = t->flags2 & INDEPENDENTREFRESH ? 1 : 0;
dlg->m_TextureFormat = t->flags5 & TEXTUREFORMAT ? 1 : 0;
dlg->m_FixWinFrame = t->flags & FIXWINFRAME ? 1 : 0;
//dlg->m_EnableClipping = t->flags & DISABLECLIPPING ? 1 : 0;
//dlg->m_CursorClipping = t->flags & CLIPCURSOR ? 1 : 0;
dlg->m_EnableClipping = t->flags & ENABLECLIPPING ? 1 : 0;
dlg->m_CursorClipping = t->flags & CLIPCURSOR ? 1 : 0;
dlg->m_VideoToSystemMem = t->flags & SWITCHVIDEOMEMORY ? 1 : 0;
dlg->m_FixTextOut = t->flags & FIXTEXTOUT ? 1 : 0;
dlg->m_SharedDC = t->flags6 & SHAREDDC ? 1 : 0;

Binary file not shown.

Binary file not shown.