diff fuhtark_test/include/ddk/d3dnthal.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/ddk/d3dnthal.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,263 @@
+/* 
+ * Direct3D NT driver interface
+ */
+
+#ifndef __DDK_D3DNTHAL_H
+#define __DDK_D3DNTHAL_H
+
+#include <ddrawint.h>
+#include <d3dtypes.h>
+#include <d3dcaps.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+DEFINE_GUID(GUID_D3DCallbacks,                   0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02);
+DEFINE_GUID(GUID_D3DCallbacks3,                  0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E);
+DEFINE_GUID(GUID_D3DExtendedCaps,                0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29);
+DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8);
+DEFINE_GUID(GUID_ZPixelFormats,                  0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
+DEFINE_GUID(GUID_DDStereoMode,                   0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
+
+typedef struct _D3DNTHAL_CONTEXTCREATEDATA
+{
+    union
+    {
+        PDD_DIRECTDRAW_GLOBAL lpDDGbl;
+        PDD_DIRECTDRAW_LOCAL lpDDLcl;
+    };
+    union
+    {
+        PDD_SURFACE_LOCAL lpDDS;
+        PDD_SURFACE_LOCAL lpDDSLcl;
+    };
+    union
+    {
+        PDD_SURFACE_LOCAL lpDDSZ;
+        PDD_SURFACE_LOCAL lpDDSZLcl;
+    };
+    DWORD dwPID;
+    ULONG_PTR dwhContext;
+    HRESULT ddrval;
+} D3DNTHAL_CONTEXTCREATEDATA, *LPD3DNTHAL_CONTEXTCREATEDATA;
+
+typedef struct _D3DNTHAL_CONTEXTDESTROYDATA
+{
+    ULONG_PTR dwhContext;
+    HRESULT ddrval;
+} D3DNTHAL_CONTEXTDESTROYDATA, *LPD3DNTHAL_CONTEXTDESTROYDATA;
+
+typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA
+{
+    DWORD dwPID;
+    HRESULT ddrval;
+} D3DNTHAL_CONTEXTDESTROYALLDATA, *LPD3DNTHAL_CONTEXTDESTROYALLDATA;
+
+typedef struct _D3DNTHAL_SCENECAPTUREDATA
+{
+    ULONG_PTR dwhContext;
+    DWORD dwFlag;
+    HRESULT ddrval;
+} D3DNTHAL_SCENECAPTUREDATA, *LPD3DNTHAL_SCENECAPTUREDATA;
+
+typedef struct _D3DNTHAL_TEXTURECREATEDATA
+{
+    ULONG_PTR dwhContext;
+    HANDLE hDDS;
+    ULONG_PTR dwHandle;
+    HRESULT ddrval;
+} D3DNTHAL_TEXTURECREATEDATA, *LPD3DNTHAL_TEXTURECREATEDATA;
+
+typedef struct _D3DNTHAL_TEXTUREDESTROYDATA
+{
+    ULONG_PTR dwhContext;
+    ULONG_PTR dwHandle;
+    HRESULT ddrval;
+} D3DNTHAL_TEXTUREDESTROYDATA, *LPD3DNTHAL_TEXTUREDESTROYDATA;
+
+typedef struct _D3DNTHAL_TEXTURESWAPDATA
+{
+    ULONG_PTR dwhContext;
+    ULONG_PTR dwHandle1;
+    ULONG_PTR dwHandle2;
+    HRESULT ddrval;
+} D3DNTHAL_TEXTURESWAPDATA, *LPD3DNTHAL_TEXTURESWAPDATA;
+
+typedef struct _D3DNTHAL_TEXTUREGETSURFDATA
+{
+    ULONG_PTR dwhContext;
+    HANDLE hDDS;
+    ULONG_PTR dwHandle;
+    HRESULT ddrval;
+} D3DNTHAL_TEXTUREGETSURFDATA, *LPD3DNTHAL_TEXTUREGETSURFDATA;
+
+typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTCREATECB)(LPD3DNTHAL_CONTEXTCREATEDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYCB)(LPD3DNTHAL_CONTEXTDESTROYDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYALLCB)(LPD3DNTHAL_CONTEXTDESTROYALLDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_SCENECAPTURECB)(LPD3DNTHAL_SCENECAPTUREDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURECREATECB)(LPD3DNTHAL_TEXTURECREATEDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREDESTROYCB)(LPD3DNTHAL_TEXTUREDESTROYDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURESWAPCB)(LPD3DNTHAL_TEXTURESWAPDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREGETSURFCB)(LPD3DNTHAL_TEXTUREGETSURFDATA);
+
+typedef struct _D3DNTHALDeviceDesc_V1
+{
+	DWORD            dwSize;
+	DWORD            dwFlags;
+	D3DCOLORMODEL    dcmColorModel;
+	DWORD            dwDevCaps;
+	D3DTRANSFORMCAPS dtcTransformCaps;
+	BOOL             bClipping;
+	D3DLIGHTINGCAPS  dlcLightingCaps;
+	D3DPRIMCAPS      dpcLineCaps;
+	D3DPRIMCAPS      dpcTriCaps;
+	DWORD            dwDeviceRenderBitDepth;
+	DWORD            dwDeviceZBufferBitDepth;
+	DWORD            dwMaxBufferSize;
+	DWORD            dwMaxVertexCount;
+} D3DNTHALDEVICEDESC_V1, *LPD3DNTHALDEVICEDESC_V1;
+
+typedef struct _D3DNTHAL_GLOBALDRIVERDATA
+{
+	DWORD               dwSize;
+    D3DNTHALDEVICEDESC_V1 hwCaps;
+	DWORD               dwNumVertices;
+	DWORD               dwNumClipVertices;
+	DWORD               dwNumTextureFormats;
+	LPDDSURFACEDESC     lpTextureFormats;
+} D3DNTHAL_GLOBALDRIVERDATA, *LPD3DNTHAL_GLOBALDRIVERDATA;
+
+typedef struct _D3DNTHAL_CALLBACKS
+{
+    DWORD dwSize;
+    LPD3DNTHAL_CONTEXTCREATECB ContextCreate;
+    LPD3DNTHAL_CONTEXTDESTROYCB ContextDestroy;
+    LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
+    LPD3DNTHAL_SCENECAPTURECB SceneCapture;
+    LPVOID dwReserved10;
+    LPVOID dwReserved11;
+    LPVOID dwReserved22;
+    LPVOID dwReserved23;
+    ULONG_PTR dwReserved;
+    LPD3DNTHAL_TEXTURECREATECB TextureCreate;
+    LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy;
+    LPD3DNTHAL_TEXTURESWAPCB TextureSwap;
+    LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf;
+    LPVOID dwReserved12;
+    LPVOID dwReserved13;
+    LPVOID dwReserved14;
+    LPVOID dwReserved15;
+    LPVOID dwReserved16;
+    LPVOID dwReserved17;
+    LPVOID dwReserved18;
+    LPVOID dwReserved19;
+    LPVOID dwReserved20;
+    LPVOID dwReserved21;
+    LPVOID dwReserved24;
+    ULONG_PTR dwReserved0;
+    ULONG_PTR dwReserved1;
+    ULONG_PTR dwReserved2;
+    ULONG_PTR dwReserved3;
+    ULONG_PTR dwReserved4;
+    ULONG_PTR dwReserved5;
+    ULONG_PTR dwReserved6;
+    ULONG_PTR dwReserved7;
+    ULONG_PTR dwReserved8;
+    ULONG_PTR dwReserved9;
+} D3DNTHAL_CALLBACKS, *LPD3DNTHAL_CALLBACKS;
+
+
+typedef struct _D3DNTHAL_SETRENDERTARGETDATA
+{
+    ULONG_PTR dwhContext;
+    PDD_SURFACE_LOCAL lpDDS;
+    PDD_SURFACE_LOCAL lpDDSZ;
+    HRESULT ddrval;
+} D3DNTHAL_SETRENDERTARGETDATA;
+typedef D3DNTHAL_SETRENDERTARGETDATA *LPD3DNTHAL_SETRENDERTARGETDATA;
+
+typedef DWORD (APIENTRY *LPD3DNTHAL_SETRENDERTARGETCB)(LPD3DNTHAL_SETRENDERTARGETDATA);
+
+
+typedef struct _D3DNTHAL_CALLBACKS2
+{
+    DWORD dwSize;
+    DWORD dwFlags;
+
+    LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget;
+    LPVOID dwReserved1;
+    LPVOID dwReserved2;
+    LPVOID dwReserved3;
+    LPVOID dwReserved4;
+} D3DNTHAL_CALLBACKS2, *LPD3DNTHAL_CALLBACKS2;
+
+
+typedef struct _D3DNTHAL_CLEAR2DATA
+{
+    ULONG_PTR dwhContext;
+    DWORD dwFlags;
+    DWORD dwFillColor;
+    D3DVALUE dvFillDepth;
+    DWORD dwFillStencil;
+    LPD3DRECT lpRects;
+    DWORD dwNumRects;
+    HRESULT ddrval;
+} D3DNTHAL_CLEAR2DATA;
+typedef D3DNTHAL_CLEAR2DATA FAR *LPD3DNTHAL_CLEAR2DATA;
+
+typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA
+{
+    ULONG_PTR dwhContext;
+    DWORD dwFlags;
+    ULONG_PTR dwReserved;
+    DWORD dwNumPasses;
+    HRESULT ddrval;
+} D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA, FAR *LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA;
+
+typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA
+{
+    ULONG_PTR dwhContext;
+    DWORD dwFlags;
+    DWORD dwVertexType;
+    PDD_SURFACE_LOCAL lpDDCommands;
+    DWORD dwCommandOffset;
+    DWORD dwCommandLength;
+    union
+    {
+        PDD_SURFACE_LOCAL lpDDVertex;
+        LPVOID lpVertices;
+    };
+    DWORD dwVertexOffset;
+    DWORD dwVertexLength;
+    DWORD dwReqVertexBufSize;
+    DWORD dwReqCommandBufSize;
+    LPDWORD lpdwRStates;
+    union
+    {
+        DWORD dwVertexSize;
+        HRESULT ddrval;
+    };
+    DWORD dwErrorOffset;
+} D3DNTHAL_DRAWPRIMITIVES2DATA, FAR *LPD3DNTHAL_DRAWPRIMITIVES2DATA;
+
+typedef DWORD (APIENTRY *LPD3DNTHAL_CLEAR2CB)(LPD3DNTHAL_CLEAR2DATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA);
+typedef DWORD (APIENTRY *LPD3DNTHAL_DRAWPRIMITIVES2CB)(LPD3DNTHAL_DRAWPRIMITIVES2DATA);
+
+typedef struct _D3DNTHAL_CALLBACKS3
+{
+    DWORD dwSize; 
+    DWORD dwFlags;
+
+    LPD3DNTHAL_CLEAR2CB Clear2;
+    LPVOID lpvReserved;
+    LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
+    LPD3DNTHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
+} D3DNTHAL_CALLBACKS3, *LPD3DNTHAL_CALLBACKS3;
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* __DDK_D3DNTHAL_H */