port: GrpDevice verbatim 40250 (Create over the recording device, declaration vertex shaders -> stream-0 FVF)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-30 14:50:21 +09:00
co-authored by Claude Opus 5.5
parent b5d413afa6
commit 65c43a84cd
9 changed files with 814 additions and 188 deletions
+9
View File
@@ -548,6 +548,8 @@ typedef enum _D3DVSD_TOKENTYPE
#define D3DVSDE_TEXCOORD1 8
#define D3DVSDE_TEXCOORD2 9
#define D3DVSDE_TEXCOORD3 10
#define D3DVSDE_POSITION2 11
#define D3DVSDE_NORMAL2 12
#define D3DFVF_TEXTUREFORMAT2 0
#define D3DFVF_TEXTUREFORMAT1 3
@@ -708,11 +710,17 @@ typedef struct _D3DGAMMARAMP
#define D3DPTADDRESSCAPS_BORDER 0x00000008L
#define D3DADAPTER_DEFAULT 0
#define D3DCREATE_PUREDEVICE 0x00000010L
#define D3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020L
#define D3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040L
#define D3DCREATE_MIXED_VERTEXPROCESSING 0x00000080L
#define D3DVS_VERSION(_Major, _Minor) (0xFFFE0000 | ((_Major) << 8) | (_Minor))
#define D3DPMISCCAPS_CLIPTLVERTS 0x00000200L
#define D3DVTXPCAPS_TEXGEN 0x00000001L
#define D3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008L
#define D3DVTXPCAPS_POSITIONALLIGHTS 0x00000010L
#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001
#define D3DPRESENT_INTERVAL_IMMEDIATE 0x80000000L
// COM interfaces: platform/ owns every instance. The resource hierarchy is kept so the implicit
// upcasts 40250 relies on (texture -> base texture) compile; of the resources only the buffers carry
@@ -721,6 +729,7 @@ typedef struct _D3DGAMMARAMP
struct IDirect3D8
{
virtual ~IDirect3D8() = default;
virtual ULONG Release() { return 0; }
virtual HRESULT GetAdapterIdentifier(UINT Adapter, DWORD Flags, D3DADAPTER_IDENTIFIER8* pIdentifier) = 0;
virtual HRESULT GetAdapterDisplayMode(UINT Adapter, D3DDISPLAYMODE* pMode) = 0;
virtual UINT GetAdapterModeCount(UINT Adapter) = 0;
+3
View File
@@ -100,8 +100,11 @@ uintptr_t _beginthreadex(void* security, unsigned stack_size, unsigned (*start_a
#define MB_OK 0x00000000L
#define MB_ICONHAND 0x00000010L
#define MB_ICONSTOP MB_ICONHAND
#define MB_TOPMOST 0x00040000L
#define IDOK 1
int MessageBox(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
// user32 ReleaseDC: the host owns the window and hands out no DC, so there is none to release.
inline int ReleaseDC(HWND, HDC) { return 1; }
// winmm `timeGetTime`: milliseconds since system start, wrapping at 2^32.
DWORD timeGetTime();