New APIs: GetWindowSurfaceBufferFD() and CreateMemDCFromSurfaceBufferFD() for compositing schema.

This commit is contained in:
Vincent Wei
2023-08-22 11:29:36 +08:00
parent 33e5d62da8
commit 06fcf2eaa0
5 changed files with 93 additions and 0 deletions
+21
View File
@@ -1704,6 +1704,27 @@ MG_EXPORT BOOL GUIAPI IsScreenDC (HDC hdc);
*/
MG_EXPORT BOOL GUIAPI IsWindowDC (HDC hdc);
#ifdef _MGSCHEMA_COMPOSITING
/**
* \fn HDC GUIAPI CreateMemDCFromSurfaceBufferFD (int fd);
* \brief Creates a memory DC from a file descriptor of a surface buffer.
*
* This function creates a memory DC from the specified file descriptor \a fd,
* which represents a surface buffer.
*
* \param fd The file descriptor which represents a surface buffer.
*
* \return The handle to a new memory DC, HDC_INVALID indicates an error.
*
* \note This function only available when _MGSCHEMA_COMPOSITING is defined.
*
* \sa GetWindowSurfaceBufferFD
*
* Since 5.0.13
*/
MG_EXPORT HDC GUIAPI CreateMemDCFromSurfaceBufferFD (int fd);
#endif /* _MGSCHEMA_COMPOSITING */
/**
* \fn HDC GUIAPI CreateMemDCEx (int width, int height, int depth, DWORD flags, \
Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask,
+23
View File
@@ -7237,6 +7237,29 @@ MG_EXPORT BOOL GUIAPI SetMainWindowGestureFlags (HWND hWnd, DWORD dwFlags);
#ifdef _MGSCHEMA_COMPOSITING
/**
* \fn int GUIAPI GetWindowSurfaceBufferFD (HWND hwnd)
* \brief Gets the file descriptor of the surface buffer for a window or
* the main window it locates.
*
* This function gets the file descriptor of the surface buffer for
* the specified window if it is a main window or the main window it locates.
* Note that if the window is a control that has the style `WS_EX_CTRLASMAINWIN`,
* the window will have a separate surface buffer.
*
* \param hwnd The handle to the window.
*
* \return An integer larger than or equal to 0 for a valid file descriptor,
* otherwise a negative value.
*
* \note This function only available when _MGSCHEMA_COMPOSITING is defined.
*
* \sa CreateMemDCFromSurfaceBufferFD
*
* Since 5.0.13
*/
MG_EXPORT int GUIAPI GetWindowSurfaceBufferFD (HWND hWnd);
/**
* \fn BOOL GUIAPI SetMainWindowCompositing (HWND hWnd,
int type, DWORD arg)