mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_02_62_src
Former-commit-id: a053e9cf3708adc2b143d5c01f7d515b3594686e
This commit is contained in:
parent
0197772dfd
commit
0075eb9b13
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:c6bba6804bdeb0de0f1ff7e02150e77f737c1f1bcbab40e6b192d48a7ab00451
|
oid sha256:d99c6a80bd9c8ad4d82a995f662236e7a452ad2317a55eda538c7d2ea4ed3bb6
|
||||||
size 462848
|
size 463872
|
||||||
|
239
build/dxwnd.ini
239
build/dxwnd.ini
@ -3458,7 +3458,7 @@ coord138=0
|
|||||||
flag138=679493664
|
flag138=679493664
|
||||||
flagg138=1208025088
|
flagg138=1208025088
|
||||||
flagh138=65556
|
flagh138=65556
|
||||||
flagi138=4
|
flagi138=67596
|
||||||
tflag138=6403
|
tflag138=6403
|
||||||
initx138=0
|
initx138=0
|
||||||
inity138=0
|
inity138=0
|
||||||
@ -3471,7 +3471,7 @@ posy138=50
|
|||||||
sizx138=800
|
sizx138=800
|
||||||
sizy138=600
|
sizy138=600
|
||||||
maxfps138=0
|
maxfps138=0
|
||||||
initts138=-2
|
initts138=0
|
||||||
winver138=0
|
winver138=0
|
||||||
maxres138=-1
|
maxres138=-1
|
||||||
title139=New York Race
|
title139=New York Race
|
||||||
@ -3630,11 +3630,11 @@ module145=
|
|||||||
opengllib145=
|
opengllib145=
|
||||||
ver145=1
|
ver145=1
|
||||||
coord145=0
|
coord145=0
|
||||||
flag145=134234146
|
flag145=134234274
|
||||||
flagg145=134283520
|
flagg145=134283520
|
||||||
flagh145=20
|
flagh145=20
|
||||||
flagi145=12
|
flagi145=12
|
||||||
tflag145=5249
|
tflag145=6163
|
||||||
initx145=0
|
initx145=0
|
||||||
inity145=0
|
inity145=0
|
||||||
minx145=0
|
minx145=0
|
||||||
@ -3646,7 +3646,7 @@ posy145=50
|
|||||||
sizx145=800
|
sizx145=800
|
||||||
sizy145=600
|
sizy145=600
|
||||||
maxfps145=0
|
maxfps145=0
|
||||||
initts145=2
|
initts145=0
|
||||||
winver145=0
|
winver145=0
|
||||||
maxres145=-1
|
maxres145=-1
|
||||||
title146=Total Soccer 2000 (3DFX)
|
title146=Total Soccer 2000 (3DFX)
|
||||||
@ -3699,8 +3699,233 @@ maxfps147=0
|
|||||||
initts147=0
|
initts147=0
|
||||||
winver147=0
|
winver147=0
|
||||||
maxres147=-1
|
maxres147=-1
|
||||||
|
title148=Titan Quest
|
||||||
|
path148=D:\Games\Titan Quest\Titan Quest.exe
|
||||||
|
module148=
|
||||||
|
opengllib148=
|
||||||
|
ver148=9
|
||||||
|
coord148=2
|
||||||
|
flag148=134218272
|
||||||
|
flagg148=134217728
|
||||||
|
flagh148=20
|
||||||
|
flagi148=1026
|
||||||
|
tflag148=6147
|
||||||
|
initx148=0
|
||||||
|
inity148=0
|
||||||
|
minx148=0
|
||||||
|
miny148=0
|
||||||
|
maxx148=0
|
||||||
|
maxy148=0
|
||||||
|
posx148=50
|
||||||
|
posy148=50
|
||||||
|
sizx148=800
|
||||||
|
sizy148=600
|
||||||
|
maxfps148=0
|
||||||
|
initts148=0
|
||||||
|
winver148=4
|
||||||
|
maxres148=-1
|
||||||
|
title149=Titan Quest Immortal Throne
|
||||||
|
path149=D:\Games\Titan Quest Immortal Throne\Tqit.exe
|
||||||
|
module149=
|
||||||
|
opengllib149=
|
||||||
|
ver149=9
|
||||||
|
coord149=0
|
||||||
|
flag149=134218272
|
||||||
|
flagg149=1207959552
|
||||||
|
flagh149=20
|
||||||
|
flagi149=4
|
||||||
|
tflag149=0
|
||||||
|
initx149=0
|
||||||
|
inity149=0
|
||||||
|
minx149=0
|
||||||
|
miny149=0
|
||||||
|
maxx149=0
|
||||||
|
maxy149=0
|
||||||
|
posx149=50
|
||||||
|
posy149=50
|
||||||
|
sizx149=800
|
||||||
|
sizy149=600
|
||||||
|
maxfps149=0
|
||||||
|
initts149=0
|
||||||
|
winver149=0
|
||||||
|
maxres149=-1
|
||||||
|
title150=Darius Gaiden
|
||||||
|
path150=D:\Games\Darius_gaiden\DARIUS.EXE
|
||||||
|
module150=
|
||||||
|
opengllib150=
|
||||||
|
ver150=0
|
||||||
|
coord150=0
|
||||||
|
flag150=671089184
|
||||||
|
flagg150=1207959552
|
||||||
|
flagh150=20
|
||||||
|
flagi150=4
|
||||||
|
tflag150=0
|
||||||
|
initx150=0
|
||||||
|
inity150=0
|
||||||
|
minx150=0
|
||||||
|
miny150=0
|
||||||
|
maxx150=0
|
||||||
|
maxy150=0
|
||||||
|
posx150=50
|
||||||
|
posy150=50
|
||||||
|
sizx150=800
|
||||||
|
sizy150=600
|
||||||
|
maxfps150=0
|
||||||
|
initts150=2
|
||||||
|
winver150=0
|
||||||
|
maxres150=-1
|
||||||
|
title151=Dark Colony
|
||||||
|
path151=D:\Games\DarkColony\DCOLONY\DC.EXE
|
||||||
|
module151=
|
||||||
|
opengllib151=
|
||||||
|
ver151=0
|
||||||
|
coord151=0
|
||||||
|
flag151=136315424
|
||||||
|
flagg151=1207959552
|
||||||
|
flagh151=20
|
||||||
|
flagi151=4
|
||||||
|
tflag151=0
|
||||||
|
initx151=0
|
||||||
|
inity151=0
|
||||||
|
minx151=0
|
||||||
|
miny151=0
|
||||||
|
maxx151=0
|
||||||
|
maxy151=0
|
||||||
|
posx151=50
|
||||||
|
posy151=50
|
||||||
|
sizx151=800
|
||||||
|
sizy151=600
|
||||||
|
maxfps151=0
|
||||||
|
initts151=0
|
||||||
|
winver151=0
|
||||||
|
maxres151=-1
|
||||||
|
title152=Dark Reign 2
|
||||||
|
path152=D:\Games\Dr2\dr2.exe
|
||||||
|
module152=
|
||||||
|
opengllib152=
|
||||||
|
ver152=0
|
||||||
|
coord152=0
|
||||||
|
flag152=671088672
|
||||||
|
flagg152=1207959552
|
||||||
|
flagh152=20
|
||||||
|
flagi152=4
|
||||||
|
tflag152=0
|
||||||
|
initx152=0
|
||||||
|
inity152=0
|
||||||
|
minx152=0
|
||||||
|
miny152=0
|
||||||
|
maxx152=0
|
||||||
|
maxy152=0
|
||||||
|
posx152=50
|
||||||
|
posy152=50
|
||||||
|
sizx152=800
|
||||||
|
sizy152=600
|
||||||
|
maxfps152=0
|
||||||
|
initts152=0
|
||||||
|
winver152=0
|
||||||
|
maxres152=-1
|
||||||
|
title153=Dark Planet: Battle for Natrolis
|
||||||
|
path153=D:\Games\DarkPlanet\Dark.exe
|
||||||
|
module153=
|
||||||
|
opengllib153=
|
||||||
|
ver153=0
|
||||||
|
coord153=0
|
||||||
|
flag153=671088673
|
||||||
|
flagg153=1208025088
|
||||||
|
flagh153=20
|
||||||
|
flagi153=12
|
||||||
|
tflag153=0
|
||||||
|
initx153=0
|
||||||
|
inity153=0
|
||||||
|
minx153=0
|
||||||
|
miny153=0
|
||||||
|
maxx153=0
|
||||||
|
maxy153=0
|
||||||
|
posx153=50
|
||||||
|
posy153=50
|
||||||
|
sizx153=800
|
||||||
|
sizy153=600
|
||||||
|
maxfps153=0
|
||||||
|
initts153=0
|
||||||
|
winver153=0
|
||||||
|
maxres153=-1
|
||||||
|
title154=Geneforge
|
||||||
|
path154=D:\Games\Geneforge\Geneforge.exe
|
||||||
|
module154=
|
||||||
|
opengllib154=
|
||||||
|
ver154=0
|
||||||
|
coord154=0
|
||||||
|
flag154=134234660
|
||||||
|
flagg154=1207959680
|
||||||
|
flagh154=20
|
||||||
|
flagi154=131076
|
||||||
|
tflag154=0
|
||||||
|
initx154=0
|
||||||
|
inity154=0
|
||||||
|
minx154=0
|
||||||
|
miny154=0
|
||||||
|
maxx154=0
|
||||||
|
maxy154=0
|
||||||
|
posx154=50
|
||||||
|
posy154=50
|
||||||
|
sizx154=800
|
||||||
|
sizy154=600
|
||||||
|
maxfps154=0
|
||||||
|
initts154=0
|
||||||
|
winver154=0
|
||||||
|
maxres154=-1
|
||||||
|
title155=Geneforge (GOG)
|
||||||
|
path155=D:\Games\GOG.com\Geneforge\Geneforge\Geneforge.exe
|
||||||
|
module155=
|
||||||
|
opengllib155=
|
||||||
|
ver155=0
|
||||||
|
coord155=0
|
||||||
|
flag155=134234656
|
||||||
|
flagg155=1208025088
|
||||||
|
flagh155=20
|
||||||
|
flagi155=12
|
||||||
|
tflag155=0
|
||||||
|
initx155=0
|
||||||
|
inity155=0
|
||||||
|
minx155=0
|
||||||
|
miny155=0
|
||||||
|
maxx155=0
|
||||||
|
maxy155=0
|
||||||
|
posx155=50
|
||||||
|
posy155=50
|
||||||
|
sizx155=800
|
||||||
|
sizy155=600
|
||||||
|
maxfps155=0
|
||||||
|
initts155=-8
|
||||||
|
winver155=0
|
||||||
|
maxres155=-1
|
||||||
|
title156=Jumpgate Classic
|
||||||
|
path156=D:\Games\Jumpgate\Jumpgate\jumpgate.exe
|
||||||
|
module156=
|
||||||
|
opengllib156=
|
||||||
|
ver156=0
|
||||||
|
coord156=0
|
||||||
|
flag156=134218272
|
||||||
|
flagg156=1207959568
|
||||||
|
flagh156=84
|
||||||
|
flagi156=2
|
||||||
|
tflag156=0
|
||||||
|
initx156=0
|
||||||
|
inity156=0
|
||||||
|
minx156=0
|
||||||
|
miny156=0
|
||||||
|
maxx156=0
|
||||||
|
maxy156=0
|
||||||
|
posx156=50
|
||||||
|
posy156=50
|
||||||
|
sizx156=1200
|
||||||
|
sizy156=900
|
||||||
|
maxfps156=0
|
||||||
|
initts156=0
|
||||||
|
winver156=0
|
||||||
|
maxres156=-1
|
||||||
[window]
|
[window]
|
||||||
posx=1010
|
posx=963
|
||||||
posy=145
|
posy=147
|
||||||
sizx=638
|
sizx=638
|
||||||
sizy=618
|
sizy=618
|
||||||
|
@ -406,4 +406,11 @@ fixed ZBUFFER surface creation to handle GOG Incoming troubles on some cards
|
|||||||
fixed handling of special effects (wireframe, no fogging, zbuffer always) to be valid on all d3d versions
|
fixed handling of special effects (wireframe, no fogging, zbuffer always) to be valid on all d3d versions
|
||||||
|
|
||||||
v2.02.61
|
v2.02.61
|
||||||
added directx "Compensate Flip emulation" flag: used primarily to get rid of mouse artifacts due to emulated Flip rpocedure in windowed mode. Fixes Gruntz issues and some other games...
|
added directx "Compensate Flip emulation" flag: used primarily to get rid of mouse artifacts due to emulated Flip rpocedure in windowed mode. Fixes Gruntz issues and some other games...
|
||||||
|
|
||||||
|
v2.02.62
|
||||||
|
fixed d3d7 CreateDevice hook and d3d7 rendering options (wireframe, disablefogging, zbufferalways)
|
||||||
|
fixed doublebuffer emulation - avoid returning the backbuffer when zbuffer is requested. Fixes rendering problems of many games!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Binary file not shown.
@ -2820,11 +2820,15 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet
|
|||||||
// the attached backbuffer itself. Makes Silver working, anyway....
|
// the attached backbuffer itself. Makes Silver working, anyway....
|
||||||
// beware: "Snowboard Racer" fails if you return an attached surface anyhow! There,
|
// beware: "Snowboard Racer" fails if you return an attached surface anyhow! There,
|
||||||
// the primary surface was created with back buffer count == 1.
|
// the primary surface was created with back buffer count == 1.
|
||||||
|
// v2.2.62 fix: a check to implement doublebuffer emulation only in case of DDSCAPS_BACKBUFFER
|
||||||
|
// requests. A call to GetAttachedSurface can be made to retrieve DDSCAPS_ZBUFFER surfaces, and in
|
||||||
|
// this case the lpDDSBack surface can't be returned.
|
||||||
|
|
||||||
if (IsBack && (DDSD_Prim.dwBackBufferCount > 1)){
|
if (IsBack && (DDSD_Prim.dwBackBufferCount > 1) && (lpddsc->dwCaps & DDSCAPS_BACKBUFFER)){
|
||||||
|
//if (IsBack && (DDSD_Prim.dwBackBufferCount > 1)){
|
||||||
*lplpddas = lpDDSBack;
|
*lplpddas = lpDDSBack;
|
||||||
OutTraceDW("GetAttachedSurface(%d): DOUBLEBUFFER attached=%x\n", dxversion, *lplpddas);
|
OutTraceDW("GetAttachedSurface(%d): DOUBLEBUFFER attached to BACK=%x\n", dxversion, *lplpddas);
|
||||||
return 0;
|
return DD_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
// on primary surface return the lpDDSBack surface coming from either an explicit
|
// on primary surface return the lpDDSBack surface coming from either an explicit
|
||||||
@ -2834,7 +2838,7 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet
|
|||||||
if (lpDDSBack) {
|
if (lpDDSBack) {
|
||||||
*lplpddas = lpDDSBack;
|
*lplpddas = lpDDSBack;
|
||||||
OutTraceDW("GetAttachedSurface(%d): BACKBUFFER attached=%x\n", dxversion, *lplpddas);
|
OutTraceDW("GetAttachedSurface(%d): BACKBUFFER attached=%x\n", dxversion, *lplpddas);
|
||||||
return 0;
|
return DD_OK;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
*lplpddas = NULL;
|
*lplpddas = NULL;
|
||||||
@ -2842,7 +2846,7 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet
|
|||||||
return DDERR_NOTFOUND;
|
return DDERR_NOTFOUND;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// proxy the call...
|
// proxy the call...
|
||||||
|
|
||||||
res=(*pGetAttachedSurface)(lpdds, lpddsc, lplpddas);
|
res=(*pGetAttachedSurface)(lpdds, lpddsc, lplpddas);
|
||||||
|
@ -1662,3 +1662,20 @@ char *ExplainD3DRenderState(DWORD c)
|
|||||||
}
|
}
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
char *ExplainRenderstateValue(DWORD Value)
|
||||||
|
{
|
||||||
|
char *p;
|
||||||
|
switch(Value){
|
||||||
|
case D3DCMP_NEVER : p="D3DCMP_NEVER"; break;
|
||||||
|
case D3DCMP_LESS : p="D3DCMP_LESS"; break;
|
||||||
|
case D3DCMP_EQUAL : p="D3DCMP_EQUAL"; break;
|
||||||
|
case D3DCMP_LESSEQUAL : p="D3DCMP_LESSEQUAL"; break;
|
||||||
|
case D3DCMP_GREATER : p="D3DCMP_GREATER"; break;
|
||||||
|
case D3DCMP_NOTEQUAL : p="D3DCMP_NOTEQUAL"; break;
|
||||||
|
case D3DCMP_GREATEREQUAL : p="D3DCMP_GREATEREQUAL"; break;
|
||||||
|
case D3DCMP_ALWAYS : p="D3DCMP_ALWAYS"; break;
|
||||||
|
default : p="???"; break;
|
||||||
|
}
|
||||||
|
return p;
|
||||||
|
}
|
@ -46,4 +46,5 @@ extern char *ExplainPeekRemoveMsg(DWORD);
|
|||||||
extern char *ExplainGetDCExFlags(DWORD);
|
extern char *ExplainGetDCExFlags(DWORD);
|
||||||
extern char *ExplainPaletteUse(UINT);
|
extern char *ExplainPaletteUse(UINT);
|
||||||
extern char *ExplainRasterCaps(DWORD);
|
extern char *ExplainRasterCaps(DWORD);
|
||||||
extern char *ExplainD3DRenderState(DWORD);
|
extern char *ExplainD3DRenderState(DWORD);
|
||||||
|
extern char *ExplainRenderstateValue(DWORD);
|
||||||
|
BIN
dll/dxwnd.aps
BIN
dll/dxwnd.aps
Binary file not shown.
@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "dxwnd.h"
|
#include "dxwnd.h"
|
||||||
#include "dxwcore.hpp"
|
#include "dxwcore.hpp"
|
||||||
|
|
||||||
#define VERSION "2.02.61"
|
#define VERSION "2.02.62"
|
||||||
|
|
||||||
#define DDTHREADLOCK 1
|
#define DDTHREADLOCK 1
|
||||||
|
|
||||||
|
Binary file not shown.
22
dll/hd3d.cpp
22
dll/hd3d.cpp
@ -7,6 +7,7 @@
|
|||||||
#include "dxwnd.h"
|
#include "dxwnd.h"
|
||||||
#include "dxwcore.hpp"
|
#include "dxwcore.hpp"
|
||||||
#include "dxhook.h"
|
#include "dxhook.h"
|
||||||
|
#include "dxhelper.h"
|
||||||
#include "syslibs.h"
|
#include "syslibs.h"
|
||||||
|
|
||||||
#define HOOKD3D10ANDLATER 1
|
#define HOOKD3D10ANDLATER 1
|
||||||
@ -496,6 +497,7 @@ void HookD3DDevice8(void** ppD3Ddev8)
|
|||||||
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_FOGENABLE, FALSE);
|
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_FOGENABLE, FALSE);
|
||||||
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_ZFUNC, D3DCMP_ALWAYS);
|
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_ZFUNC, D3DCMP_ALWAYS);
|
||||||
//if(1) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_SPECULARENABLE, TRUE);
|
//if(1) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_SPECULARENABLE, TRUE);
|
||||||
|
//if(1) (*pSetRenderState)((void *)*ppD3Ddev8, D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
|
||||||
}
|
}
|
||||||
//if (!(dxw.dwTFlags & OUTPROXYTRACE)) return;
|
//if (!(dxw.dwTFlags & OUTPROXYTRACE)) return;
|
||||||
//SetHook((void *)(**(DWORD **)ppD3Ddev8 + 4), extAddRef8, (void **)&pAddRef8, "AddRef(D8)");
|
//SetHook((void *)(**(DWORD **)ppD3Ddev8 + 4), extAddRef8, (void **)&pAddRef8, "AddRef(D8)");
|
||||||
@ -529,6 +531,7 @@ void HookD3DDevice9(void** ppD3Ddev9)
|
|||||||
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_FOGENABLE, FALSE);
|
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_FOGENABLE, FALSE);
|
||||||
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_ZFUNC, D3DCMP_ALWAYS);
|
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_ZFUNC, D3DCMP_ALWAYS);
|
||||||
//if(1) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_SPECULARENABLE, TRUE);
|
//if(1) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_SPECULARENABLE, TRUE);
|
||||||
|
//if(1) (*pSetRenderState)((void *)*ppD3Ddev9, D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
|
||||||
}
|
}
|
||||||
if (!(dxw.dwTFlags & OUTPROXYTRACE)) return;
|
if (!(dxw.dwTFlags & OUTPROXYTRACE)) return;
|
||||||
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 4), extAddRef9, (void **)&pAddRef9, "AddRef(D9)");
|
SetHook((void *)(**(DWORD **)ppD3Ddev9 + 4), extAddRef9, (void **)&pAddRef9, "AddRef(D9)");
|
||||||
@ -960,14 +963,25 @@ extern char *ExplainRenderstateValue(DWORD Value);
|
|||||||
|
|
||||||
HRESULT WINAPI extSetRenderState(void *pd3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
HRESULT WINAPI extSetRenderState(void *pd3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
||||||
{
|
{
|
||||||
|
HRESULT res;
|
||||||
|
OutTraceD3D("SetRenderState: d3dd=%x State=%x(%s) Value=%x\n", pd3dd, State, ExplainD3DRenderState(State), Value);
|
||||||
|
|
||||||
if((dxw.dwFlags4 & ZBUFFERALWAYS) && (State == D3DRS_ZFUNC)) {
|
if((dxw.dwFlags4 & ZBUFFERALWAYS) && (State == D3DRS_ZFUNC)) {
|
||||||
OutTraceD3D("SetRenderState: FIXED State=ZFUNC Value=%s->D3DCMP_ALWAYS\n", ExplainRenderstateValue(Value));
|
OutTraceD3D("SetRenderState: FIXED State=ZFUNC Value=%s->D3DCMP_ALWAYS\n", ExplainRenderstateValue(Value));
|
||||||
Value = D3DCMP_ALWAYS;
|
Value = D3DCMP_ALWAYS;
|
||||||
}
|
}
|
||||||
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRS_FILLMODE)) Value=D3DFILL_WIREFRAME;
|
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRS_FILLMODE)){
|
||||||
if((dxw.dwFlags4 & DISABLEFOGGING) && (State == D3DRS_FOGENABLE)) Value=FALSE;
|
OutTraceD3D("SetRenderState: FIXED State=FILLMODE Value=%x->D3DFILL_WIREFRAME\n", Value);
|
||||||
//if(1 && (State == D3DRS_SPECULARENABLE)) Value=TRUE;
|
Value = D3DFILL_WIREFRAME;
|
||||||
return (*pSetRenderState)(pd3dd, State, Value);
|
}
|
||||||
|
if((dxw.dwFlags4 & DISABLEFOGGING) && (State == D3DRS_FOGENABLE)){
|
||||||
|
OutTraceD3D("SetRenderState: FIXED State=FOGENABLE Value=%x->FALSE\n", Value);
|
||||||
|
Value = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
res=(*pSetRenderState)(pd3dd, State, Value);
|
||||||
|
if(res) OutTraceE("SetRenderState: res=%x(%s)\n", res, ExplainDDError(res));
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI extGetRenderState(void *pd3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
HRESULT WINAPI extGetRenderState(void *pd3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
||||||
|
122
dll/hd3d7.cpp
122
dll/hd3d7.cpp
@ -77,11 +77,14 @@ AddViewport3_Type pAddViewport3 = NULL;
|
|||||||
Scene3_Type pBeginScene1 = NULL;
|
Scene3_Type pBeginScene1 = NULL;
|
||||||
Scene3_Type pBeginScene2 = NULL;
|
Scene3_Type pBeginScene2 = NULL;
|
||||||
Scene3_Type pBeginScene3 = NULL;
|
Scene3_Type pBeginScene3 = NULL;
|
||||||
|
Scene3_Type pBeginScene7 = NULL;
|
||||||
Scene3_Type pEndScene1 = NULL;
|
Scene3_Type pEndScene1 = NULL;
|
||||||
Scene3_Type pEndScene2 = NULL;
|
Scene3_Type pEndScene2 = NULL;
|
||||||
Scene3_Type pEndScene3 = NULL;
|
Scene3_Type pEndScene3 = NULL;
|
||||||
|
Scene3_Type pEndScene7 = NULL;
|
||||||
SetRenderState3_Type pSetRenderState2 = NULL;
|
SetRenderState3_Type pSetRenderState2 = NULL;
|
||||||
SetRenderState3_Type pSetRenderState3 = NULL;
|
SetRenderState3_Type pSetRenderState3 = NULL;
|
||||||
|
SetRenderState3_Type pSetRenderState7 = NULL;
|
||||||
GetViewport7_Type pGetViewport7 = NULL;
|
GetViewport7_Type pGetViewport7 = NULL;
|
||||||
SetViewport7_Type pSetViewport7 = NULL;
|
SetViewport7_Type pSetViewport7 = NULL;
|
||||||
SetLightState_Type pSetLightState3 = NULL;
|
SetLightState_Type pSetLightState3 = NULL;
|
||||||
@ -148,14 +151,17 @@ HRESULT WINAPI extQueryInterfaceD3(void *, REFIID, LPVOID *);
|
|||||||
HRESULT WINAPI extD3DInitialize(void *, LPDIRECT3D , LPGUID, LPD3DDEVICEDESC);
|
HRESULT WINAPI extD3DInitialize(void *, LPDIRECT3D , LPGUID, LPD3DDEVICEDESC);
|
||||||
HRESULT WINAPI extD3DGetCaps(void *, LPD3DDEVICEDESC ,LPD3DDEVICEDESC);
|
HRESULT WINAPI extD3DGetCaps(void *, LPD3DDEVICEDESC ,LPD3DDEVICEDESC);
|
||||||
|
|
||||||
HRESULT WINAPI extSetRenderState2(void *, D3DRENDERSTATETYPE, DWORD);
|
|
||||||
HRESULT WINAPI extBeginScene1(void *);
|
HRESULT WINAPI extBeginScene1(void *);
|
||||||
HRESULT WINAPI extEndScene1(void *);
|
HRESULT WINAPI extEndScene1(void *);
|
||||||
HRESULT WINAPI extBeginScene2(void *);
|
HRESULT WINAPI extBeginScene2(void *);
|
||||||
HRESULT WINAPI extEndScene2(void *);
|
HRESULT WINAPI extEndScene2(void *);
|
||||||
HRESULT WINAPI extSetRenderState3(void *, D3DRENDERSTATETYPE, DWORD);
|
|
||||||
HRESULT WINAPI extBeginScene3(void *);
|
HRESULT WINAPI extBeginScene3(void *);
|
||||||
HRESULT WINAPI extEndScene3(void *);
|
HRESULT WINAPI extEndScene3(void *);
|
||||||
|
HRESULT WINAPI extBeginScene7(void *);
|
||||||
|
HRESULT WINAPI extEndScene7(void *);
|
||||||
|
HRESULT WINAPI extSetRenderState2(void *, D3DRENDERSTATETYPE, DWORD);
|
||||||
|
HRESULT WINAPI extSetRenderState3(void *, D3DRENDERSTATETYPE, DWORD);
|
||||||
|
HRESULT WINAPI extSetRenderState7(void *, D3DRENDERSTATETYPE, DWORD);
|
||||||
HRESULT WINAPI extGetCaps3(void *, LPD3DDEVICEDESC, LPD3DDEVICEDESC);
|
HRESULT WINAPI extGetCaps3(void *, LPD3DDEVICEDESC, LPD3DDEVICEDESC);
|
||||||
HRESULT WINAPI extSetLightState3(void *d3dd, D3DLIGHTSTATETYPE d3dls, DWORD t);
|
HRESULT WINAPI extSetLightState3(void *d3dd, D3DLIGHTSTATETYPE d3dls, DWORD t);
|
||||||
HRESULT WINAPI extSetViewport3(void *, LPD3DVIEWPORT);
|
HRESULT WINAPI extSetViewport3(void *, LPD3DVIEWPORT);
|
||||||
@ -269,7 +275,7 @@ void HookDirect3DSession(LPDIRECTDRAW *lplpdd, int d3dversion)
|
|||||||
case 7:
|
case 7:
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 0), extQueryInterfaceD3, (void **)&pQueryInterfaceD3, "QueryInterface(D3S)");
|
SetHook((void *)(**(DWORD **)lplpdd + 0), extQueryInterfaceD3, (void **)&pQueryInterfaceD3, "QueryInterface(D3S)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 12), extEnumDevices7, (void **)&pEnumDevices7, "EnumDevices(7)");
|
SetHook((void *)(**(DWORD **)lplpdd + 12), extEnumDevices7, (void **)&pEnumDevices7, "EnumDevices(7)");
|
||||||
SetHook((void *)(**(DWORD **)lplpdd + 32), extCreateDevice7, (void **)&pCreateDevice7, "CreateDevice(D3D7)");
|
SetHook((void *)(**(DWORD **)lplpdd + 16), extCreateDevice7, (void **)&pCreateDevice7, "CreateDevice(D3D7)");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -302,6 +308,7 @@ void HookDirect3DDevice(void **lpd3ddev, int d3dversion)
|
|||||||
if(dxw.dwFlags2 & WIREFRAME)(*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
|
if(dxw.dwFlags2 & WIREFRAME)(*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
|
||||||
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_FOGENABLE, FALSE);
|
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_FOGENABLE, FALSE);
|
||||||
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_ALWAYS);
|
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_ALWAYS);
|
||||||
|
//if(1) (*pSetRenderState2)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_LESSEQUAL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
@ -317,11 +324,21 @@ void HookDirect3DDevice(void **lpd3ddev, int d3dversion)
|
|||||||
if(dxw.dwFlags2 & WIREFRAME)(*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
|
if(dxw.dwFlags2 & WIREFRAME)(*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
|
||||||
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_FOGENABLE, FALSE);
|
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_FOGENABLE, FALSE);
|
||||||
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_ALWAYS);
|
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_ALWAYS);
|
||||||
|
//if(1) (*pSetRenderState3)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_LESSEQUAL);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
|
SetHook((void *)(**(DWORD **)lpd3ddev + 20), extBeginScene7, (void **)&pBeginScene7, "BeginScene(7)");
|
||||||
|
SetHook((void *)(**(DWORD **)lpd3ddev + 24), extEndScene7, (void **)&pEndScene7, "EndScene(7)");
|
||||||
SetHook((void *)(**(DWORD **)lpd3ddev + 52), extSetViewport7, (void **)&pSetViewport7, "SetViewport(7)");
|
SetHook((void *)(**(DWORD **)lpd3ddev + 52), extSetViewport7, (void **)&pSetViewport7, "SetViewport(7)");
|
||||||
SetHook((void *)(**(DWORD **)lpd3ddev + 60), extGetViewport7, (void **)&pGetViewport7, "GetViewport(7)");
|
SetHook((void *)(**(DWORD **)lpd3ddev + 60), extGetViewport7, (void **)&pGetViewport7, "GetViewport(7)");
|
||||||
|
SetHook((void *)(**(DWORD **)lpd3ddev + 80), extSetRenderState7, (void **)&pSetRenderState7, "SetRenderState(7)");
|
||||||
|
if(pSetRenderState7){
|
||||||
|
if(dxw.dwFlags2 & WIREFRAME)(*pSetRenderState7)(*lpd3ddev, D3DRENDERSTATE_FILLMODE, D3DFILL_WIREFRAME);
|
||||||
|
if(dxw.dwFlags4 & DISABLEFOGGING) (*pSetRenderState7)(*lpd3ddev, D3DRENDERSTATE_FOGENABLE, FALSE);
|
||||||
|
if(dxw.dwFlags4 & ZBUFFERALWAYS) (*pSetRenderState7)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_ALWAYS);
|
||||||
|
//if(1) (*pSetRenderState7)(*lpd3ddev, D3DRENDERSTATE_ZFUNC, D3DCMP_LESSEQUAL);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -773,67 +790,42 @@ HRESULT WINAPI extD3DGetCaps(void *d3dd, LPD3DDEVICEDESC lpd3dd ,LPD3DDEVICEDESC
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *ExplainRenderstateValue(DWORD Value)
|
HRESULT WINAPI extSetRenderState(SetRenderState3_Type pSetRenderState, int version, void *d3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
||||||
{
|
{
|
||||||
char *p;
|
HRESULT res;
|
||||||
switch(Value){
|
OutTraceD3D("SetRenderState(%d): d3dd=%x State=%x(%s) Value=%x\n", version, d3dd, State, ExplainD3DRenderState(State), Value);
|
||||||
case D3DCMP_NEVER : p="D3DCMP_NEVER"; break;
|
|
||||||
case D3DCMP_LESS : p="D3DCMP_LESS"; break;
|
if((dxw.dwFlags4 & ZBUFFERALWAYS) && (State == D3DRENDERSTATE_ZFUNC)) {
|
||||||
case D3DCMP_EQUAL : p="D3DCMP_EQUAL"; break;
|
OutTraceD3D("SetRenderState: FIXED State=ZFUNC Value=%s->D3DCMP_ALWAYS\n", ExplainRenderstateValue(Value));
|
||||||
case D3DCMP_LESSEQUAL : p="D3DCMP_LESSEQUAL"; break;
|
Value = D3DCMP_ALWAYS;
|
||||||
case D3DCMP_GREATER : p="D3DCMP_GREATER"; break;
|
|
||||||
case D3DCMP_NOTEQUAL : p="D3DCMP_NOTEQUAL"; break;
|
|
||||||
case D3DCMP_GREATEREQUAL : p="D3DCMP_GREATEREQUAL"; break;
|
|
||||||
case D3DCMP_ALWAYS : p="D3DCMP_ALWAYS"; break;
|
|
||||||
default : p="???"; break;
|
|
||||||
}
|
}
|
||||||
return p;
|
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRENDERSTATE_FILLMODE)){
|
||||||
|
OutTraceD3D("SetRenderState: FIXED State=FILLMODE Value=%x->D3DFILL_WIREFRAME\n", Value);
|
||||||
|
Value = D3DFILL_WIREFRAME;
|
||||||
|
}
|
||||||
|
if((dxw.dwFlags4 & DISABLEFOGGING) && (State == D3DRENDERSTATE_FOGENABLE)){
|
||||||
|
OutTraceD3D("SetRenderState: FIXED State=FOGENABLE Value=%x->FALSE\n", Value);
|
||||||
|
Value = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
res=(*pSetRenderState)(d3dd, State, Value);
|
||||||
|
if(res) OutTraceE("SetRenderState: res=%x(%s)\n", res, ExplainDDError(res));
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI extSetRenderState2(void *d3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
HRESULT WINAPI extSetRenderState2(void *d3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
||||||
{
|
{
|
||||||
HRESULT res;
|
return extSetRenderState(pSetRenderState2, 2, d3dd, State, Value);
|
||||||
OutTraceD3D("SetRenderState(2): d3dd=%x State=%x(%s) Value=%x\n", d3dd, State, ExplainD3DRenderState(State), Value);
|
|
||||||
if((dxw.dwFlags4 & ZBUFFERALWAYS) && (State == D3DRENDERSTATE_ZFUNC)) {
|
|
||||||
DWORD OldValue;
|
|
||||||
OldValue = Value;
|
|
||||||
Value = D3DCMP_ALWAYS;
|
|
||||||
OutTraceD3D("SetRenderState: FIXED State=ZFUNC Value=%s->D3DCMP_ALWAYS\n", ExplainRenderstateValue(OldValue));
|
|
||||||
}
|
|
||||||
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRENDERSTATE_FILLMODE)){
|
|
||||||
Value = D3DFILL_WIREFRAME;
|
|
||||||
OutTraceD3D("SetRenderState: FIXED State=FILLMODE Value=D3DFILL_WIREFRAME\n");
|
|
||||||
}
|
|
||||||
if((dxw.dwFlags4 & DISABLEFOGGING) && (State == D3DRENDERSTATE_FOGENABLE)){
|
|
||||||
OutTraceD3D("SetRenderState: FIXED State=FOGENABLE Value=FALSE\n");
|
|
||||||
Value = FALSE;
|
|
||||||
}
|
|
||||||
res=(*pSetRenderState2)(d3dd, State, Value);
|
|
||||||
if(res) OutTraceE("SetRenderState(2): res=%x(%s)\n", res, ExplainDDError(res));
|
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI extSetRenderState3(void *d3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
HRESULT WINAPI extSetRenderState3(void *d3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
||||||
{
|
{
|
||||||
HRESULT res;
|
return extSetRenderState(pSetRenderState3, 3, d3dd, State, Value);
|
||||||
OutTraceD3D("SetRenderState(3): d3dd=%x State=%x(%s) Value=%x\n", d3dd, State, ExplainD3DRenderState(State), Value);
|
}
|
||||||
if((dxw.dwFlags4 & ZBUFFERALWAYS) && (State == D3DRENDERSTATE_ZFUNC)) {
|
|
||||||
DWORD OldValue;
|
HRESULT WINAPI extSetRenderState7(void *d3dd, D3DRENDERSTATETYPE State, DWORD Value)
|
||||||
OldValue = Value;
|
{
|
||||||
Value = D3DCMP_ALWAYS;
|
return extSetRenderState(pSetRenderState7, 7, d3dd, State, Value);
|
||||||
OutTraceD3D("SetRenderState: FIXED State=ZFUNC Value=%s->D3DCMP_ALWAYS\n", ExplainRenderstateValue(OldValue));
|
|
||||||
}
|
|
||||||
if((dxw.dwFlags2 & WIREFRAME) && (State == D3DRENDERSTATE_FILLMODE)){
|
|
||||||
Value = D3DFILL_WIREFRAME;
|
|
||||||
OutTraceD3D("SetRenderState: FIXED State=FILLMODE Value=D3DFILL_WIREFRAME\n");
|
|
||||||
}
|
|
||||||
if((dxw.dwFlags4 & DISABLEFOGGING) && (State == D3DRENDERSTATE_FOGENABLE)){
|
|
||||||
OutTraceD3D("SetRenderState: FIXED State=FOGENABLE Value=FALSE\n");
|
|
||||||
Value = FALSE;
|
|
||||||
}
|
|
||||||
res=(*pSetRenderState3)(d3dd, State, Value);
|
|
||||||
if(res) OutTraceE("SetRenderState(3): res=%x(%s)\n", res, ExplainDDError(res));
|
|
||||||
return res;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI extBeginScene1(void *d3dd)
|
HRESULT WINAPI extBeginScene1(void *d3dd)
|
||||||
@ -898,6 +890,18 @@ HRESULT WINAPI extBeginScene3(void *d3dd)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT WINAPI extBeginScene7(void *d3dd)
|
||||||
|
{
|
||||||
|
HRESULT res;
|
||||||
|
OutTraceD3D("BeginScene(7): d3dd=%x\n", d3dd);
|
||||||
|
|
||||||
|
// there is no Clear method for Viewport object in D3D7 !!!
|
||||||
|
|
||||||
|
res=(*pBeginScene7)(d3dd);
|
||||||
|
if(res) OutTraceE("BeginScene(7): res=%x(%s)\n", res, ExplainDDError(res));
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT WINAPI extEndScene1(void *d3dd)
|
HRESULT WINAPI extEndScene1(void *d3dd)
|
||||||
{
|
{
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
@ -928,6 +932,16 @@ HRESULT WINAPI extEndScene3(void *d3dd)
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HRESULT WINAPI extEndScene7(void *d3dd)
|
||||||
|
{
|
||||||
|
HRESULT res;
|
||||||
|
OutTraceD3D("EndScene(7): d3dd=%x\n", d3dd);
|
||||||
|
res=(*pEndScene7)(d3dd);
|
||||||
|
//dxw.ShowOverlay();
|
||||||
|
if(res) OutTraceE("EndScene(7): res=%x(%s)\n", res, ExplainDDError(res));
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
HRESULT WINAPI extGetCaps3(void *d3dd, LPD3DDEVICEDESC hd, LPD3DDEVICEDESC sd)
|
HRESULT WINAPI extGetCaps3(void *d3dd, LPD3DDEVICEDESC hd, LPD3DDEVICEDESC sd)
|
||||||
{
|
{
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
|
37
todo.txt
Normal file
37
todo.txt
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
int WINAPI D3DPERF_BeginEvent(D3DCOLOR col, LPCWSTR wszName)
|
||||||
|
{
|
||||||
|
if (!gl_hOriginalDll) LoadOriginalDll(); // looking for the "right d3d9.dll"
|
||||||
|
|
||||||
|
typedef int (WINAPI* D3DPERF_BE)(D3DCOLOR,LPCWSTR);
|
||||||
|
D3DPERF_BE D3DPERF_BeginEvent_fn = (D3DPERF_BE) GetProcAddress( gl_hOriginalDll, "D3DPERF_BeginEvent");
|
||||||
|
|
||||||
|
return D3DPERF_BeginEvent_fn(col, wszName);
|
||||||
|
}
|
||||||
|
|
||||||
|
int WINAPI D3DPERF_EndEvent()
|
||||||
|
{
|
||||||
|
if (!gl_hOriginalDll) LoadOriginalDll(); // looking for the "right d3d9.dll"
|
||||||
|
|
||||||
|
typedef int (WINAPI* D3DPERF_EE)(void);
|
||||||
|
D3DPERF_EE D3DPERF_EndEvent_fn = (D3DPERF_EE) GetProcAddress( gl_hOriginalDll, "D3DPERF_EndEvent");
|
||||||
|
|
||||||
|
return D3DPERF_EndEvent_fn();
|
||||||
|
}
|
||||||
|
|
||||||
|
void WINAPI D3DPERF_SetMarker(D3DCOLOR col, LPCWSTR wszName)
|
||||||
|
{
|
||||||
|
if (!gl_hOriginalDll) LoadOriginalDll(); // looking for the "right d3d9.dll"
|
||||||
|
|
||||||
|
typedef void (WINAPI* D3DPERF_SM)(D3DCOLOR,LPCWSTR);
|
||||||
|
D3DPERF_SM D3DPERF_SetMarker_fn = (D3DPERF_SM) GetProcAddress( gl_hOriginalDll, "D3DPERF_SetMarker");
|
||||||
|
|
||||||
|
D3DPERF_SetMarker_fn(col, wszName);
|
||||||
|
}
|
||||||
|
|
||||||
|
LIBRARY "d3d9"
|
||||||
|
|
||||||
|
EXPORTS
|
||||||
|
Direct3DCreate9 @1
|
||||||
|
D3DPERF_BeginEvent @2
|
||||||
|
D3DPERF_EndEvent @3
|
||||||
|
D3DPERF_SetMarker @4
|
Loading…
x
Reference in New Issue
Block a user