2 * Export window information for the Windows-OpenGL GLX implementation.
4 * Authors: Alexander Gottwald
7 #ifdef HAVE_XWIN_CONFIG_H
8 #include <xwin-config.h>
12 #include "winwindow.h"
15 winCreateWindowsWindow(WindowPtr pWin
);
18 * Return size and handles of a window.
19 * If pWin is NULL, then the information for the root window is requested.
22 winGetWindowInfo(WindowPtr pWin
)
24 winTrace("%s: pWin %p XID 0x%x\n", __FUNCTION__
, pWin
, pWin
->drawable
.id
);
26 /* a real window was requested */
28 /* Get the window and screen privates */
29 ScreenPtr pScreen
= pWin
->drawable
.pScreen
;
30 winPrivScreenPtr pWinScreen
= winGetScreenPriv(pScreen
);
31 winScreenInfoPtr pScreenInfo
= NULL
;
34 if (pWinScreen
== NULL
) {
35 ErrorF("winGetWindowInfo: screen has no privates\n");
39 hwnd
= pWinScreen
->hwndScreen
;
41 pScreenInfo
= pWinScreen
->pScreenInfo
;
42 #ifdef XWIN_MULTIWINDOW
43 /* check for multiwindow mode */
44 if (pScreenInfo
->fMultiWindow
) {
47 if (pWinPriv
== NULL
) {
48 ErrorF("winGetWindowInfo: window has no privates\n");
52 if (pWinPriv
->hWnd
== NULL
) {
53 winCreateWindowsWindow(pWin
);
54 ErrorF("winGetWindowInfo: forcing window to exist...\n");
57 if (pWinPriv
->hWnd
!= NULL
) {
58 /* copy window handle */
59 hwnd
= pWinPriv
->hWnd
;
61 /* mark GLX active on that hwnd */
62 pWinPriv
->fWglUsed
= TRUE
;
68 #ifdef XWIN_MULTIWINDOWEXTWM
69 /* check for multiwindow external wm mode */
70 if (pScreenInfo
->fMWExtWM
) {
71 win32RootlessWindowPtr pRLWinPriv
72 = (win32RootlessWindowPtr
) RootlessFrameForWindow(pWin
, FALSE
);
74 if (pRLWinPriv
== NULL
) {
75 ErrorF("winGetWindowInfo: window has no privates\n");
79 if (pRLWinPriv
->hWnd
!= NULL
) {
80 /* copy window handle */
81 hwnd
= pRLWinPriv
->hWnd
;
88 ScreenPtr pScreen
= g_ScreenInfo
[0].pScreen
;
89 winPrivScreenPtr pWinScreen
= winGetScreenPriv(pScreen
);
91 if (pWinScreen
== NULL
) {
92 ErrorF("winGetWindowInfo: screen has no privates\n");
96 ErrorF("winGetWindowInfo: returning root window\n");
98 return pWinScreen
->hwndScreen
;
105 winCheckScreenAiglxIsSupported(ScreenPtr pScreen
)
107 winPrivScreenPtr pWinScreen
= winGetScreenPriv(pScreen
);
108 winScreenInfoPtr pScreenInfo
= pWinScreen
->pScreenInfo
;
110 #ifdef XWIN_MULTIWINDOW
111 if (pScreenInfo
->fMultiWindow
)
115 #ifdef XWIN_MULTIWINDOWEXTWM
116 if (pScreenInfo
->fMWExtWM
)