N64: Committing the D3D8 Interceptor project for jabo
This commit is contained in:
parent
08764cc9b5
commit
6fe4d25974
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,364 @@
|
|||
/*==========================================================================;
|
||||
*
|
||||
* Copyright (C) Microsoft Corporation. All Rights Reserved.
|
||||
*
|
||||
* File: d3d8caps.h
|
||||
* Content: Direct3D capabilities include file
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef _D3D8CAPS_H
|
||||
#define _D3D8CAPS_H
|
||||
|
||||
#ifndef DIRECT3D_VERSION
|
||||
#define DIRECT3D_VERSION 0x0800
|
||||
#endif //DIRECT3D_VERSION
|
||||
|
||||
// include this file content only if compiling for DX8 interfaces
|
||||
#if(DIRECT3D_VERSION >= 0x0800)
|
||||
|
||||
#if defined(_X86_) || defined(_IA64_)
|
||||
#pragma pack(4)
|
||||
#endif
|
||||
|
||||
typedef struct _D3DCAPS8
|
||||
{
|
||||
/* Device Info */
|
||||
D3DDEVTYPE DeviceType;
|
||||
UINT AdapterOrdinal;
|
||||
|
||||
/* Caps from DX7 Draw */
|
||||
DWORD Caps;
|
||||
DWORD Caps2;
|
||||
DWORD Caps3;
|
||||
DWORD PresentationIntervals;
|
||||
|
||||
/* Cursor Caps */
|
||||
DWORD CursorCaps;
|
||||
|
||||
/* 3D Device Caps */
|
||||
DWORD DevCaps;
|
||||
|
||||
DWORD PrimitiveMiscCaps;
|
||||
DWORD RasterCaps;
|
||||
DWORD ZCmpCaps;
|
||||
DWORD SrcBlendCaps;
|
||||
DWORD DestBlendCaps;
|
||||
DWORD AlphaCmpCaps;
|
||||
DWORD ShadeCaps;
|
||||
DWORD TextureCaps;
|
||||
DWORD TextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DTexture8's
|
||||
DWORD CubeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DCubeTexture8's
|
||||
DWORD VolumeTextureFilterCaps; // D3DPTFILTERCAPS for IDirect3DVolumeTexture8's
|
||||
DWORD TextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DTexture8's
|
||||
DWORD VolumeTextureAddressCaps; // D3DPTADDRESSCAPS for IDirect3DVolumeTexture8's
|
||||
|
||||
DWORD LineCaps; // D3DLINECAPS
|
||||
|
||||
DWORD MaxTextureWidth, MaxTextureHeight;
|
||||
DWORD MaxVolumeExtent;
|
||||
|
||||
DWORD MaxTextureRepeat;
|
||||
DWORD MaxTextureAspectRatio;
|
||||
DWORD MaxAnisotropy;
|
||||
float MaxVertexW;
|
||||
|
||||
float GuardBandLeft;
|
||||
float GuardBandTop;
|
||||
float GuardBandRight;
|
||||
float GuardBandBottom;
|
||||
|
||||
float ExtentsAdjust;
|
||||
DWORD StencilCaps;
|
||||
|
||||
DWORD FVFCaps;
|
||||
DWORD TextureOpCaps;
|
||||
DWORD MaxTextureBlendStages;
|
||||
DWORD MaxSimultaneousTextures;
|
||||
|
||||
DWORD VertexProcessingCaps;
|
||||
DWORD MaxActiveLights;
|
||||
DWORD MaxUserClipPlanes;
|
||||
DWORD MaxVertexBlendMatrices;
|
||||
DWORD MaxVertexBlendMatrixIndex;
|
||||
|
||||
float MaxPointSize;
|
||||
|
||||
DWORD MaxPrimitiveCount; // max number of primitives per DrawPrimitive call
|
||||
DWORD MaxVertexIndex;
|
||||
DWORD MaxStreams;
|
||||
DWORD MaxStreamStride; // max stride for SetStreamSource
|
||||
|
||||
DWORD VertexShaderVersion;
|
||||
DWORD MaxVertexShaderConst; // number of vertex shader constant registers
|
||||
|
||||
DWORD PixelShaderVersion;
|
||||
float MaxPixelShaderValue; // max value of pixel shader arithmetic component
|
||||
|
||||
} D3DCAPS8;
|
||||
|
||||
//
|
||||
// BIT DEFINES FOR D3DCAPS8 DWORD MEMBERS
|
||||
//
|
||||
|
||||
//
|
||||
// Caps
|
||||
//
|
||||
#define D3DCAPS_READ_SCANLINE 0x00020000L
|
||||
|
||||
//
|
||||
// Caps2
|
||||
//
|
||||
#define D3DCAPS2_NO2DDURING3DSCENE 0x00000002L
|
||||
#define D3DCAPS2_FULLSCREENGAMMA 0x00020000L
|
||||
#define D3DCAPS2_CANRENDERWINDOWED 0x00080000L
|
||||
#define D3DCAPS2_CANCALIBRATEGAMMA 0x00100000L
|
||||
#define D3DCAPS2_RESERVED 0x02000000L
|
||||
#define D3DCAPS2_CANMANAGERESOURCE 0x10000000L
|
||||
#define D3DCAPS2_DYNAMICTEXTURES 0x20000000L
|
||||
|
||||
//
|
||||
// Caps3
|
||||
//
|
||||
#define D3DCAPS3_RESERVED 0x8000001fL
|
||||
|
||||
// Indicates that the device can respect the ALPHABLENDENABLE render state
|
||||
// when fullscreen while using the FLIP or DISCARD swap effect.
|
||||
// COPY and COPYVSYNC swap effects work whether or not this flag is set.
|
||||
#define D3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020L
|
||||
|
||||
//
|
||||
// PresentationIntervals
|
||||
//
|
||||
#define D3DPRESENT_INTERVAL_DEFAULT 0x00000000L
|
||||
#define D3DPRESENT_INTERVAL_ONE 0x00000001L
|
||||
#define D3DPRESENT_INTERVAL_TWO 0x00000002L
|
||||
#define D3DPRESENT_INTERVAL_THREE 0x00000004L
|
||||
#define D3DPRESENT_INTERVAL_FOUR 0x00000008L
|
||||
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000L
|
||||
|
||||
//
|
||||
// CursorCaps
|
||||
//
|
||||
// Driver supports HW color cursor in at least hi-res modes(height >=400)
|
||||
#define D3DCURSORCAPS_COLOR 0x00000001L
|
||||
// Driver supports HW cursor also in low-res modes(height < 400)
|
||||
#define D3DCURSORCAPS_LOWRES 0x00000002L
|
||||
|
||||
//
|
||||
// DevCaps
|
||||
//
|
||||
#define D3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010L /* Device can use execute buffers from system memory */
|
||||
#define D3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020L /* Device can use execute buffers from video memory */
|
||||
#define D3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040L /* Device can use TL buffers from system memory */
|
||||
#define D3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080L /* Device can use TL buffers from video memory */
|
||||
#define D3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100L /* Device can texture from system memory */
|
||||
#define D3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200L /* Device can texture from device memory */
|
||||
#define D3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400L /* Device can draw TLVERTEX primitives */
|
||||
#define D3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800L /* Device can render without waiting for flip to complete */
|
||||
#define D3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000L /* Device can texture from nonlocal video memory */
|
||||
#define D3DDEVCAPS_DRAWPRIMITIVES2 0x00002000L /* Device can support DrawPrimitives2 */
|
||||
#define D3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000L /* Device is texturing from separate memory pools */
|
||||
#define D3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000L /* Device can support Extended DrawPrimitives2 i.e. DX7 compliant driver*/
|
||||
#define D3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000L /* Device can support transformation and lighting in hardware and DRAWPRIMITIVES2EX must be also */
|
||||
#define D3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000L /* Device supports a Tex Blt from system memory to non-local vidmem */
|
||||
#define D3DDEVCAPS_HWRASTERIZATION 0x00080000L /* Device has HW acceleration for rasterization */
|
||||
#define D3DDEVCAPS_PUREDEVICE 0x00100000L /* Device supports D3DCREATE_PUREDEVICE */
|
||||
#define D3DDEVCAPS_QUINTICRTPATCHES 0x00200000L /* Device supports quintic Beziers and BSplines */
|
||||
#define D3DDEVCAPS_RTPATCHES 0x00400000L /* Device supports Rect and Tri patches */
|
||||
#define D3DDEVCAPS_RTPATCHHANDLEZERO 0x00800000L /* Indicates that RT Patches may be drawn efficiently using handle 0 */
|
||||
#define D3DDEVCAPS_NPATCHES 0x01000000L /* Device supports N-Patches */
|
||||
|
||||
//
|
||||
// PrimitiveMiscCaps
|
||||
//
|
||||
#define D3DPMISCCAPS_MASKZ 0x00000002L
|
||||
#define D3DPMISCCAPS_LINEPATTERNREP 0x00000004L
|
||||
#define D3DPMISCCAPS_CULLNONE 0x00000010L
|
||||
#define D3DPMISCCAPS_CULLCW 0x00000020L
|
||||
#define D3DPMISCCAPS_CULLCCW 0x00000040L
|
||||
#define D3DPMISCCAPS_COLORWRITEENABLE 0x00000080L
|
||||
#define D3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x00000100L /* Device correctly clips scaled points to clip planes */
|
||||
#define D3DPMISCCAPS_CLIPTLVERTS 0x00000200L /* device will clip post-transformed vertex primitives */
|
||||
#define D3DPMISCCAPS_TSSARGTEMP 0x00000400L /* device supports D3DTA_TEMP for temporary register */
|
||||
#define D3DPMISCCAPS_BLENDOP 0x00000800L /* device supports D3DRS_BLENDOP */
|
||||
#define D3DPMISCCAPS_NULLREFERENCE 0x00001000L /* Reference Device that doesnt render */
|
||||
|
||||
//
|
||||
// LineCaps
|
||||
//
|
||||
#define D3DLINECAPS_TEXTURE 0x00000001L
|
||||
#define D3DLINECAPS_ZTEST 0x00000002L
|
||||
#define D3DLINECAPS_BLEND 0x00000004L
|
||||
#define D3DLINECAPS_ALPHACMP 0x00000008L
|
||||
#define D3DLINECAPS_FOG 0x00000010L
|
||||
|
||||
//
|
||||
// RasterCaps
|
||||
//
|
||||
#define D3DPRASTERCAPS_DITHER 0x00000001L
|
||||
#define D3DPRASTERCAPS_PAT 0x00000008L
|
||||
#define D3DPRASTERCAPS_ZTEST 0x00000010L
|
||||
#define D3DPRASTERCAPS_FOGVERTEX 0x00000080L
|
||||
#define D3DPRASTERCAPS_FOGTABLE 0x00000100L
|
||||
#define D3DPRASTERCAPS_ANTIALIASEDGES 0x00001000L
|
||||
#define D3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000L
|
||||
#define D3DPRASTERCAPS_ZBIAS 0x00004000L
|
||||
#define D3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000L
|
||||
#define D3DPRASTERCAPS_FOGRANGE 0x00010000L
|
||||
#define D3DPRASTERCAPS_ANISOTROPY 0x00020000L
|
||||
#define D3DPRASTERCAPS_WBUFFER 0x00040000L
|
||||
#define D3DPRASTERCAPS_WFOG 0x00100000L
|
||||
#define D3DPRASTERCAPS_ZFOG 0x00200000L
|
||||
#define D3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000L /* Device iterates colors perspective correct */
|
||||
#define D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE 0x00800000L
|
||||
|
||||
//
|
||||
// ZCmpCaps, AlphaCmpCaps
|
||||
//
|
||||
#define D3DPCMPCAPS_NEVER 0x00000001L
|
||||
#define D3DPCMPCAPS_LESS 0x00000002L
|
||||
#define D3DPCMPCAPS_EQUAL 0x00000004L
|
||||
#define D3DPCMPCAPS_LESSEQUAL 0x00000008L
|
||||
#define D3DPCMPCAPS_GREATER 0x00000010L
|
||||
#define D3DPCMPCAPS_NOTEQUAL 0x00000020L
|
||||
#define D3DPCMPCAPS_GREATEREQUAL 0x00000040L
|
||||
#define D3DPCMPCAPS_ALWAYS 0x00000080L
|
||||
|
||||
//
|
||||
// SourceBlendCaps, DestBlendCaps
|
||||
//
|
||||
#define D3DPBLENDCAPS_ZERO 0x00000001L
|
||||
#define D3DPBLENDCAPS_ONE 0x00000002L
|
||||
#define D3DPBLENDCAPS_SRCCOLOR 0x00000004L
|
||||
#define D3DPBLENDCAPS_INVSRCCOLOR 0x00000008L
|
||||
#define D3DPBLENDCAPS_SRCALPHA 0x00000010L
|
||||
#define D3DPBLENDCAPS_INVSRCALPHA 0x00000020L
|
||||
#define D3DPBLENDCAPS_DESTALPHA 0x00000040L
|
||||
#define D3DPBLENDCAPS_INVDESTALPHA 0x00000080L
|
||||
#define D3DPBLENDCAPS_DESTCOLOR 0x00000100L
|
||||
#define D3DPBLENDCAPS_INVDESTCOLOR 0x00000200L
|
||||
#define D3DPBLENDCAPS_SRCALPHASAT 0x00000400L
|
||||
#define D3DPBLENDCAPS_BOTHSRCALPHA 0x00000800L
|
||||
#define D3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000L
|
||||
|
||||
//
|
||||
// ShadeCaps
|
||||
//
|
||||
#define D3DPSHADECAPS_COLORGOURAUDRGB 0x00000008L
|
||||
#define D3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200L
|
||||
#define D3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000L
|
||||
#define D3DPSHADECAPS_FOGGOURAUD 0x00080000L
|
||||
|
||||
//
|
||||
// TextureCaps
|
||||
//
|
||||
#define D3DPTEXTURECAPS_PERSPECTIVE 0x00000001L /* Perspective-correct texturing is supported */
|
||||
#define D3DPTEXTURECAPS_POW2 0x00000002L /* Power-of-2 texture dimensions are required - applies to non-Cube/Volume textures only. */
|
||||
#define D3DPTEXTURECAPS_ALPHA 0x00000004L /* Alpha in texture pixels is supported */
|
||||
#define D3DPTEXTURECAPS_SQUAREONLY 0x00000020L /* Only square textures are supported */
|
||||
#define D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040L /* Texture indices are not scaled by the texture size prior to interpolation */
|
||||
#define D3DPTEXTURECAPS_ALPHAPALETTE 0x00000080L /* Device can draw alpha from texture palettes */
|
||||
// Device can use non-POW2 textures if:
|
||||
// 1) D3DTEXTURE_ADDRESS is set to CLAMP for this texture's stage
|
||||
// 2) D3DRS_WRAP(N) is zero for this texture's coordinates
|
||||
// 3) mip mapping is not enabled (use magnification filter only)
|
||||
#define D3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100L
|
||||
#define D3DPTEXTURECAPS_PROJECTED 0x00000400L /* Device can do D3DTTFF_PROJECTED */
|
||||
#define D3DPTEXTURECAPS_CUBEMAP 0x00000800L /* Device can do cubemap textures */
|
||||
#define D3DPTEXTURECAPS_VOLUMEMAP 0x00002000L /* Device can do volume textures */
|
||||
#define D3DPTEXTURECAPS_MIPMAP 0x00004000L /* Device can do mipmapped textures */
|
||||
#define D3DPTEXTURECAPS_MIPVOLUMEMAP 0x00008000L /* Device can do mipmapped volume textures */
|
||||
#define D3DPTEXTURECAPS_MIPCUBEMAP 0x00010000L /* Device can do mipmapped cube maps */
|
||||
#define D3DPTEXTURECAPS_CUBEMAP_POW2 0x00020000L /* Device requires that cubemaps be power-of-2 dimension */
|
||||
#define D3DPTEXTURECAPS_VOLUMEMAP_POW2 0x00040000L /* Device requires that volume maps be power-of-2 dimension */
|
||||
|
||||
//
|
||||
// TextureFilterCaps
|
||||
//
|
||||
#define D3DPTFILTERCAPS_MINFPOINT 0x00000100L /* Min Filter */
|
||||
#define D3DPTFILTERCAPS_MINFLINEAR 0x00000200L
|
||||
#define D3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400L
|
||||
#define D3DPTFILTERCAPS_MIPFPOINT 0x00010000L /* Mip Filter */
|
||||
#define D3DPTFILTERCAPS_MIPFLINEAR 0x00020000L
|
||||
#define D3DPTFILTERCAPS_MAGFPOINT 0x01000000L /* Mag Filter */
|
||||
#define D3DPTFILTERCAPS_MAGFLINEAR 0x02000000L
|
||||
#define D3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000L
|
||||
#define D3DPTFILTERCAPS_MAGFAFLATCUBIC 0x08000000L
|
||||
#define D3DPTFILTERCAPS_MAGFGAUSSIANCUBIC 0x10000000L
|
||||
|
||||
//
|
||||
// TextureAddressCaps
|
||||
//
|
||||
#define D3DPTADDRESSCAPS_WRAP 0x00000001L
|
||||
#define D3DPTADDRESSCAPS_MIRROR 0x00000002L
|
||||
#define D3DPTADDRESSCAPS_CLAMP 0x00000004L
|
||||
#define D3DPTADDRESSCAPS_BORDER 0x00000008L
|
||||
#define D3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010L
|
||||
#define D3DPTADDRESSCAPS_MIRRORONCE 0x00000020L
|
||||
|
||||
//
|
||||
// StencilCaps
|
||||
//
|
||||
#define D3DSTENCILCAPS_KEEP 0x00000001L
|
||||
#define D3DSTENCILCAPS_ZERO 0x00000002L
|
||||
#define D3DSTENCILCAPS_REPLACE 0x00000004L
|
||||
#define D3DSTENCILCAPS_INCRSAT 0x00000008L
|
||||
#define D3DSTENCILCAPS_DECRSAT 0x00000010L
|
||||
#define D3DSTENCILCAPS_INVERT 0x00000020L
|
||||
#define D3DSTENCILCAPS_INCR 0x00000040L
|
||||
#define D3DSTENCILCAPS_DECR 0x00000080L
|
||||
|
||||
//
|
||||
// TextureOpCaps
|
||||
//
|
||||
#define D3DTEXOPCAPS_DISABLE 0x00000001L
|
||||
#define D3DTEXOPCAPS_SELECTARG1 0x00000002L
|
||||
#define D3DTEXOPCAPS_SELECTARG2 0x00000004L
|
||||
#define D3DTEXOPCAPS_MODULATE 0x00000008L
|
||||
#define D3DTEXOPCAPS_MODULATE2X 0x00000010L
|
||||
#define D3DTEXOPCAPS_MODULATE4X 0x00000020L
|
||||
#define D3DTEXOPCAPS_ADD 0x00000040L
|
||||
#define D3DTEXOPCAPS_ADDSIGNED 0x00000080L
|
||||
#define D3DTEXOPCAPS_ADDSIGNED2X 0x00000100L
|
||||
#define D3DTEXOPCAPS_SUBTRACT 0x00000200L
|
||||
#define D3DTEXOPCAPS_ADDSMOOTH 0x00000400L
|
||||
#define D3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800L
|
||||
#define D3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000L
|
||||
#define D3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000L
|
||||
#define D3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000L
|
||||
#define D3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000L
|
||||
#define D3DTEXOPCAPS_PREMODULATE 0x00010000L
|
||||
#define D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000L
|
||||
#define D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000L
|
||||
#define D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000L
|
||||
#define D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000L
|
||||
#define D3DTEXOPCAPS_BUMPENVMAP 0x00200000L
|
||||
#define D3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000L
|
||||
#define D3DTEXOPCAPS_DOTPRODUCT3 0x00800000L
|
||||
#define D3DTEXOPCAPS_MULTIPLYADD 0x01000000L
|
||||
#define D3DTEXOPCAPS_LERP 0x02000000L
|
||||
|
||||
//
|
||||
// FVFCaps
|
||||
//
|
||||
#define D3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000ffffL /* mask for texture coordinate count field */
|
||||
#define D3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000L /* Device prefers that vertex elements not be stripped */
|
||||
#define D3DFVFCAPS_PSIZE 0x00100000L /* Device can receive point size */
|
||||
|
||||
//
|
||||
// VertexProcessingCaps
|
||||
//
|
||||
#define D3DVTXPCAPS_TEXGEN 0x00000001L /* device can do texgen */
|
||||
#define D3DVTXPCAPS_MATERIALSOURCE7 0x00000002L /* device can do DX7-level colormaterialsource ops */
|
||||
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008L /* device can do directional lights */
|
||||
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010L /* device can do positional lights (includes point and spot) */
|
||||
#define D3DVTXPCAPS_LOCALVIEWER 0x00000020L /* device can do local viewer */
|
||||
#define D3DVTXPCAPS_TWEENING 0x00000040L /* device can do vertex tweening */
|
||||
#define D3DVTXPCAPS_NO_VSDT_UBYTE4 0x00000080L /* device does not support D3DVSDT_UBYTE4 */
|
||||
|
||||
#pragma pack()
|
||||
|
||||
#endif /* (DIRECT3D_VERSION >= 0x0800) */
|
||||
#endif /* _D3D8CAPS_H_ */
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,109 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{4CC85A3A-8E85-45DB-8941-2E2E18FC9A53}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<RootNamespace>d3d8</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<UseOfAtl>Dynamic</UseOfAtl>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<LinkIncremental>false</LinkIncremental>
|
||||
<OutDir>$(SolutionDir)..\..\..\..\output\dll\</OutDir>
|
||||
<PostBuildEventUseInBuild>true</PostBuildEventUseInBuild>
|
||||
<TargetName>d3d8</TargetName>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<OutDir>$(SolutionDir)..\..\..\..\output\dll\</OutDir>
|
||||
<PostBuildEventUseInBuild>true</PostBuildEventUseInBuild>
|
||||
<TargetName>d3d8</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
<MinimalRebuild>false</MinimalRebuild>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>
|
||||
</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>false</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PrecompiledHeader />
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
</Link>
|
||||
<PostBuildEvent>
|
||||
<Command>
|
||||
</Command>
|
||||
</PostBuildEvent>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\d3d8Wrapper.h" />
|
||||
<ClInclude Include="..\d3d8Base\d3d8.h" />
|
||||
<ClInclude Include="..\d3d8Base\d3d8caps.h" />
|
||||
<ClInclude Include="..\d3d8Base\d3d8types.h" />
|
||||
<ClInclude Include="..\PointerSet.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\d3d8Wrapper.cpp" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -0,0 +1,128 @@
|
|||
#pragma once
|
||||
|
||||
const UINT PointerSetHashSize = 128;
|
||||
|
||||
struct PointerLinkedList
|
||||
{
|
||||
PVOID pKey;
|
||||
PVOID pData;
|
||||
PointerLinkedList* pNext;
|
||||
};
|
||||
|
||||
class PointerSet
|
||||
{
|
||||
public:
|
||||
PointerSet()
|
||||
{
|
||||
for(UINT i = 0; i < PointerSetHashSize; i++)
|
||||
{
|
||||
m_pHead[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
PVOID GetDataPtr(PVOID pKey)
|
||||
{
|
||||
PointerLinkedList* pThis = m_pHead[GetHash(pKey)];
|
||||
while(pThis)
|
||||
{
|
||||
if(pThis->pKey == pKey)
|
||||
{
|
||||
return pThis->pData;
|
||||
}
|
||||
pThis = pThis->pNext;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
bool AddMember(PVOID pKey, PVOID pData)
|
||||
{
|
||||
UINT Hash = GetHash(pKey);
|
||||
PointerLinkedList* pThis = new PointerLinkedList;
|
||||
if(pThis == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
pThis->pNext = m_pHead[Hash];
|
||||
pThis->pKey = pKey;
|
||||
pThis->pData = pData;
|
||||
m_pHead[Hash] = pThis;
|
||||
return true;
|
||||
}
|
||||
bool DeleteMember(PVOID pKey)
|
||||
{
|
||||
UINT Hash = GetHash(pKey);
|
||||
PointerLinkedList* pThis = m_pHead[Hash];
|
||||
PointerLinkedList* pLast = 0L;
|
||||
|
||||
if( m_pHead[Hash]->pKey == pKey )
|
||||
{
|
||||
m_pHead[Hash] = pThis->pNext;
|
||||
delete pThis;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
pLast = pThis;
|
||||
pThis = pThis->pNext;
|
||||
}
|
||||
|
||||
while( pThis )
|
||||
{
|
||||
if( pThis->pKey == pKey )
|
||||
{
|
||||
pLast->pNext = pThis->pNext;
|
||||
delete pThis;
|
||||
return true;
|
||||
}
|
||||
pLast = pThis;
|
||||
pThis = pThis->pNext;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
__forceinline UINT GetHash(PVOID pKey)
|
||||
{
|
||||
DWORD Key = (DWORD)pKey;
|
||||
return (( Key >> 3 ^ Key >> 7 ^ Key >> 11 ^ Key >> 17 ) & (PointerSetHashSize - 1));
|
||||
}
|
||||
|
||||
private:
|
||||
PointerLinkedList* m_pHead[PointerSetHashSize];
|
||||
};
|
||||
|
||||
|
||||
class ThreadSafePointerSet : public PointerSet
|
||||
{
|
||||
public:
|
||||
ThreadSafePointerSet()
|
||||
{
|
||||
InitializeCriticalSection(&m_CritSec);
|
||||
}
|
||||
~ThreadSafePointerSet()
|
||||
{
|
||||
DeleteCriticalSection(&m_CritSec);
|
||||
}
|
||||
PVOID GetDataPtr(PVOID pKey)
|
||||
{
|
||||
EnterCriticalSection(&m_CritSec);
|
||||
PVOID p = PointerSet::GetDataPtr(pKey);
|
||||
LeaveCriticalSection(&m_CritSec);
|
||||
return p;
|
||||
}
|
||||
bool AddMember(PVOID pKey, PVOID pData)
|
||||
{
|
||||
EnterCriticalSection(&m_CritSec);
|
||||
bool Result = PointerSet::AddMember(pKey, pData);
|
||||
LeaveCriticalSection(&m_CritSec);
|
||||
return Result;
|
||||
}
|
||||
bool DeleteMember(PVOID pKey)
|
||||
{
|
||||
EnterCriticalSection(&m_CritSec);
|
||||
bool Result = PointerSet::DeleteMember(pKey);
|
||||
LeaveCriticalSection(&m_CritSec);
|
||||
return Result;
|
||||
}
|
||||
|
||||
private:
|
||||
CRITICAL_SECTION m_CritSec;
|
||||
};
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,516 @@
|
|||
//#include <windows.h>
|
||||
#include <objidl.h>
|
||||
//#include <gdiplus.h>
|
||||
//using namespace Gdiplus;
|
||||
//#pragma comment (lib,"Gdiplus.lib")
|
||||
#include "PointerSet.h"
|
||||
|
||||
#define TESTDLL_API __declspec(dllexport)
|
||||
|
||||
namespace D3D8Base
|
||||
{
|
||||
#include "d3d8base/d3d8.h"
|
||||
}
|
||||
extern "C"
|
||||
{
|
||||
namespace D3D8Wrapper
|
||||
{
|
||||
class IDirect3DUnknown
|
||||
{
|
||||
|
||||
public:
|
||||
IUnknown* m_pUnk;
|
||||
ULONG m_ulRef;
|
||||
|
||||
public:
|
||||
IDirect3DUnknown(IUnknown* pUnk)
|
||||
{
|
||||
m_pUnk = pUnk;
|
||||
m_ulRef = 1;
|
||||
}
|
||||
|
||||
/*** IUnknown methods ***/
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj)
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
STDMETHOD_(ULONG,AddRef)(THIS)
|
||||
{
|
||||
m_pUnk->AddRef();
|
||||
return ++m_ulRef;
|
||||
}
|
||||
|
||||
STDMETHOD_(ULONG,Release)(THIS)
|
||||
{
|
||||
m_pUnk->Release();
|
||||
|
||||
ULONG ulRef = --m_ulRef;
|
||||
if( 0 == ulRef )
|
||||
{
|
||||
delete this;
|
||||
return 0;
|
||||
}
|
||||
return ulRef;
|
||||
}
|
||||
};
|
||||
|
||||
class IDirect3D8;
|
||||
class IDirect3DDevice8;
|
||||
|
||||
class IDirect3DResource8;
|
||||
class IDirect3DBaseTexture8;
|
||||
class IDirect3DTexture8;
|
||||
class IDirect3DVolumeTexture8;
|
||||
class IDirect3DCubeTexture8;
|
||||
|
||||
class IDirect3DVertexBuffer8;
|
||||
class IDirect3DIndexBuffer8;
|
||||
|
||||
class IDirect3DSurface8;
|
||||
class IDirect3DVolume8;
|
||||
|
||||
class IDirect3DSwapChain8;
|
||||
|
||||
class IDirect3D8 : public IDirect3DUnknown
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3D8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj)
|
||||
{
|
||||
return E_FAIL;
|
||||
}
|
||||
inline D3D8Base::IDirect3D8* GetDirect3D8() { return m_pD3D; }
|
||||
|
||||
static IDirect3D8* GetDirect3D(D3D8Base::IDirect3D8* pD3D);
|
||||
|
||||
IDirect3D8(D3D8Base::IDirect3D8*);
|
||||
STDMETHOD_(ULONG,Release)(THIS);
|
||||
|
||||
/*** IDirect3D8 methods ***/
|
||||
|
||||
STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction);
|
||||
STDMETHOD_(UINT, GetAdapterCount)(THIS);
|
||||
STDMETHOD(GetAdapterIdentifier)(THIS_ UINT Adapter,DWORD Flags,D3D8Base::D3DADAPTER_IDENTIFIER8* pIdentifier);
|
||||
STDMETHOD_(UINT, GetAdapterModeCount)(THIS_ UINT Adapter);
|
||||
STDMETHOD(EnumAdapterModes)(THIS_ UINT Adapter,UINT Mode,D3D8Base::D3DDISPLAYMODE* pMode);
|
||||
STDMETHOD(GetAdapterDisplayMode)(THIS_ UINT Adapter,D3D8Base::D3DDISPLAYMODE* pMode);
|
||||
STDMETHOD(CheckDeviceType)(THIS_ UINT Adapter,D3D8Base::D3DDEVTYPE CheckType,D3D8Base::D3DFORMAT DisplayFormat,D3D8Base::D3DFORMAT BackBufferFormat,BOOL Windowed);
|
||||
STDMETHOD(CheckDeviceFormat)(THIS_ UINT Adapter,D3D8Base::D3DDEVTYPE DeviceType,D3D8Base::D3DFORMAT AdapterFormat,DWORD Usage,D3D8Base::D3DRESOURCETYPE RType,D3D8Base::D3DFORMAT CheckFormat);
|
||||
STDMETHOD(CheckDeviceMultiSampleType)(THIS_ UINT Adapter,D3D8Base::D3DDEVTYPE DeviceType,D3D8Base::D3DFORMAT SurfaceFormat,BOOL Windowed,D3D8Base::D3DMULTISAMPLE_TYPE MultiSampleType);
|
||||
STDMETHOD(CheckDepthStencilMatch)(THIS_ UINT Adapter,D3D8Base::D3DDEVTYPE DeviceType,D3D8Base::D3DFORMAT AdapterFormat,D3D8Base::D3DFORMAT RenderTargetFormat,D3D8Base::D3DFORMAT DepthStencilFormat);
|
||||
STDMETHOD(GetDeviceCaps)(THIS_ UINT Adapter,D3D8Base::D3DDEVTYPE DeviceType,D3D8Base::D3DCAPS8* pCaps);
|
||||
STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter);
|
||||
STDMETHOD(CreateDevice)(THIS_ UINT Adapter,D3D8Base::D3DDEVTYPE DeviceType,HWND hFocusWindow,DWORD BehaviorFlags,D3D8Base::D3DPRESENT_PARAMETERS* pPresentationParameters,D3D8Wrapper::IDirect3DDevice8** ppReturnedDeviceInterface);
|
||||
|
||||
};
|
||||
|
||||
class IDirect3DDevice8 : public IDirect3DUnknown
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DDevice8* m_pDevice;
|
||||
static ThreadSafePointerSet m_List;
|
||||
|
||||
D3D8Wrapper::IDirect3DSurface8 * rTarget;
|
||||
D3D8Wrapper::IDirect3DSurface8 * zStencil;
|
||||
public:
|
||||
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj)
|
||||
{
|
||||
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
static IDirect3DDevice8* GetDirect3DDevice(D3D8Base::IDirect3DDevice8* pDevice);
|
||||
__forceinline D3D8Base::IDirect3DDevice8* GetD3D8Device() { return m_pDevice; }
|
||||
|
||||
/*** IDirect3DUnknown methods ***/
|
||||
STDMETHOD_(ULONG,Release)(THIS);
|
||||
|
||||
|
||||
IDirect3DDevice8(D3D8Base::IDirect3DDevice8*);
|
||||
|
||||
|
||||
/*** IDirect3DDevice8 methods ***/
|
||||
STDMETHOD(TestCooperativeLevel)(THIS);
|
||||
STDMETHOD_(UINT, GetAvailableTextureMem)(THIS);
|
||||
STDMETHOD(ResourceManagerDiscardBytes)(THIS_ DWORD Bytes);
|
||||
STDMETHOD(GetDirect3D)(THIS_ D3D8Wrapper::IDirect3D8** ppD3D8);
|
||||
STDMETHOD(GetDeviceCaps)(THIS_ D3D8Base::D3DCAPS8* pCaps);
|
||||
STDMETHOD(GetDisplayMode)(THIS_ D3D8Base::D3DDISPLAYMODE* pMode);
|
||||
STDMETHOD(GetCreationParameters)(THIS_ D3D8Base::D3DDEVICE_CREATION_PARAMETERS *pParameters);
|
||||
STDMETHOD(SetCursorProperties)(THIS_ UINT XHotSpot,UINT YHotSpot,D3D8Wrapper::IDirect3DSurface8* pCursorBitmap);
|
||||
STDMETHOD_(void, SetCursorPosition)(THIS_ int X,int Y,DWORD Flags);
|
||||
STDMETHOD_(BOOL, ShowCursor)(THIS_ BOOL bShow);
|
||||
STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3D8Base::D3DPRESENT_PARAMETERS* pPresentationParameters,D3D8Wrapper::IDirect3DSwapChain8** pSwapChain);
|
||||
STDMETHOD(Reset)(THIS_ D3D8Base::D3DPRESENT_PARAMETERS* pPresentationParameters);
|
||||
STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion);
|
||||
STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer,D3D8Base::D3DBACKBUFFER_TYPE Type,D3D8Wrapper::IDirect3DSurface8** ppBackBuffer);
|
||||
STDMETHOD(GetRasterStatus)(THIS_ D3D8Base::D3DRASTER_STATUS* pRasterStatus);
|
||||
STDMETHOD_(void, SetGammaRamp)(THIS_ DWORD Flags,CONST D3D8Base::D3DGAMMARAMP* pRamp);
|
||||
STDMETHOD_(void, GetGammaRamp)(THIS_ D3D8Base::D3DGAMMARAMP* pRamp);
|
||||
STDMETHOD(CreateTexture)(THIS_ UINT Width,UINT Height,UINT Levels,DWORD Usage,D3D8Base::D3DFORMAT Format,D3D8Base::D3DPOOL Pool,D3D8Wrapper::IDirect3DTexture8** ppTexture);
|
||||
STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width,UINT Height,UINT Depth,UINT Levels,DWORD Usage,D3D8Base::D3DFORMAT Format,D3D8Base::D3DPOOL Pool,D3D8Wrapper::IDirect3DVolumeTexture8** ppVolumeTexture);
|
||||
STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength,UINT Levels,DWORD Usage,D3D8Base::D3DFORMAT Format,D3D8Base::D3DPOOL Pool,D3D8Wrapper::IDirect3DCubeTexture8** ppCubeTexture);
|
||||
STDMETHOD(CreateVertexBuffer)(THIS_ UINT Length,DWORD Usage,DWORD FVF,D3D8Base::D3DPOOL Pool,D3D8Wrapper::IDirect3DVertexBuffer8** ppVertexBuffer);
|
||||
STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length,DWORD Usage,D3D8Base::D3DFORMAT Format,D3D8Base::D3DPOOL Pool,D3D8Wrapper::IDirect3DIndexBuffer8** ppIndexBuffer);
|
||||
STDMETHOD(CreateRenderTarget)(THIS_ UINT Width,UINT Height,D3D8Base::D3DFORMAT Format,D3D8Base::D3DMULTISAMPLE_TYPE MultiSample,BOOL Lockable,D3D8Wrapper::IDirect3DSurface8** ppSurface);
|
||||
STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width,UINT Height,D3D8Base::D3DFORMAT Format,D3D8Base::D3DMULTISAMPLE_TYPE MultiSample,D3D8Wrapper::IDirect3DSurface8** ppSurface);
|
||||
STDMETHOD(CreateImageSurface)(THIS_ UINT Width,UINT Height,D3D8Base::D3DFORMAT Format,D3D8Wrapper::IDirect3DSurface8** ppSurface);
|
||||
STDMETHOD(CopyRects)(THIS_ D3D8Wrapper::IDirect3DSurface8* pSourceSurface,CONST RECT* pSourceRectsArray,UINT cRects,D3D8Wrapper::IDirect3DSurface8* pDestinationSurface,CONST POINT* pDestPointsArray);
|
||||
STDMETHOD(UpdateTexture)(THIS_ D3D8Wrapper::IDirect3DBaseTexture8* pSourceTexture,D3D8Wrapper::IDirect3DBaseTexture8* pDestinationTexture);
|
||||
STDMETHOD(GetFrontBuffer)(THIS_ D3D8Wrapper::IDirect3DSurface8* pDestSurface);
|
||||
STDMETHOD(SetRenderTarget)(THIS_ D3D8Wrapper::IDirect3DSurface8* pRenderTarget,D3D8Wrapper::IDirect3DSurface8* pNewZStencil);
|
||||
STDMETHOD(GetRenderTarget)(THIS_ D3D8Wrapper::IDirect3DSurface8** ppRenderTarget);
|
||||
STDMETHOD(GetDepthStencilSurface)(THIS_ D3D8Wrapper::IDirect3DSurface8** ppZStencilSurface);
|
||||
STDMETHOD(BeginScene)(THIS);
|
||||
STDMETHOD(EndScene)(THIS);
|
||||
STDMETHOD(Clear)(THIS_ DWORD Count,CONST D3D8Base::D3DRECT* pRects,DWORD Flags,D3D8Base::D3DCOLOR Color,float Z,DWORD Stencil);
|
||||
STDMETHOD(SetTransform)(THIS_ D3D8Base::D3DTRANSFORMSTATETYPE State,CONST D3D8Base::D3DMATRIX* pMatrix);
|
||||
STDMETHOD(GetTransform)(THIS_ D3D8Base::D3DTRANSFORMSTATETYPE State,D3D8Base::D3DMATRIX* pMatrix);
|
||||
STDMETHOD(MultiplyTransform)(THIS_ D3D8Base::D3DTRANSFORMSTATETYPE,CONST D3D8Base::D3DMATRIX*);
|
||||
STDMETHOD(SetViewport)(THIS_ CONST D3D8Base::D3DVIEWPORT8* pViewport);
|
||||
STDMETHOD(GetViewport)(THIS_ D3D8Base::D3DVIEWPORT8* pViewport);
|
||||
STDMETHOD(SetMaterial)(THIS_ CONST D3D8Base::D3DMATERIAL8* pMaterial);
|
||||
STDMETHOD(GetMaterial)(THIS_ D3D8Base::D3DMATERIAL8* pMaterial);
|
||||
STDMETHOD(SetLight)(THIS_ DWORD Index,CONST D3D8Base::D3DLIGHT8*);
|
||||
STDMETHOD(GetLight)(THIS_ DWORD Index,D3D8Base::D3DLIGHT8*);
|
||||
STDMETHOD(LightEnable)(THIS_ DWORD Index,BOOL Enable);
|
||||
STDMETHOD(GetLightEnable)(THIS_ DWORD Index,BOOL* pEnable);
|
||||
STDMETHOD(SetClipPlane)(THIS_ DWORD Index,CONST float* pPlane);
|
||||
STDMETHOD(GetClipPlane)(THIS_ DWORD Index,float* pPlane);
|
||||
STDMETHOD(SetRenderState)(THIS_ D3D8Base::D3DRENDERSTATETYPE State,DWORD Value);
|
||||
STDMETHOD(GetRenderState)(THIS_ D3D8Base::D3DRENDERSTATETYPE State,DWORD* pValue);
|
||||
STDMETHOD(BeginStateBlock)(THIS);
|
||||
STDMETHOD(EndStateBlock)(THIS_ DWORD* pToken);
|
||||
STDMETHOD(ApplyStateBlock)(THIS_ DWORD Token);
|
||||
STDMETHOD(CaptureStateBlock)(THIS_ DWORD Token);
|
||||
STDMETHOD(DeleteStateBlock)(THIS_ DWORD Token);
|
||||
STDMETHOD(CreateStateBlock)(THIS_ D3D8Base::D3DSTATEBLOCKTYPE Type,DWORD* pToken);
|
||||
STDMETHOD(SetClipStatus)(THIS_ CONST D3D8Base::D3DCLIPSTATUS8* pClipStatus);
|
||||
STDMETHOD(GetClipStatus)(THIS_ D3D8Base::D3DCLIPSTATUS8* pClipStatus);
|
||||
STDMETHOD(GetTexture)(THIS_ DWORD Stage,D3D8Wrapper::IDirect3DBaseTexture8** ppTexture);
|
||||
STDMETHOD(SetTexture)(THIS_ DWORD Stage,D3D8Wrapper::IDirect3DBaseTexture8* pTexture);
|
||||
STDMETHOD(GetTextureStageState)(THIS_ DWORD Stage,D3D8Base::D3DTEXTURESTAGESTATETYPE Type,DWORD* pValue);
|
||||
STDMETHOD(SetTextureStageState)(THIS_ DWORD Stage,D3D8Base::D3DTEXTURESTAGESTATETYPE Type,DWORD Value);
|
||||
STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses);
|
||||
STDMETHOD(GetInfo)(THIS_ DWORD DevInfoID,void* pDevInfoStruct,DWORD DevInfoStructSize);
|
||||
STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber,CONST PALETTEENTRY* pEntries);
|
||||
STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries);
|
||||
STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber);
|
||||
STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber);
|
||||
STDMETHOD(DrawPrimitive)(THIS_ D3D8Base::D3DPRIMITIVETYPE PrimitiveType,UINT StartVertex,UINT PrimitiveCount);
|
||||
STDMETHOD(DrawIndexedPrimitive)(THIS_ D3D8Base::D3DPRIMITIVETYPE,UINT minIndex,UINT NumVertices,UINT startIndex,UINT primCount);
|
||||
STDMETHOD(DrawPrimitiveUP)(THIS_ D3D8Base::D3DPRIMITIVETYPE PrimitiveType,UINT PrimitiveCount,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride);
|
||||
STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3D8Base::D3DPRIMITIVETYPE PrimitiveType,UINT MinVertexIndex,UINT NumVertexIndices,UINT PrimitiveCount,CONST void* pIndexData,D3D8Base::D3DFORMAT IndexDataFormat,CONST void* pVertexStreamZeroData,UINT VertexStreamZeroStride);
|
||||
STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex,UINT DestIndex,UINT VertexCount,D3D8Wrapper::IDirect3DVertexBuffer8* pDestBuffer,DWORD Flags);
|
||||
STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pDeclaration,CONST DWORD* pFunction,DWORD* pHandle,DWORD Usage);
|
||||
STDMETHOD(SetVertexShader)(THIS_ DWORD Handle);
|
||||
STDMETHOD(GetVertexShader)(THIS_ DWORD* pHandle);
|
||||
STDMETHOD(DeleteVertexShader)(THIS_ DWORD Handle);
|
||||
STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD Register,CONST void* pConstantData,DWORD ConstantCount);
|
||||
STDMETHOD(GetVertexShaderConstant)(THIS_ DWORD Register,void* pConstantData,DWORD ConstantCount);
|
||||
STDMETHOD(GetVertexShaderDeclaration)(THIS_ DWORD Handle,void* pData,DWORD* pSizeOfData);
|
||||
STDMETHOD(GetVertexShaderFunction)(THIS_ DWORD Handle,void* pData,DWORD* pSizeOfData);
|
||||
STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber,D3D8Wrapper::IDirect3DVertexBuffer8* pStreamData,UINT Stride);
|
||||
STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber,D3D8Wrapper::IDirect3DVertexBuffer8** ppStreamData,UINT* pStride);
|
||||
STDMETHOD(SetIndices)(THIS_ D3D8Wrapper::IDirect3DIndexBuffer8* pIndexData,UINT BaseVertexIndex);
|
||||
STDMETHOD(GetIndices)(THIS_ D3D8Wrapper::IDirect3DIndexBuffer8** ppIndexData,UINT* pBaseVertexIndex);
|
||||
STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction,DWORD* pHandle);
|
||||
STDMETHOD(SetPixelShader)(THIS_ DWORD Handle);
|
||||
STDMETHOD(GetPixelShader)(THIS_ DWORD* pHandle);
|
||||
STDMETHOD(DeletePixelShader)(THIS_ DWORD Handle);
|
||||
STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD Register,CONST void* pConstantData,DWORD ConstantCount);
|
||||
STDMETHOD(GetPixelShaderConstant)(THIS_ DWORD Register,void* pConstantData,DWORD ConstantCount);
|
||||
STDMETHOD(GetPixelShaderFunction)(THIS_ DWORD Handle,void* pData,DWORD* pSizeOfData);
|
||||
STDMETHOD(DrawRectPatch)(THIS_ UINT Handle,CONST float* pNumSegs,CONST D3D8Base::D3DRECTPATCH_INFO* pRectPatchInfo);
|
||||
STDMETHOD(DrawTriPatch)(THIS_ UINT Handle,CONST float* pNumSegs,CONST D3D8Base::D3DTRIPATCH_INFO* pTriPatchInfo);
|
||||
STDMETHOD(DeletePatch)(THIS_ UINT Handle);
|
||||
};
|
||||
|
||||
class IDirect3DSwapChain8 : public IDirect3DUnknown
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DSwapChain8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
/*** IUnknown methods ***/
|
||||
STDMETHOD_(ULONG,Release)(THIS);
|
||||
|
||||
static IDirect3DSwapChain8* GetSwapChain(D3D8Base::IDirect3DSwapChain8* pSwapChain);
|
||||
inline D3D8Base::IDirect3DSwapChain8* GetSwapChain8() { return m_pD3D; }
|
||||
|
||||
IDirect3DSwapChain8(D3D8Base::IDirect3DSwapChain8*);
|
||||
|
||||
STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect,CONST RECT* pDestRect,HWND hDestWindowOverride,CONST RGNDATA* pDirtyRegion);
|
||||
STDMETHOD(GetBackBuffer)(THIS_ UINT BackBuffer,D3D8Base::D3DBACKBUFFER_TYPE Type,D3D8Wrapper::IDirect3DSurface8** ppBackBuffer);
|
||||
};
|
||||
|
||||
class IDirect3DResource8 : public IDirect3DUnknown
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DResource8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
/*** IUnknown methods ***/
|
||||
STDMETHOD_(ULONG,Release)(THIS);
|
||||
|
||||
static IDirect3DResource8* GetResource(D3D8Base::IDirect3DResource8* pSwapChain);
|
||||
inline D3D8Base::IDirect3DResource8* GetResource() { return m_pD3D; }
|
||||
|
||||
IDirect3DResource8(D3D8Base::IDirect3DResource8*);
|
||||
|
||||
IDirect3DResource8(D3D8Wrapper::IDirect3DResource8*);
|
||||
|
||||
D3D8Base::IDirect3DResource8* getReal();
|
||||
|
||||
STDMETHOD(GetDevice)(THIS_ D3D8Wrapper::IDirect3DDevice8** ppDevice);
|
||||
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags);
|
||||
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData);
|
||||
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid);
|
||||
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew);
|
||||
STDMETHOD_(DWORD, GetPriority)(THIS);
|
||||
STDMETHOD_(void, PreLoad)(THIS);
|
||||
STDMETHOD_(D3D8Base::D3DRESOURCETYPE, GetType)(THIS);
|
||||
};
|
||||
|
||||
|
||||
|
||||
class IDirect3DBaseTexture8 : public IDirect3DResource8
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DBaseTexture8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
|
||||
IDirect3DBaseTexture8(D3D8Base::IDirect3DBaseTexture8*);
|
||||
|
||||
IDirect3DBaseTexture8(D3D8Wrapper::IDirect3DBaseTexture8*);
|
||||
|
||||
D3D8Base::IDirect3DBaseTexture8* getReal2();
|
||||
|
||||
/*
|
||||
STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE;
|
||||
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
|
||||
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
|
||||
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
|
||||
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
|
||||
STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
|
||||
STDMETHOD_(void, PreLoad)(THIS) PURE;
|
||||
STDMETHOD_(D3D8Base::D3DRESOURCETYPE, GetType)(THIS) PURE;
|
||||
*/
|
||||
STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew);
|
||||
STDMETHOD_(DWORD, GetLOD)(THIS);
|
||||
STDMETHOD_(DWORD, GetLevelCount)(THIS);
|
||||
};
|
||||
|
||||
|
||||
class IDirect3DTexture8 : public IDirect3DBaseTexture8
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DTexture8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
|
||||
IDirect3DTexture8(D3D8Base::IDirect3DTexture8*);
|
||||
|
||||
//D3D8Base::IDirect3DTexture8* getReal2();
|
||||
|
||||
|
||||
/*
|
||||
STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE;
|
||||
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
|
||||
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
|
||||
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
|
||||
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
|
||||
STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
|
||||
STDMETHOD_(void, PreLoad)(THIS) PURE;
|
||||
STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
|
||||
STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
|
||||
STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
|
||||
STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
|
||||
*/
|
||||
|
||||
STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3D8Base::D3DSURFACE_DESC *pDesc);
|
||||
STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level,D3D8Wrapper::IDirect3DSurface8** ppSurfaceLevel);
|
||||
STDMETHOD(LockRect)(THIS_ UINT Level,D3D8Base::D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags);
|
||||
STDMETHOD(UnlockRect)(THIS_ UINT Level);
|
||||
STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pDirtyRect);
|
||||
};
|
||||
|
||||
|
||||
|
||||
class IDirect3DVolumeTexture8 : public IDirect3DBaseTexture8
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DVolumeTexture8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
|
||||
IDirect3DVolumeTexture8(D3D8Base::IDirect3DVolumeTexture8*);
|
||||
|
||||
/*
|
||||
STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE;
|
||||
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
|
||||
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
|
||||
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
|
||||
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
|
||||
STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
|
||||
STDMETHOD_(void, PreLoad)(THIS) PURE;
|
||||
STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
|
||||
STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
|
||||
STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
|
||||
STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
|
||||
*/
|
||||
|
||||
STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3D8Base::D3DVOLUME_DESC *pDesc);
|
||||
STDMETHOD(GetVolumeLevel)(THIS_ UINT Level,D3D8Wrapper::IDirect3DVolume8** ppVolumeLevel);
|
||||
STDMETHOD(LockBox)(THIS_ UINT Level,D3D8Base::D3DLOCKED_BOX* pLockedVolume,CONST D3D8Base::D3DBOX* pBox,DWORD Flags);
|
||||
STDMETHOD(UnlockBox)(THIS_ UINT Level);
|
||||
STDMETHOD(AddDirtyBox)(THIS_ CONST D3D8Base::D3DBOX* pDirtyBox);
|
||||
};
|
||||
|
||||
|
||||
|
||||
class IDirect3DCubeTexture8 : public IDirect3DBaseTexture8
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DCubeTexture8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
|
||||
IDirect3DCubeTexture8(D3D8Base::IDirect3DCubeTexture8*);
|
||||
|
||||
/*
|
||||
STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE;
|
||||
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
|
||||
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
|
||||
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
|
||||
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
|
||||
STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
|
||||
STDMETHOD_(void, PreLoad)(THIS) PURE;
|
||||
STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
|
||||
STDMETHOD_(DWORD, SetLOD)(THIS_ DWORD LODNew) PURE;
|
||||
STDMETHOD_(DWORD, GetLOD)(THIS) PURE;
|
||||
STDMETHOD_(DWORD, GetLevelCount)(THIS) PURE;
|
||||
*/
|
||||
STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3D8Base::D3DSURFACE_DESC *pDesc);
|
||||
STDMETHOD(GetCubeMapSurface)(THIS_ D3D8Base::D3DCUBEMAP_FACES FaceType,UINT Level,D3D8Wrapper::IDirect3DSurface8** ppCubeMapSurface);
|
||||
STDMETHOD(LockRect)(THIS_ D3D8Base::D3DCUBEMAP_FACES FaceType,UINT Level,D3D8Base::D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags);
|
||||
STDMETHOD(UnlockRect)(THIS_ D3D8Base::D3DCUBEMAP_FACES FaceType,UINT Level);
|
||||
STDMETHOD(AddDirtyRect)(THIS_ D3D8Base::D3DCUBEMAP_FACES FaceType,CONST RECT* pDirtyRect);
|
||||
};
|
||||
|
||||
|
||||
class IDirect3DVertexBuffer8 : public IDirect3DResource8
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DVertexBuffer8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
|
||||
IDirect3DVertexBuffer8(D3D8Base::IDirect3DVertexBuffer8*);
|
||||
|
||||
D3D8Base::IDirect3DVertexBuffer8* getReal2();
|
||||
|
||||
/*
|
||||
STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE;
|
||||
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
|
||||
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
|
||||
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
|
||||
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
|
||||
STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
|
||||
STDMETHOD_(void, PreLoad)(THIS) PURE;
|
||||
STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
|
||||
*/
|
||||
STDMETHOD(Lock)(THIS_ UINT OffsetToLock,UINT SizeToLock,BYTE** ppbData,DWORD Flags);
|
||||
STDMETHOD(Unlock)(THIS);
|
||||
STDMETHOD(GetDesc)(THIS_ D3D8Base::D3DVERTEXBUFFER_DESC *pDesc);
|
||||
};
|
||||
|
||||
|
||||
|
||||
class IDirect3DIndexBuffer8 : public IDirect3DResource8
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DIndexBuffer8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
|
||||
IDirect3DIndexBuffer8(D3D8Base::IDirect3DIndexBuffer8*);
|
||||
|
||||
D3D8Base::IDirect3DIndexBuffer8* getReal2();
|
||||
|
||||
/*
|
||||
STDMETHOD(GetDevice)(THIS_ IDirect3DDevice8** ppDevice) PURE;
|
||||
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags) PURE;
|
||||
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData) PURE;
|
||||
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
|
||||
STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
|
||||
STDMETHOD_(DWORD, GetPriority)(THIS) PURE;
|
||||
STDMETHOD_(void, PreLoad)(THIS) PURE;
|
||||
STDMETHOD_(D3DRESOURCETYPE, GetType)(THIS) PURE;
|
||||
*/
|
||||
STDMETHOD(Lock)(THIS_ UINT OffsetToLock,UINT SizeToLock,BYTE** ppbData,DWORD Flags);
|
||||
STDMETHOD(Unlock)(THIS);
|
||||
STDMETHOD(GetDesc)(THIS_ D3D8Base::D3DINDEXBUFFER_DESC *pDesc);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
class IDirect3DSurface8 : public IDirect3DUnknown
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DSurface8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
|
||||
IDirect3DSurface8(D3D8Base::IDirect3DSurface8*);
|
||||
static IDirect3DSurface8* GetSurface(D3D8Base::IDirect3DSurface8* pSurface);
|
||||
inline D3D8Base::IDirect3DSurface8* GetSurface8() { return m_pD3D; }
|
||||
|
||||
/*** IDirect3DUnknown methods ***/
|
||||
STDMETHOD_(ULONG, Release)(THIS);
|
||||
|
||||
D3D8Base::IDirect3DSurface8* getReal();
|
||||
|
||||
STDMETHOD(GetDevice)(THIS_ D3D8Wrapper::IDirect3DDevice8** ppDevice);
|
||||
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags);
|
||||
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData);
|
||||
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid);
|
||||
STDMETHOD(GetContainer)(THIS_ REFIID riid,void** ppContainer);
|
||||
STDMETHOD(GetDesc)(THIS_ D3D8Base::D3DSURFACE_DESC *pDesc);
|
||||
STDMETHOD(LockRect)(THIS_ D3D8Base::D3DLOCKED_RECT* pLockedRect,CONST RECT* pRect,DWORD Flags);
|
||||
STDMETHOD(UnlockRect)(THIS);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
class IDirect3DVolume8 : public IDirect3DUnknown
|
||||
{
|
||||
protected:
|
||||
D3D8Base::IDirect3DVolume8* m_pD3D;
|
||||
static ThreadSafePointerSet m_List;
|
||||
public:
|
||||
|
||||
IDirect3DVolume8(D3D8Base::IDirect3DVolume8*);
|
||||
|
||||
|
||||
STDMETHOD(GetDevice)(THIS_ D3D8Wrapper::IDirect3DDevice8** ppDevice);
|
||||
STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid,CONST void* pData,DWORD SizeOfData,DWORD Flags);
|
||||
STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid,void* pData,DWORD* pSizeOfData);
|
||||
STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid);
|
||||
STDMETHOD(GetContainer)(THIS_ REFIID riid,void** ppContainer);
|
||||
STDMETHOD(GetDesc)(THIS_ D3D8Base::D3DVOLUME_DESC *pDesc);
|
||||
STDMETHOD(LockBox)(THIS_ D3D8Base::D3DLOCKED_BOX * pLockedVolume,CONST D3D8Base::D3DBOX* pBox,DWORD Flags);
|
||||
STDMETHOD(UnlockBox)(THIS);
|
||||
};
|
||||
|
||||
|
||||
typedef D3D8Base::IDirect3D8* (WINAPI *D3DCREATE)(UINT);
|
||||
D3D8Wrapper::IDirect3D8* WINAPI Direct3DCreate8(UINT Version);
|
||||
}
|
||||
}
|
|
@ -18,6 +18,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-video-jabo", ".
|
|||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mupen64plus-video-glide64", "..\..\..\mupen64plus-video-glide64\projects\msvc10\mupen64plus-video-glide64.vcxproj", "{F3E6138A-C318-4020-B408-A9A24D8B3DE7}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "D3D8Interceptor", "..\..\..\D3D8Interceptor\D3D8Interceptor\D3D8Interceptor.vcxproj", "{4CC85A3A-8E85-45DB-8941-2E2E18FC9A53}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
|
@ -60,6 +62,10 @@ Global
|
|||
{F3E6138A-C318-4020-B408-A9A24D8B3DE7}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F3E6138A-C318-4020-B408-A9A24D8B3DE7}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{F3E6138A-C318-4020-B408-A9A24D8B3DE7}.Release|Win32.Build.0 = Release|Win32
|
||||
{4CC85A3A-8E85-45DB-8941-2E2E18FC9A53}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{4CC85A3A-8E85-45DB-8941-2E2E18FC9A53}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{4CC85A3A-8E85-45DB-8941-2E2E18FC9A53}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{4CC85A3A-8E85-45DB-8941-2E2E18FC9A53}.Release|Win32.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
Loading…
Reference in New Issue