mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_04_12_src
Former-commit-id: 5667f48d49d251adb6e9a8058e4b6943813c5769
This commit is contained in:
parent
bd43384522
commit
80f670b002
@ -274,6 +274,7 @@
|
||||
#define ALLOWSYSMEMON3DDEV 0x00400000 // Suppress DDSCAPS_SYSTEMMEMORY option when DDSCAPS_3DDEVICE is set
|
||||
#define CLIPMENU 0x00800000 // Include window menu in mouse clipper area
|
||||
#define BACKGROUNDPRIORITY 0x01000000 // Lower process priority when in background state
|
||||
#define OFFSCREENZBUFFER 0x02000000 // Allow building plain surfaces and ZBuffer on offscreen videomemory surfaces
|
||||
|
||||
// logging Tflags DWORD:
|
||||
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1409b8473fd9673dda880af142fa01e172890f873b518c82d05214244d7c6514
|
||||
size 786944
|
||||
oid sha256:f4db08ed8206eab319c89f808e3b59311060b13ba6f2f8b01b12f14d78b48926
|
||||
size 787456
|
||||
|
@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0a5afe5a71f0bb24b48a816469f93ffbcf776d16b03d6ad27c411a3e35f5aba9
|
||||
size 676352
|
||||
oid sha256:5789a039f251a7d64e49573c0f7cc63fea3369f091782fb92fe6efb7c899d94a
|
||||
size 675840
|
||||
|
1304
build/dxwnd.ini
Normal file
1304
build/dxwnd.ini
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,15 @@
|
||||
OnRun idx=36 prog="D:\Games\International Football 2000\MSIF2000.ICD" unhooked=0
|
||||
setwindowshook mode
|
||||
OnRun idx=36 prog="D:\Games\International Football 2000\MSIF2000.ICD" unhooked=0
|
||||
OnRun idx=19 prog="F:\Games\tourcar\tourcars.exe" unhooked=0
|
||||
self elevation
|
||||
setwindowshook mode
|
||||
OnRun idx=37 prog="F:\Games\tourcar\tourcars.exe" unhooked=0
|
||||
self elevation
|
||||
setwindowshook mode
|
||||
OnRun idx=36 prog="F:\Games\tourcar\tourcars.exe" unhooked=0
|
||||
self elevation
|
||||
setwindowshook mode
|
||||
OnRun idx=36 prog="F:\Games\tourcar\tourcars.exe" unhooked=0
|
||||
self elevation
|
||||
setwindowshook mode
|
||||
OnRun idx=36 prog="F:\Games\tourcar\tourcars.exe" unhooked=0
|
||||
self elevation
|
||||
setwindowshook mode
|
||||
|
@ -1520,3 +1520,10 @@ fix: fixed AdjustWindowRect/Ex() wrapper to always neutralize window changes (go
|
||||
fix: fixed message processing for FORCEWINRESIZE: now "Man TT Superbike" can be moved and resized (at least on Win10).
|
||||
add: added BACKGROUNDPRIORITY handling
|
||||
add: added CLIPMENU handling
|
||||
|
||||
v2.04.12
|
||||
GUI:
|
||||
add: "Support offscreen 3D" flag (OFFSCREENZBUFFER)
|
||||
DLL:
|
||||
fix: recursion bug in CreateWindowExA hooker
|
||||
add: OFFSCREENZBUFFER flag
|
@ -285,6 +285,7 @@ HRESULT WINAPI extSetSurfaceDesc7(LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, DWORD);
|
||||
// DirectDrawClipper
|
||||
HRESULT WINAPI extReleaseC(LPDIRECTDRAWCLIPPER);
|
||||
HRESULT WINAPI extGetClipList(LPDIRECTDRAWCLIPPER, LPRECT, LPRGNDATA, LPDWORD);
|
||||
HRESULT WINAPI extSetClipList(LPDIRECTDRAWCLIPPER, LPRGNDATA, DWORD);
|
||||
HRESULT WINAPI extSetHWnd(LPDIRECTDRAWCLIPPER, DWORD, HWND);
|
||||
|
||||
// DirectDrawPalette
|
||||
@ -399,10 +400,10 @@ QueryInterface_Type pQueryInterfaceC;
|
||||
AddRefC_Type pAddRefC;
|
||||
ReleaseC_Type pReleaseC;
|
||||
GetClipList_Type pGetClipList;
|
||||
SetClipList_Type pSetClipList;
|
||||
GetHWnd_Type pGetHWnd;
|
||||
InitializeC_Type pInitializeC;
|
||||
IsClipListChanged_Type pIsClipListChanged;
|
||||
SetClipList_Type pSetClipList;
|
||||
SetHWnd_Type pSetHWnd;
|
||||
|
||||
/* DirectDrawPalette hook pointers */
|
||||
@ -1326,6 +1327,7 @@ static void HookDDClipper(LPDIRECTDRAWCLIPPER FAR* lplpDDClipper)
|
||||
|
||||
SetHook((void *)(**(DWORD **)lplpDDClipper + 8), extReleaseC, (void **)&pReleaseC, "Release(C)");
|
||||
SetHook((void *)(**(DWORD **)lplpDDClipper + 12), extGetClipList, (void **)&pGetClipList, "GetClipList(C)");
|
||||
SetHook((void *)(**(DWORD **)lplpDDClipper + 28), extSetClipList, (void **)&pSetClipList, "SetClipList(C)");
|
||||
SetHook((void *)(**(DWORD **)lplpDDClipper + 32), extSetHWnd, (void **)&pSetHWnd, "SetHWnd(C)");
|
||||
}
|
||||
|
||||
@ -2315,7 +2317,7 @@ HRESULT WINAPI extSetCooperativeLevel4(LPDIRECTDRAW lpdd, HWND hwnd, DWORD dwfla
|
||||
HRESULT WINAPI extSetCooperativeLevel7(LPDIRECTDRAW lpdd, HWND hwnd, DWORD dwflags)
|
||||
{ return extSetCooperativeLevel(7, pSetCooperativeLevel7, lpdd, hwnd, dwflags); }
|
||||
|
||||
void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
void FixSurfaceCapsInner(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
{
|
||||
// rules of thumb:
|
||||
// 1) textures should be left untouched (switching to SYSTEMMEMORY when forcing HEL may even fail!)
|
||||
@ -2328,9 +2330,6 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
|
||||
if(!(lpddsd->dwFlags & DDSD_CAPS)) lpddsd->ddsCaps.dwCaps = 0;
|
||||
|
||||
OutTraceDW("FixSurfaceCaps: Flags=%x(%s) Caps=%x(%s)\n",
|
||||
lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps));
|
||||
|
||||
// DDSCAPS_TEXTURE surfaces must be left untouched, unless you set FORCESHEL: in this case switch VIDEOMEMORY to SYSTEMMEMORY
|
||||
if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_TEXTURE)){
|
||||
if (dxw.dwFlags3 & FORCESHEL) {
|
||||
@ -2341,6 +2340,8 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
// TEXTURE: enforce PIXELFORMAT on MEMORY
|
||||
lpddsd->dwFlags |= DDSD_PIXELFORMAT;
|
||||
GetPixFmt(lpddsd);
|
||||
// trytry
|
||||
// lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; // OFFSCREENPLAIN to set a different pixel format
|
||||
}
|
||||
if((lpddsd->dwFlags & DDSD_PIXELFORMAT) &&
|
||||
(lpddsd->ddpfPixelFormat.dwFlags & DDPF_FOURCC) &&
|
||||
@ -2349,19 +2350,11 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
lpddsd->ddpfPixelFormat.dwFourCC = 0;
|
||||
lpddsd->ddpfPixelFormat.dwFlags &= ~DDPF_FOURCC;
|
||||
}
|
||||
|
||||
//// try
|
||||
//if((lpddsd->dwFlags & DDSD_PIXELFORMAT) && (lpddsd->ddpfPixelFormat.dwRGBBitCount == 16)){
|
||||
// lpddsd->ddpfPixelFormat.dwRGBAlphaBitMask = 0x8000;
|
||||
// lpddsd->ddpfPixelFormat.dwBBitMask = 0x001F;
|
||||
// lpddsd->ddpfPixelFormat.dwGBitMask = 0x03E0;
|
||||
// lpddsd->ddpfPixelFormat.dwRBitMask = 0x7C00;
|
||||
//}
|
||||
//// try
|
||||
return;
|
||||
}
|
||||
|
||||
if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_ZBUFFER)) { // z-buffer surface - set to memory
|
||||
if(dxw.dwFlags8 & OFFSCREENZBUFFER) return;
|
||||
lpddsd->ddsCaps.dwCaps = DDSCAPS_ZBUFFER;
|
||||
if (dxw.dwFlags8 & ALLOWSYSMEMON3DDEV) lpddsd->ddsCaps.dwCaps = DDSCAPS_SYSTEMMEMORY|DDSCAPS_ZBUFFER;
|
||||
return;
|
||||
@ -2369,13 +2362,14 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
|
||||
// this is valid just in case the above block eliminated TEXTURE surfaces....
|
||||
if (lpddsd->dwFlags & DDSD_PIXELFORMAT){ // pixel format defined
|
||||
if (lpddsd->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY) lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; // to allow for pixel format conversion (Quest for Glory 5 - GOG version)
|
||||
// trytry
|
||||
//if (lpddsd->ddsCaps.dwCaps & DDSCAPS_SYSTEMMEMORY) lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN; // to allow for pixel format conversion (Quest for Glory 5 - GOG version)
|
||||
lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((lpddsd->dwFlags & (DDSD_WIDTH|DDSD_HEIGHT)) == DDSD_WIDTH) { // buffer surface
|
||||
return;
|
||||
}
|
||||
// buffer surface
|
||||
if ((lpddsd->dwFlags & (DDSD_WIDTH|DDSD_HEIGHT)) == DDSD_WIDTH) return;
|
||||
|
||||
// 3DDEVICE no TEXTURE: enforce PIXELFORMAT
|
||||
// v2.02.90: added for "Zoo Tycoon" textures
|
||||
@ -2385,23 +2379,41 @@ void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
// we try to manage them by checking for the DDSCAPS_VIDEOMEMORY capability ...
|
||||
if((lpddsd->dwFlags & DDSD_CAPS) && (lpddsd->ddsCaps.dwCaps & DDSCAPS_3DDEVICE)){
|
||||
lpddsd->dwFlags |= DDSD_PIXELFORMAT;
|
||||
GetPixFmt(lpddsd);
|
||||
if(dxw.dwFlags8 & OFFSCREENZBUFFER) {
|
||||
// add OFFSCREENPLAIN to set a different pixel format
|
||||
lpddsd->ddsCaps.dwCaps |= DDSCAPS_OFFSCREENPLAIN;
|
||||
return;
|
||||
}
|
||||
if(lpddsd->ddsCaps.dwCaps & DDSCAPS_VIDEOMEMORY)
|
||||
lpddsd->ddsCaps.dwCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_3DDEVICE|DDSCAPS_SYSTEMMEMORY); // good for "Bunnies must die", NO "Arx Fatalis"
|
||||
else
|
||||
lpddsd->ddsCaps.dwCaps = (DDSCAPS_OFFSCREENPLAIN|DDSCAPS_3DDEVICE); // good for "Arx Fatalis", NO "Bunnies must die"
|
||||
GetPixFmt(lpddsd);
|
||||
return;
|
||||
}
|
||||
|
||||
// default case: adjust pixel format
|
||||
OutTraceB("FixSurfaceCaps: suppress DDSCAPS_VIDEOMEMORY case\n");
|
||||
lpddsd->dwFlags |= (DDSD_CAPS|DDSD_PIXELFORMAT);
|
||||
lpddsd->ddsCaps.dwCaps &= ~(DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); // v2.02.43
|
||||
lpddsd->ddsCaps.dwCaps |= (DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN);
|
||||
if(!(dxw.dwFlags8 & OFFSCREENZBUFFER)){
|
||||
lpddsd->ddsCaps.dwCaps &= ~(DDSCAPS_VIDEOMEMORY|DDSCAPS_LOCALVIDMEM); // v2.02.43
|
||||
lpddsd->ddsCaps.dwCaps |= (DDSCAPS_SYSTEMMEMORY|DDSCAPS_OFFSCREENPLAIN);
|
||||
}
|
||||
if(!(dxw.dwFlags3 & NOPIXELFORMAT)) GetPixFmt(lpddsd);
|
||||
return;
|
||||
}
|
||||
|
||||
void FixSurfaceCaps(LPDDSURFACEDESC2 lpddsd, int dxversion)
|
||||
{
|
||||
OutTraceDW("FixSurfaceCaps: INPUT Flags=%x(%s) Caps=%x(%s)\n",
|
||||
lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps));
|
||||
|
||||
FixSurfaceCapsInner(lpddsd, dxversion);
|
||||
|
||||
OutTraceDW("FixSurfaceCaps: OUTPUT Flags=%x(%s) Caps=%x(%s)\n",
|
||||
lpddsd->dwFlags, ExplainFlags(lpddsd->dwFlags), lpddsd->ddsCaps.dwCaps, ExplainDDSCaps(lpddsd->ddsCaps.dwCaps));
|
||||
}
|
||||
|
||||
HRESULT WINAPI extCreateSurface1(LPDIRECTDRAW lpdd, DDSURFACEDESC *lpddsd, LPDIRECTDRAWSURFACE *lplpdds, void *pu)
|
||||
{ return extCreateSurface(1, (CreateSurface_Type)pCreateSurface1, lpdd, (DDSURFACEDESC2 *)lpddsd, lplpdds, pu); }
|
||||
HRESULT WINAPI extCreateSurface2(LPDIRECTDRAW lpdd, DDSURFACEDESC *lpddsd, LPDIRECTDRAWSURFACE *lplpdds, void *pu)
|
||||
@ -4988,6 +5000,15 @@ HRESULT WINAPI extGetClipList(LPDIRECTDRAWCLIPPER lpddClip, LPRECT lpRect, LPRGN
|
||||
return res;
|
||||
}
|
||||
|
||||
HRESULT WINAPI extSetClipList(LPDIRECTDRAWCLIPPER lpddClip, LPRGNDATA lpClipList, DWORD dwFlags)
|
||||
{
|
||||
HRESULT res;
|
||||
OutTraceP("SetClipList(C): lpddClip=%x lpcliplist=%x flags=%x\n", lpddClip, lpClipList, dwFlags);
|
||||
res = (*pSetClipList)(lpddClip, lpClipList, dwFlags);
|
||||
if(res) OutTraceP("SetClipList(C): ERROR err=%x(%s)\n", res, ExplainDDError(res));
|
||||
return res;
|
||||
}
|
||||
|
||||
HRESULT WINAPI extSetHWnd(LPDIRECTDRAWCLIPPER lpddClip, DWORD w, HWND hwnd)
|
||||
{
|
||||
HRESULT res;
|
||||
|
@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "TlHelp32.h"
|
||||
|
||||
#define VERSION "2.04.11"
|
||||
#define VERSION "2.04.12"
|
||||
|
||||
#define DDTHREADLOCK 1
|
||||
|
||||
|
Binary file not shown.
@ -902,6 +902,10 @@ HDC WINAPI extGDICreateCompatibleDC(HDC hdc)
|
||||
BOOL bSwitchedToMainWin = FALSE;
|
||||
|
||||
OutTraceDW("GDI.CreateCompatibleDC: hdc=%x\n", hdc);
|
||||
// n.b. useful? hdc == 0 doesn't imply the desktop but rather the current window
|
||||
// from MSDN:
|
||||
// hdc[in] A handle to an existing DC. If this handle is NULL the function creates
|
||||
// a memory DC compatible with the application's current screen.
|
||||
if(hdc==0 || (WindowFromDC(hdc)==0)) { // v2.03.99: Star Trek Armada
|
||||
hdc=(*pGDIGetDC)(dxw.GethWnd()); // potential DC leakage
|
||||
bSwitchedToMainWin = TRUE;
|
||||
|
@ -513,7 +513,6 @@ void HookDirect3DDevice(void **lpd3ddev, int d3dversion)
|
||||
SetHook((void *)(**(DWORD **)lpd3ddev + 16), extD3DGetCaps1, (void **)&pD3DGetCaps1, "GetCaps(1)");
|
||||
SetHook((void *)(**(DWORD **)lpd3ddev + 20), extSwapTextureHandles, (void **)&pSwapTextureHandles, "SwapTextureHandles(1)");
|
||||
SetHook((void *)(**(DWORD **)lpd3ddev + 32), extExecute, (void **)&pExecute, "Execute(1)");
|
||||
//SetHook((void *)(**(DWORD **)lpd3ddev + 32), extExecute, NULL, "Execute(1)");
|
||||
SetHook((void *)(**(DWORD **)lpd3ddev + 36), extAddViewport1, (void **)&pAddViewport1, "AddViewport(1)");
|
||||
SetHook((void *)(**(DWORD **)lpd3ddev + 40), extDeleteViewport1, (void **)&pDeleteViewport1, "DeleteViewport(1)");
|
||||
SetHook((void *)(**(DWORD **)lpd3ddev + 44), extNextViewport1, (void **)&pNextViewport1, "NextViewport(1)");
|
||||
@ -1035,8 +1034,17 @@ HRESULT WINAPI extSetViewport(int dxversion, SetViewport_Type pSetViewport, void
|
||||
|
||||
// v2.03.48: scaled dvScaleX/Y fields. Fixes "Dark Vengeance" viewport size when using D3D interface.
|
||||
// no.... see Forsaken
|
||||
//dxw.MapClient(&vpd->dvScaleX, &vpd->dvScaleY);
|
||||
//OutTraceDW("SetViewport: FIXED scale=(%fx%f)\n", vpd->dvScaleX, vpd->dvScaleY);
|
||||
// no good (useless) also for "Spearhead"
|
||||
//if(dxw.Windowize){
|
||||
// dxw.MapClient(&vpd->dvScaleX, &vpd->dvScaleY);
|
||||
// OutTraceDW("SetViewport: FIXED scale=(%fx%f)\n", vpd->dvScaleX, vpd->dvScaleY);
|
||||
// int w = (int) vpd->dwWidth;
|
||||
// int h = (int) vpd->dwHeight;
|
||||
// dxw.MapClient(&w, &h);
|
||||
// vpd->dwWidth = (DWORD) w;
|
||||
// vpd->dwHeight = (DWORD) h;
|
||||
// OutTraceDW("SetViewport: FIXED scale=(%dx%d)\n", vpd->dwWidth, vpd->dwHeight);
|
||||
//}
|
||||
|
||||
res=(*pSetViewport)(lpvp, vpd);
|
||||
if(res) OutTraceE("SetViewport ERROR: err=%x(%s) at %d\n", res, ExplainDDError(res), __LINE__);
|
||||
|
@ -103,9 +103,9 @@ typedef HRESULT (WINAPI *SetSurfaceDesc_Type)(LPDIRECTDRAWSURFACE, LPDDSURFACEDE
|
||||
typedef HRESULT (WINAPI *AddRefC_Type)(LPDIRECTDRAWCLIPPER);
|
||||
typedef HRESULT (WINAPI *ReleaseC_Type)(LPDIRECTDRAWCLIPPER);
|
||||
typedef HRESULT (WINAPI *GetClipList_Type)(LPDIRECTDRAWCLIPPER, LPRECT, LPRGNDATA, LPDWORD);
|
||||
typedef HRESULT (WINAPI *SetClipList_Type)(LPDIRECTDRAWCLIPPER, LPRGNDATA, DWORD);
|
||||
typedef HRESULT (WINAPI *GetHWnd_Type)(LPDIRECTDRAWCLIPPER, HWND FAR *);
|
||||
typedef HRESULT (WINAPI *IsClipListChanged_Type)(LPDIRECTDRAWCLIPPER, BOOL FAR *);
|
||||
typedef HRESULT (WINAPI *SetClipList_Type)(LPDIRECTDRAWCLIPPER, LPRGNDATA, DWORD);
|
||||
typedef HRESULT (WINAPI *SetHWnd_Type)(LPDIRECTDRAWCLIPPER, DWORD, HWND);
|
||||
|
||||
// DirectDraw Palette
|
||||
|
@ -164,7 +164,7 @@ static HookEntryEx_Type SyscallHooks[]={
|
||||
{HOOK_IAT_CANDIDATE, 0, "TabbedTextOutA", (FARPROC)TabbedTextOutA, (FARPROC *)&pTabbedTextOutA, (FARPROC)extTabbedTextOutA},
|
||||
{HOOK_IAT_CANDIDATE, 0, "TabbedTextOutW", (FARPROC)TabbedTextOutW, (FARPROC *)&pTabbedTextOutW, (FARPROC)extTabbedTextOutW},
|
||||
{HOOK_IAT_CANDIDATE, 0, "ScrollDC", (FARPROC)ScrollDC, (FARPROC *)&pScrollDC, (FARPROC)extScrollDC},
|
||||
{HOOK_IAT_CANDIDATE, 0, "InvalidateRect", (FARPROC)InvalidateRect, (FARPROC *)&pInvalidateRect, (FARPROC)extInvalidateRect},
|
||||
{HOOK_HOT_CANDIDATE, 0, "InvalidateRect", (FARPROC)InvalidateRect, (FARPROC *)&pInvalidateRect, (FARPROC)extInvalidateRect},
|
||||
{HOOK_IAT_CANDIDATE, 0, "DrawTextA", (FARPROC)DrawTextA, (FARPROC *)&pDrawTextA, (FARPROC)extDrawTextA},
|
||||
{HOOK_IAT_CANDIDATE, 0, "DrawTextExA", (FARPROC)DrawTextExA, (FARPROC *)&pDrawTextExA, (FARPROC)extDrawTextExA},
|
||||
{HOOK_IAT_CANDIDATE, 0, "DrawTextW", (FARPROC)DrawTextW, (FARPROC *)&pDrawTextW, (FARPROC)extDrawTextW},
|
||||
@ -1882,7 +1882,7 @@ HWND WINAPI extCreateWindowExA(
|
||||
nHeight = MainWin.bottom;
|
||||
}
|
||||
|
||||
return CreateWindowCommon("CreateWindowExA", (CreateWindow_Type)CreateWindowExA, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
return CreateWindowCommon("CreateWindowExA", (CreateWindow_Type)pCreateWindowExA, dwExStyle, (void *)lpClassName, (void *)lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
|
||||
}
|
||||
|
||||
extern void ExplainMsg(char *, HWND, UINT, WPARAM, LPARAM);
|
||||
|
@ -40,6 +40,7 @@ void CTabDirectX::DoDataExchange(CDataExchange* pDX)
|
||||
DDX_Check(pDX, IDC_NOPIXELFORMAT, cTarget->m_NoPixelFormat);
|
||||
DDX_Check(pDX, IDC_NOALPHACHANNEL, cTarget->m_NoAlphaChannel);
|
||||
DDX_Check(pDX, IDC_NOFLIPEMULATION, cTarget->m_NoFlipEmulation);
|
||||
DDX_Check(pDX, IDC_OFFSCREENZBUFFER, cTarget->m_OffscreenZBuffer);
|
||||
DDX_Check(pDX, IDC_FLIPEMULATION, cTarget->m_FlipEmulation);
|
||||
DDX_Check(pDX, IDC_SETCOMPATIBILITY, cTarget->m_SetCompatibility);
|
||||
DDX_Check(pDX, IDC_AEROBOOST, cTarget->m_AEROBoost);
|
||||
|
@ -110,8 +110,6 @@ void CTabProgram::DoDataExchange(CDataExchange* pDX)
|
||||
DDX_Check(pDX, IDC_KEEPASPECTRATIO, cTarget->m_KeepAspectRatio);
|
||||
DDX_Check(pDX, IDC_NOBANNER, cTarget->m_NoBanner);
|
||||
DDX_Check(pDX, IDC_HIDEDESKTOP, cTarget->m_HideDesktop);
|
||||
//DDX_Text(pDX, IDC_POSX, cTarget->m_PosX);
|
||||
//DDX_Text(pDX, IDC_POSY, cTarget->m_PosY);
|
||||
DDX_CBIndex(pDX, IDC_MONITOR_ID, cTarget->m_MonitorId);
|
||||
DDX_Text(pDX, IDC_POSX, sPosX);
|
||||
DDX_Text(pDX, IDC_POSY, sPosY);
|
||||
|
@ -153,6 +153,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
|
||||
m_SlowDown = FALSE;
|
||||
m_BlitFromBackBuffer = FALSE;
|
||||
m_NoFlipEmulation = FALSE;
|
||||
m_OffscreenZBuffer = FALSE;
|
||||
m_LockColorDepth = FALSE;
|
||||
m_DisableGammaRamp = FALSE;
|
||||
m_AutoRefresh = FALSE;
|
||||
|
@ -106,16 +106,13 @@ public:
|
||||
BOOL m_SlowDown;
|
||||
BOOL m_BlitFromBackBuffer;
|
||||
BOOL m_NoFlipEmulation;
|
||||
BOOL m_OffscreenZBuffer;
|
||||
BOOL m_LockColorDepth;
|
||||
//BOOL m_SuppressClipping;
|
||||
//BOOL m_ForceClipper;
|
||||
BOOL m_DisableGammaRamp;
|
||||
BOOL m_AutoRefresh;
|
||||
BOOL m_IndependentRefresh;
|
||||
BOOL m_TextureFormat;
|
||||
BOOL m_FixWinFrame;
|
||||
//BOOL m_EnableClipping;
|
||||
//BOOL m_CursorClipping;
|
||||
BOOL m_VideoToSystemMem;
|
||||
BOOL m_FixTextOut;
|
||||
BOOL m_SharedDC;
|
||||
|
BIN
host/dxwndhost.aps
Normal file
BIN
host/dxwndhost.aps
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -440,6 +440,7 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
|
||||
if(dlg->m_SlowDown) t->flags |= SLOWDOWN;
|
||||
if(dlg->m_BlitFromBackBuffer) t->flags |= BLITFROMBACKBUFFER;
|
||||
if(dlg->m_NoFlipEmulation) t->flags4 |= NOFLIPEMULATION;
|
||||
if(dlg->m_OffscreenZBuffer) t->flags8 |= OFFSCREENZBUFFER;
|
||||
if(dlg->m_LockColorDepth) t->flags7 |= LOCKCOLORDEPTH;
|
||||
if(dlg->m_DisableGammaRamp) t->flags2 |= DISABLEGAMMARAMP;
|
||||
if(dlg->m_AutoRefresh) t->flags |= AUTOREFRESH;
|
||||
@ -768,6 +769,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
|
||||
dlg->m_SlowDown = t->flags & SLOWDOWN ? 1 : 0;
|
||||
dlg->m_BlitFromBackBuffer = t->flags & BLITFROMBACKBUFFER ? 1 : 0;
|
||||
dlg->m_NoFlipEmulation = t->flags4 & NOFLIPEMULATION ? 1 : 0;
|
||||
dlg->m_OffscreenZBuffer = t->flags8 & OFFSCREENZBUFFER ? 1 : 0;
|
||||
dlg->m_LockColorDepth = t->flags7 & LOCKCOLORDEPTH ? 1 : 0;
|
||||
dlg->m_DisableGammaRamp = t->flags2 & DISABLEGAMMARAMP ? 1 : 0;
|
||||
dlg->m_AutoRefresh = t->flags & AUTOREFRESH ? 1 : 0;
|
||||
@ -2019,7 +2021,9 @@ void CDxwndhostView::OnKill()
|
||||
RevertScreenChanges(&this->InitDevMode);
|
||||
}
|
||||
|
||||
void CDxwndhostView::OnProcessKill()
|
||||
// void CDxwndhostView::OnProcessKill(BOOL bAll): kills one instance (bAll==FALSE) or all instances (bAll==TRUE)
|
||||
// of the process whose name corresponds to the selected program's list entry.
|
||||
void CDxwndhostView::OnProcessKill(BOOL bAll)
|
||||
{
|
||||
int i;
|
||||
POSITION pos;
|
||||
@ -2045,7 +2049,7 @@ void CDxwndhostView::OnProcessKill()
|
||||
mbstowcs_s(NULL, wcstring, 48, PrivateMaps[i].title, _TRUNCATE);
|
||||
res=MessageBoxLangArg(DXW_STRING_KILLTASK, DXW_STRING_WARNING, MB_YESNO | MB_ICONQUESTION, wcstring);
|
||||
if(res!=IDYES) return;
|
||||
KillProcByName(lpProcName, TRUE, FALSE);
|
||||
KillProcByName(lpProcName, TRUE, bAll);
|
||||
}
|
||||
else{
|
||||
MessageBoxLang(DXW_STRING_NOKILLTASK, DXW_STRING_INFO, MB_ICONEXCLAMATION);
|
||||
@ -2055,41 +2059,14 @@ void CDxwndhostView::OnProcessKill()
|
||||
RevertScreenChanges(&this->InitDevMode);
|
||||
}
|
||||
|
||||
void CDxwndhostView::OnProcessKill()
|
||||
{
|
||||
OnProcessKill(FALSE);
|
||||
}
|
||||
|
||||
void CDxwndhostView::OnProcessKillAll()
|
||||
{
|
||||
// to do .....
|
||||
int i;
|
||||
POSITION pos;
|
||||
CListCtrl& listctrl = GetListCtrl();
|
||||
char FilePath[MAX_PATH+1];
|
||||
char *lpProcName, *lpNext;
|
||||
HRESULT res;
|
||||
|
||||
if(!listctrl.GetSelectedCount()) return ;
|
||||
pos = listctrl.GetFirstSelectedItemPosition();
|
||||
i = listctrl.GetNextSelectedItem(pos);
|
||||
|
||||
strnncpy(FilePath, TargetMaps[i].path, MAX_PATH);
|
||||
lpProcName=FilePath;
|
||||
while (lpNext=strchr(lpProcName,'\\')) lpProcName=lpNext+1;
|
||||
|
||||
if(TargetMaps[i].flags7 & COPYNOSHIMS){
|
||||
strcat(lpProcName, ".noshim");
|
||||
}
|
||||
|
||||
if(!KillProcByName(lpProcName, FALSE, FALSE)){
|
||||
wchar_t *wcstring = new wchar_t[48+1];
|
||||
mbstowcs_s(NULL, wcstring, 48, PrivateMaps[i].title, _TRUNCATE);
|
||||
res=MessageBoxLangArg(DXW_STRING_KILLTASK, DXW_STRING_WARNING, MB_YESNO | MB_ICONQUESTION, wcstring);
|
||||
if(res!=IDYES) return;
|
||||
KillProcByName(lpProcName, TRUE, TRUE);
|
||||
}
|
||||
else{
|
||||
MessageBoxLang(DXW_STRING_NOKILLTASK, DXW_STRING_INFO, MB_ICONEXCLAMATION);
|
||||
}
|
||||
|
||||
ClipCursor(NULL);
|
||||
RevertScreenChanges(&this->InitDevMode);
|
||||
OnProcessKill(TRUE);
|
||||
}
|
||||
|
||||
void CDxwndhostView::OnAdd()
|
||||
|
@ -74,6 +74,7 @@ protected:
|
||||
afx_msg void OnExplore();
|
||||
afx_msg void OnKill();
|
||||
afx_msg void OnProcessKill();
|
||||
afx_msg void OnProcessKill(BOOL);
|
||||
afx_msg void OnProcessKillAll();
|
||||
afx_msg void OnPause();
|
||||
afx_msg void OnResume();
|
||||
|
BIN
host/host.aps
Normal file
BIN
host/host.aps
Normal file
Binary file not shown.
BIN
host/resource
BIN
host/resource
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user