Mercurial > games > semicongine
diff fuhtark_test/include/winapi/dwmapi.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/winapi/dwmapi.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,265 @@ +/* + * dwmapi.h + * + * Some dwmapi.dll exported functions such as + * DwmFlush + * DwmAttachMilContent + * DwmDetachMilContent + * are not declared in this header for not being documented by Microsoft + * + */ + +#ifndef __WINAPI_DWMAPI_H +#define __WINAPI_DWMAPI_H + +/* FIXME: it may not be neccessary to include tchar.h and windows.h */ +#include <tchar.h> +#include <windows.h> +/* FIXME end */ + +/* for MARGINS structure declaration. */ +#include <uxtheme.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* FIXME: move to winuser.h */ +/* DWM messages. */ +#define WM_DWMCOMPOSITIONCHANGED 0x031E +#define WM_DWMNCRENDERINGCHANGED 0x031F +#define WM_DWMCOLORIZATIONCOLORCHANGED 0x0320 +#define WM_DWMWINDOWMAXIMIZEDCHANGE 0x0321 +/* FIXME end */ + + + +#define DWM_EC_DISABLECOMPOSITION 0 +#define DWM_EC_ENABLECOMPOSITION 1 + +#define DWM_BB_ENABLE 0x00000001 +#define DWM_BB_BLURREGION 0x00000002 +#define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004 + +typedef struct _DWM_BLURBEHIND { + DWORD dwFlags; + BOOL fEnable; + HRGN hRgnBlur; + BOOL fTransitionOnMaximized; +} DWM_BLURBEHIND, *PDWM_BLURBEHIND; + +typedef struct _UNSIGNED_RATIO { + UINT32 uiNumerator; + UINT32 uiDenominator; +} UNSIGNED_RATIO; + +typedef enum _DWM_SOURCE_FRAME_SAMPLING { + DWM_SOURCE_FRAME_SAMPLING_POINT = 1, + DWM_SOURCE_FRAME_SAMPLING_COVERAGE, + DWM_SOURCE_FRAME_SAMPLING_LAST +} DWM_SOURCE_FRAME_SAMPLING; + +typedef ULONGLONG DWM_FRAME_COUNT; + +typedef struct _DWM_PRESENT_PARAMETERS { + UINT32 cbSize; + BOOL fQueue; + DWM_FRAME_COUNT cRefreshStart; + UINT cBuffer; + BOOL fUseSourceRate; + UNSIGNED_RATIO rateSource; + UINT cRefreshesPerFrame; + DWM_SOURCE_FRAME_SAMPLING eSampling; +} DWM_PRESENT_PARAMETERS; + +typedef ULONGLONG QPC_TIME; + +typedef struct _DWM_TIMING_INFO { + UINT32 cbSize; + UNSIGNED_RATIO rateRefresh; + QPC_TIME qpcRefreshPeriod; + UNSIGNED_RATIO rateCompose; + QPC_TIME qpcVBlank; + DWM_FRAME_COUNT cRefresh; + UINT cDXRefresh; + QPC_TIME qpcCompose; + DWM_FRAME_COUNT cFrame; + UINT cDXPresent; + DWM_FRAME_COUNT cRefreshFrame; + DWM_FRAME_COUNT cFrameSubmitted; + UINT cDXPresentSubmitted; + DWM_FRAME_COUNT cFrameConfirmed; + UINT cDXPresentConfirmed; + DWM_FRAME_COUNT cRefreshConfirmed; + UINT cDXRefreshConfirmed; + DWM_FRAME_COUNT cFramesLate; + UINT cFramesOutstanding; + DWM_FRAME_COUNT cFrameDisplayed; + QPC_TIME qpcFrameDisplayed; + DWM_FRAME_COUNT cRefreshFrameDisplayed; + DWM_FRAME_COUNT cFrameComplete; + QPC_TIME qpcFrameComplete; + DWM_FRAME_COUNT cFramePending; + QPC_TIME qpcFramePending; + DWM_FRAME_COUNT cFramesDisplayed; + DWM_FRAME_COUNT cFramesComplete; + DWM_FRAME_COUNT cFramesPending; + DWM_FRAME_COUNT cFramesAvailable; + DWM_FRAME_COUNT cFramesDropped; + DWM_FRAME_COUNT cFramesMissed; + DWM_FRAME_COUNT cRefreshNextDisplayed; + DWM_FRAME_COUNT cRefreshNextPresented; + DWM_FRAME_COUNT cRefreshesDisplayed; + DWM_FRAME_COUNT cRefreshesPresented; + DWM_FRAME_COUNT cRefreshStarted; + ULONGLONG cPixelsReceived; + ULONGLONG cPixelsDrawn; + DWM_FRAME_COUNT cBuffersEmpty; +} DWM_TIMING_INFO; + +typedef enum _DWMWINDOWATTRIBUTE { + DWMWA_NCRENDERING_ENABLED = 1, + DWMWA_NCRENDERING_POLICY, + DWMWA_TRANSITIONS_FORCEDISABLED, + DWMWA_ALLOW_NCPAINT, + DWMWA_CAPTION_BUTTON_BOUNDS, + DWMWA_NONCLIENT_RTL_LAYOUT, + DWMWA_FORCE_ICONIC_REPRESENTATION, + DWMWA_FLIP3D_POLICY, + DWMWA_EXTENDED_FRAME_BOUNDS, + DWMWA_LAST +} DWMWINDOWATTRIBUTE; + +#define DWM_TNP_RECTDESTINATION 0x00000001 +#define DWM_TNP_RECTSOURCE 0x00000002 +#define DWM_TNP_OPACITY 0x00000004 +#define DWM_TNP_VISIBLE 0x00000008 +#define DWM_TNP_SOURCECLIENTAREAONLY 0x00000010 + +typedef struct _DWM_THUMBNAIL_PROPERTIES { + DWORD dwFlags; + RECT rcDestination; + RECT rcSource; + BYTE opacity; + BOOL fVisible; + BOOL fSourceClientAreaOnly; +} DWM_THUMBNAIL_PROPERTIES, *PDWM_THUMBNAIL_PROPERTIES; + +typedef enum _DWMFLIP3DWINDOWPOLICY { + DWMFLIP3D_DEFAULT, + DWMFLIP3D_EXCLUDEBELOW, + DWMFLIP3D_EXCLUDEABOVE +} DWMFLIP3DWINDOWPOLICY; + +typedef enum _DWMNCRENDERINGPOLICY { + DWMNCRP_USEWINDOWSTYLE, + DWMNCRP_DISABLED, + DWMNCRP_ENABLED, + DWMNCRP_LAST +} DWMNCRENDERINGPOLICY; + +typedef HANDLE HTHUMBNAIL; +typedef HTHUMBNAIL* PHTHUMBNAIL; + +/* Only for Vista and higher */ +/* FIXME: use WINVER instead? */ +#if _WIN32_WINNT >= 0x0600 + +BOOL DwmDefWindowProc( + HWND hwnd, + UINT msg, + WPARAM wParam, + LPARAM lParam, + LRESULT *plResult +); + +HRESULT DwmEnableBlurBehindWindow( + HWND hWnd, + const DWM_BLURBEHIND *pBlurBehind +); + +HRESULT DwmEnableComposition( + UINT uCompositionAction +); + +HRESULT DwmEnableMMCSS( + BOOL fEnableMMCSS +); + +HRESULT DwmExtendFrameIntoClientArea( + HWND hWnd, + const MARGINS *pMarInset +); + +HRESULT DwmGetColorizationColor( + DWORD *pcrColorization, + BOOL *pfOpaqueBlend +); + +HRESULT DwmGetCompositionTimingInfo( + HWND hwnd, + DWM_TIMING_INFO *pTimingInfo +); + +HRESULT DwmGetWindowAttribute( + HWND hwnd, + DWORD dwAttribute, + PVOID pvAttribute, + DWORD cbAttribute +); + +HRESULT DwmIsCompositionEnabled( + BOOL *pfEnabled +); + +HRESULT DwmModifyPreviousDxFrameDuration( + HWND hwnd, + INT cRefreshes, + BOOL fRelative +); + +HRESULT DwmQueryThumbnailSourceSize( + HTHUMBNAIL hThumbnail, + PSIZE pSize +); + +HRESULT DwmRegisterThumbnail( + HWND hwndDestination, + HWND *hwndSource, + PHTHUMBNAIL phThumbnailId +); + +HRESULT DwmSetDxFrameDuration( + HWND hwnd, + INT cRefreshes +); + +HRESULT DwmSetPresentParameters( + HWND hwnd, + DWM_PRESENT_PARAMETERS *pPresentParams +); + +HRESULT DwmSetWindowAttribute( + HWND hwnd, + DWORD dwAttribute, + LPCVOID pvAttribute, + DWORD cbAttribute +); + +HRESULT DwmUnregisterThumbnail( + HTHUMBNAIL hThumbnailId +); + +HRESULT DwmUpdateThumbnailProperties( + HTHUMBNAIL hThumbnailId, + const DWM_THUMBNAIL_PROPERTIES *ptnProperties +); + +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __WINAPI_DWMAPI_H */ +
