32 const LPD3DENUMDEVICESCALLBACK7 callback = (LPD3DENUMDEVICESCALLBACK7)
cb;
42 desc.dwDevCaps = D3DDEVCAPS_FLOATTLVERTEX | D3DDEVCAPS_EXECUTEVIDEOMEMORY
43 | D3DDEVCAPS_TLVERTEXVIDEOMEMORY | D3DDEVCAPS_TEXTUREVIDEOMEMORY
44 | D3DDEVCAPS_DRAWPRIMTLVERTEX | D3DDEVCAPS_CANRENDERAFTERFLIP
45 | D3DDEVCAPS_DRAWPRIMITIVES2 | D3DDEVCAPS_DRAWPRIMITIVES2EX
46 | D3DDEVCAPS_HWTRANSFORMANDLIGHT | D3DDEVCAPS_HWRASTERIZATION;
48 desc.dwMinTextureWidth = 1;
49 desc.dwMinTextureHeight = 1;
50 desc.dwMaxTextureWidth = 4096;
51 desc.dwMaxTextureHeight = 4096;
53 desc.dwMaxTextureAspectRatio = 4096;
54 desc.dwMaxAnisotropy = 16;
56 desc.wMaxTextureBlendStages = 8;
57 desc.wMaxSimultaneousTextures = 8;
59 desc.dwMaxActiveLights = 8;
61 desc.wMaxUserClipPlanes = 6;
62 desc.wMaxVertexBlendMatrices = 4;
64 desc.deviceGUID = IID_IDirect3DHALDevice;
69 callback(
"DTTR Hardware Accelerated Device",
"HAL", &
desc,
ctx);
108 const LPD3DENUMPIXELFORMATSCALLBACK callback = (LPD3DENUMPIXELFORMATSCALLBACK)
cb;
115 memset(&fmt16, 0,
sizeof(fmt16));
116 fmt16.dwSize =
sizeof(DDPIXELFORMAT);
117 fmt16.dwFlags = DDPF_ZBUFFER;
118 fmt16.dwZBufferBitDepth = 16;
119 fmt16.dwZBitMask = 0xFFFF;
121 const HRESULT result = callback(&fmt16,
ctx);
123 if (result != D3DENUMRET_OK) {
127 DDPIXELFORMAT fmt24s8;
128 memset(&fmt24s8, 0,
sizeof(fmt24s8));
129 fmt24s8.dwSize =
sizeof(DDPIXELFORMAT);
130 fmt24s8.dwFlags = DDPF_ZBUFFER | DDPF_STENCILBUFFER;
131 fmt24s8.dwZBufferBitDepth = 32;
132 fmt24s8.dwStencilBitDepth = 8;
133 fmt24s8.dwZBitMask = 0x00FFFFFF;
134 fmt24s8.dwStencilBitMask = 0xFF000000;
136 callback(&fmt24s8,
ctx);
144 .QueryInterface = d3d7_query_interface,
145 .AddRef = d3d7_addref,
146 .Release = d3d7_release,
151 .EvictManagedTextures = d3d7_evict_managed_textures,
static DTTR_Graphics_COM_Direct3D7_VT vtbl
DTTR_Graphics_COM_Direct3D7 * dttr_graphics_com_create_direct3d7()
static HRESULT d3d7_enumzbufferformats(DTTR_Graphics_COM_Direct3D7 *self, void *guid, void *cb, void *ctx)
static DTTR_Graphics_COM_Direct3DDevice7 * d3d7_device
static DTTR_Graphics_COM_Direct3DDevice7 * d3d7_get_device()
static HRESULT d3d7_createvertexbuffer(DTTR_Graphics_COM_Direct3D7 *self, void *desc, void **vb, DWORD flags)
static HRESULT d3d7_enum_devices(DTTR_Graphics_COM_Direct3D7 *self, void *cb, void *ctx)
static HRESULT d3d7_createdevice(DTTR_Graphics_COM_Direct3D7 *self, void *guid, void *surf, void **dev)
static const DWORD D3D7_MAX_TEXTURE_REPEAT
DTTR_Graphics_COM_Direct3DDevice7 * self
DTTR_Graphics_COM_Direct3DDevice7 * dttr_graphics_com_create_direct3ddevice7()
DTTR_Graphics_COM_Direct3DDevice7 void *status DTTR_Graphics_COM_Direct3DDevice7 DWORD DWORD void DWORD DWORD f DTTR_Graphics_COM_Direct3DDevice7 DWORD void * vb
DTTR_Graphics_COM_Direct3DDevice7 void DWORD flags DWORD void DWORD flags
DTTR_Graphics_COM_DirectDraw7 DWORD void * desc
DTTR_Graphics_COM_DirectDrawSurface7 DWORD flags void NULL
#define DTTR_COM_NOOP_HRESULT(fn,...)
#define DTTR_COM_ADDREF(fn, type)
#define DTTR_COM_QI_SELF(fn, type)
#define DTTR_COM_RELEASE(fn, type)
DTTR_Graphics_COM_Direct3D7_VT * vtbl