Mercurial > games > semicongine
diff fuhtark_test/include/ddk/ddkmapi.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/ddkmapi.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,342 @@ +/* + * ddkmapi.h + * + * DirectDraw support for DxApi function + * + * Contributors: + * Created by Magnus Olsen + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __DDKMAPI_INCLUDED__ +#define __DDKMAPI_INCLUDED__ + + +#if defined(_DXAPI_) + #define DXAPI +#else + #define DXAPI DECLSPEC_IMPORT +#endif + + + +#define DXAPI_MAJORVERSION 1 +#define DXAPI_MINORVERSION 0 + +#define DD_FIRST_DXAPI 0x500 +#define DD_DXAPI_GETVERSIONNUMBER (DD_FIRST_DXAPI) +#define DD_DXAPI_CLOSEHANDLE (DD_FIRST_DXAPI+1) +#define DD_DXAPI_OPENDIRECTDRAW (DD_FIRST_DXAPI+2) +#define DD_DXAPI_OPENSURFACE (DD_FIRST_DXAPI+3) +#define DD_DXAPI_OPENVIDEOPORT (DD_FIRST_DXAPI+4) +#define DD_DXAPI_GETKERNELCAPS (DD_FIRST_DXAPI+5) +#define DD_DXAPI_GET_VP_FIELD_NUMBER (DD_FIRST_DXAPI+6) +#define DD_DXAPI_SET_VP_FIELD_NUMBER (DD_FIRST_DXAPI+7) +#define DD_DXAPI_SET_VP_SKIP_FIELD (DD_FIRST_DXAPI+8) +#define DD_DXAPI_GET_SURFACE_STATE (DD_FIRST_DXAPI+9) +#define DD_DXAPI_SET_SURFACE_STATE (DD_FIRST_DXAPI+10) +#define DD_DXAPI_LOCK (DD_FIRST_DXAPI+11) +#define DD_DXAPI_FLIP_OVERLAY (DD_FIRST_DXAPI+12) +#define DD_DXAPI_FLIP_VP (DD_FIRST_DXAPI+13) +#define DD_DXAPI_GET_CURRENT_VP_AUTOFLIP_SURFACE (DD_FIRST_DXAPI+14) +#define DD_DXAPI_GET_LAST_VP_AUTOFLIP_SURFACE (DD_FIRST_DXAPI+15) +#define DD_DXAPI_REGISTER_CALLBACK (DD_FIRST_DXAPI+16) +#define DD_DXAPI_UNREGISTER_CALLBACK (DD_FIRST_DXAPI+17) +#define DD_DXAPI_GET_POLARITY (DD_FIRST_DXAPI+18) +#define DD_DXAPI_OPENVPCAPTUREDEVICE (DD_FIRST_DXAPI+19) +#define DD_DXAPI_ADDVPCAPTUREBUFFER (DD_FIRST_DXAPI+20) +#define DD_DXAPI_FLUSHVPCAPTUREBUFFERS (DD_FIRST_DXAPI+21) + +/* DDOPENVPCAPTUREDEVICEIN.dwFlags constants */ +#define DDOPENCAPTURE_VIDEO 0x0001 +#define DDOPENCAPTURE_VBI 0x0002 + +/* DDADDVPCAPTUREBUFF.dwFlags constants */ +#define DDADDBUFF_SYSTEMMEMORY 0x0001 +#define DDADDBUFF_NONLOCALVIDMEM 0x0002 +#define DDADDBUFF_INVERT 0x0004 + +/* DDGETSURFACESTATEOUT.dwStateCaps/dwStateStatus constants */ +#define DDSTATE_BOB 0x0001 +#define DDSTATE_WEAVE 0x0002 +#define DDSTATE_EXPLICITLY_SET 0x0004 +#define DDSTATE_SOFTWARE_AUTOFLIP 0x0008 +#define DDSTATE_SKIPEVENFIELDS 0x0010 + +/* DDREGISTERCALLBACK.dwEvents constants */ +#define DDEVENT_DISPLAY_VSYNC 0x0001 +#define DDEVENT_VP_VSYNC 0x0002 +#define DDEVENT_VP_LINE 0x0004 +#define DDEVENT_PRERESCHANGE 0x0008 +#define DDEVENT_POSTRESCHANGE 0x0010 +#define DDEVENT_PREDOSBOX 0x0020 +#define DDEVENT_POSTDOSBOX 0x0040 + +/* LPDD_NOTIFYCALLBACK.dwFlags constants */ +#define DDNOTIFY_DISPLAY_VSYNC 0x0001 +#define DDNOTIFY_VP_VSYNC 0x0002 +#define DDNOTIFY_VP_LINE 0x0004 +#define DDNOTIFY_PRERESCHANGE 0x0008 +#define DDNOTIFY_POSTRESCHANGE 0x0010 +#define DDNOTIFY_PREDOSBOX 0x0020 +#define DDNOTIFY_POSTDOSBOX 0x0040 +#define DDNOTIFY_CLOSEDIRECTDRAW 0x0080 +#define DDNOTIFY_CLOSESURFACE 0x0100 +#define DDNOTIFY_CLOSEVIDEOPORT 0x0200 +#define DDNOTIFY_CLOSECAPTURE 0x0400 + +typedef DWORD (PASCAL *LPDXAPI)(DWORD dwFunctionNum, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID lpvOutBuffer, DWORD cbOutBuffer); +typedef ULONG (PASCAL *LPDD_NOTIFYCALLBACK) (DWORD dwFlags, PVOID pContext, DWORD dwParam1, DWORD dwParam2); + +typedef struct _DDCAPBUFFINFO +{ + DWORD dwFieldNumber; + DWORD bPolarity; + LARGE_INTEGER liTimeStamp; + DWORD ddRVal; +} DDCAPBUFFINFO, * LPDDCAPBUFFINFO; + +typedef struct _DDADDVPCAPTUREBUFF +{ + HANDLE hCapture; + DWORD dwFlags; + PMDL pMDL; + PKEVENT pKEvent; + LPDDCAPBUFFINFO lpBuffInfo; +} DDADDVPCAPTUREBUFF, * LPDDADDVPCAPTUREBUFF; + +typedef struct _DDCLOSEHANDLE +{ + HANDLE hHandle; +} DDCLOSEHANDLE, *LPDDCLOSEHANDLE; + +typedef struct _DDFLIPOVERLAY +{ + HANDLE hDirectDraw; + HANDLE hCurrentSurface; + HANDLE hTargetSurface; + DWORD dwFlags; +} DDFLIPOVERLAY, *LPDDFLIPOVERLAY; + +typedef struct _DDFLIPVIDEOPORT +{ + HANDLE hDirectDraw; + HANDLE hVideoPort; + HANDLE hCurrentSurface; + HANDLE hTargetSurface; + DWORD dwFlags; +} DDFLIPVIDEOPORT, *LPDDFLIPVIDEOPORT; + +typedef struct _DDGETAUTOFLIPIN +{ + HANDLE hDirectDraw; + HANDLE hVideoPort; +} DDGETAUTOFLIPIN, *LPDDGETAUTOFLIPIN; + +typedef struct _DDGETAUTOFLIPOUT +{ + DWORD ddRVal; + HANDLE hVideoSurface; + HANDLE hVBISurface; + BOOL bPolarity; +} DDGETAUTOFLIPOUT, *LPDDGETAUTOFLIPOUT; + +typedef struct _DDGETPOLARITYIN +{ + HANDLE hDirectDraw; + HANDLE hVideoPort; +} DDGETPOLARITYIN, *LPDDGETPOLARITYIN; + +typedef struct _DDGETPOLARITYOUT +{ + DWORD ddRVal; + BOOL bPolarity; +} DDGETPOLARITYOUT, *LPDDGETPOLARITYOUT; + +typedef struct _DDGETSURFACESTATEIN +{ + HANDLE hDirectDraw; + HANDLE hSurface; +} DDGETSURFACESTATEIN, *LPDDGETSURFACESTATEIN; + +typedef struct _DDGETSURFACESTATEOUT +{ + DWORD ddRVal; + DWORD dwStateCaps; + DWORD dwStateStatus; +} DDGETSURFACESTATEOUT, *LPDDGETSURFACESTATEOUT; + +typedef struct _DDGETFIELDNUMIN +{ + HANDLE hDirectDraw; + HANDLE hVideoPort; +} DDGETFIELDNUMIN, *LPDDGETFIELDNUMIN; + +typedef struct _DDGETFIELDNUMOUT +{ + DWORD ddRVal; + DWORD dwFieldNum; +} DDGETFIELDNUMOUT, *LPDDGETFIELDNUMOUT; + +typedef struct _DDGETKERNELCAPSOUT +{ + DWORD ddRVal; + DWORD dwCaps; + DWORD dwIRQCaps; +} DDGETKERNELCAPSOUT, *LPDDGETKERNELCAPSOUT; + +typedef struct _DDGETVERSIONNUMBER +{ + DWORD ddRVal; + DWORD dwMajorVersion; + DWORD dwMinorVersion; +} DDGETVERSIONNUMBER, *LPDDGETVERSIONNUMBER; + +typedef struct _DDLOCKIN +{ + HANDLE hDirectDraw; + HANDLE hSurface; +} DDLOCKIN, *LPDDLOCKIN; + +typedef struct _DDLOCKOUT +{ + DWORD ddRVal; + DWORD dwSurfHeight; + DWORD dwSurfWidth; + LONG lSurfPitch; + PVOID lpSurface; + DWORD SurfaceCaps; + DWORD dwFormatFlags; + DWORD dwFormatFourCC; + DWORD dwFormatBitCount; + union + { + DWORD dwRBitMask; + DWORD dwYBitMask; + }; + union + { + DWORD dwGBitMask; + DWORD dwUBitMask; + }; + union + { + DWORD dwBBitMask; + DWORD dwVBitMask; + }; +} DDLOCKOUT, *LPDDLOCKOUT; + + +typedef struct _DDOPENDIRECTDRAWIN +{ + ULONG_PTR dwDirectDrawHandle; + LPDD_NOTIFYCALLBACK pfnDirectDrawClose; + PVOID pContext; +} DDOPENDIRECTDRAWIN, *LPDDOPENDIRECTDRAWIN; + +typedef struct _DDOPENDIRECTDRAWOUT +{ + DWORD ddRVal; + HANDLE hDirectDraw; +} DDOPENDIRECTDRAWOUT, *LPDDOPENDIRECTDRAWOUT; + +typedef struct _DDOPENSURFACEIN +{ + HANDLE hDirectDraw; + ULONG_PTR dwSurfaceHandle; + LPDD_NOTIFYCALLBACK pfnSurfaceClose; + PVOID pContext; +} DDOPENSURFACEIN, *LPDDOPENSURFACEIN; + +typedef struct _DDOPENSURFACEOUT +{ + DWORD ddRVal; + HANDLE hSurface; +} DDOPENSURFACEOUT, *LPDDOPENSURFACEOUT; + +typedef struct _DDOPENVIDEOPORTIN +{ + HANDLE hDirectDraw; + ULONG dwVideoPortHandle; + LPDD_NOTIFYCALLBACK pfnVideoPortClose; + PVOID pContext; +} DDOPENVIDEOPORTIN, *LPDDOPENVIDEOPORTIN; + +typedef struct _DDOPENVIDEOPORTOUT +{ + DWORD ddRVal; + HANDLE hVideoPort; +} DDOPENVIDEOPORTOUT, *LPDDOPENVIDEOPORTOUT; + +typedef struct _DDOPENVPCAPTUREDEVICEIN +{ + HANDLE hDirectDraw; + HANDLE hVideoPort; + DWORD dwStartLine; + DWORD dwEndLine; + DWORD dwCaptureEveryNFields; + LPDD_NOTIFYCALLBACK pfnCaptureClose; + PVOID pContext; + DWORD dwFlags; +} DDOPENVPCAPTUREDEVICEIN, * LPDDOPENVPCAPTUREDEVICEIN; + +typedef struct _DDOPENVPCAPTUREDEVICEOUT +{ + DWORD ddRVal; + HANDLE hCapture; +} DDOPENVPCAPTUREDEVICEOUT, * LPDDOPENVPCAPTUREDEVICEOUT; + +typedef struct _DDREGISTERCALLBACK +{ + HANDLE hDirectDraw; + ULONG dwEvents; + LPDD_NOTIFYCALLBACK pfnCallback; + ULONG_PTR dwParam1; + ULONG_PTR dwParam2; + PVOID pContext; +} DDREGISTERCALLBACK, *LPDDREGISTERCALLBACK; + +typedef struct _DDSETSURFACETATE +{ + HANDLE hDirectDraw; + HANDLE hSurface; + DWORD dwState; + DWORD dwStartField; +} DDSETSURFACESTATE, *LPDDSETSURFACESTATE; + +typedef struct _DDSETFIELDNUM +{ + HANDLE hDirectDraw; + HANDLE hVideoPort; + DWORD dwFieldNum; +} DDSETFIELDNUM, *LPDDSETFIELDNUM; + +typedef struct _DDSETSKIPFIELD +{ + HANDLE hDirectDraw; + HANDLE hVideoPort; + DWORD dwStartField; +} DDSETSKIPFIELD, *LPDDSETSKIPFIELD; + + +DXAPI +DWORD PASCAL +DxApi(IN DWORD dwFunctionNum, + IN LPVOID lpvInBuffer, + IN DWORD cbInBuffer, + OUT LPVOID lpvOutBuffer, + OUT DWORD cbOutBuffer); + + + +#endif /* __DDKMAPI_INCLUDED__ */
