44 { $DEFINE SDL_VIDEO_DRIVER_WINDOWS}
55{ $ENDIF}
66
7- { $IF DEFINED (LINUX) OR DEFINED(UNIX) AND NOT DEFINED(ANDROID) }
8- { $IFNDEF DARWIN}
7+ { $IF DEFINED (LINUX) OR DEFINED(UNIX)}
8+ { $IF NOT (DEFINED( DARWIN) OR DEFINED(ANDROID)) }
99 { $DEFINE SDL_VIDEO_DRIVER_X11}
1010 { $ENDIF}
1111{ $IFEND}
1919{ $ENDIF}
2020
2121{ $IFDEF VIVANTE}
22- { $DEFINE SDL_VIDEO_DRIVER_VIVANTE}
22+ { $DEFINE SDL_VIDEO_DRIVER_VIVANTE}
2323{ $ENDIF}
2424
2525
@@ -41,46 +41,105 @@ Type
4141 SDL_SYSWM_VIVANTE // Since SDL 2.0.5
4242 );
4343
44- // / sdl_syswm.h uses anonymous structs, declared right in SDL_SysWMmsg.
45- // / Since Pascal does not allow this, we workaround by introducing named types
46- // / before the proper TSDL_SysWMmsg definition.
44+ // / sdl_syswm.h uses anonymous structs, declared right in SDL_SysWMmsg and SDL_SysWMinfo.
45+ // / Since Pascal does not allow this, we workaround by introducing named types.
4746{ $IFDEF SDL_VIDEO_DRIVER_WINDOWS}
4847 __SYSWM_WINDOWS = record
4948 hwnd: HWND; { **< The window for the message }
5049 msg: uInt; { **< The type of message *}
5150 wParam: WPARAM; { **< WORD message parameter *}
5251 lParam: LPARAM; { **< WORD message parameter *}
5352 end ;
53+ __WMINFO_WINDOWS = record
54+ window: HWND; { **< The window handle *}
55+ hdc: HDC; { **< The window device context *}
56+ end ;
5457{ $ENDIF}
58+
5559{ $IFDEF SDL_VIDEO_DRIVER_X11}
5660 __SYSWM_X11 = record
5761 event: { $IFDEF FPC} TXEvent { $ELSE} XEvent { $ENDIF} ;
5862 end ;
63+ __WMINFO_X11 = record
64+ display: PDisplay; { **< The X11 display *}
65+ window: TWindow; { **< The X11 window *}
66+ end ;
5967{ $ENDIF}
68+
6069{ $IFDEF SDL_VIDEO_DRIVER_DIRECTFB}
6170 __SYSWM_DIRECTFB = record
6271 event: DFBEvent;
6372 end ;
73+ __WMINFO_DIRECTFB = record
74+ dfb: IDirectFB; { **< The directfb main interface *}
75+ window: IDirectFBWindow; { **< The directfb window handle *}
76+ surface: IDirectFBSurface; { **< The directfb client surface *}
77+ end ;
6478{ $ENDIF}
79+
6580{ $IFDEF SDL_VIDEO_DRIVER_COCOA}
6681 __SYSWM_COCOA = record
6782 (* No Cocoa window events yet *)
6883 dummy: integer;
6984 end ;
85+ __WMINFO_COCOA = record
86+ window: NSWindow; { * The Cocoa window *}
87+ end ;
7088{ $ENDIF}
89+
7190{ $IFDEF SDL_VIDEO_DRIVER_UIKIT}
7291 __SYSWM_UIKIT = record
7392 (* No UIKit window events yet *)
7493 dummy: integer;
7594 end ;
95+ __WMINFO_UIKIT = record
96+ window: UIWindow; { * The UIKit window *}
97+ framebuffer: GLuint; { * The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. *}
98+ colorbuffer: GLuint; { * The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. *}
99+ resolveFramebuffer: GLuint; { * The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. *}
100+ end ;
76101{ $ENDIF}
102+
103+ { $IFDEF SDL_VIDEO_DRIVER_WAYLAND}
104+ __WMINFO_WAYLAND = record
105+ display: wl_display; { **< Wayland display *}
106+ surface: wl_surface; { **< Wayland surface *}
107+ shell_surface: wl_shell_surface; { **< Wayland shell_surface (window manager handle) *}
108+ end ;
109+ { $ENDIF}
110+
111+ { $IFDEF SDL_VIDEO_DRIVER_MIR}
112+ __WMINFO_MIR = record
113+ connection: PMirConnection; { **< Mir display server connection *}
114+ surface: PMirSurface; { **< Mir surface *}
115+ end ;
116+ { $ENDIF}
117+
118+ { $IFDEF SDL_VIDEO_DRIVER_WINRT}
119+ __WMINFO_WINRT = record
120+ window: IInspectable; { **< The WinRT CoreWindow *}
121+ end ;
122+ { $ENDIF}
123+
124+ { $IFDEF SDL_VIDEO_DRIVER_ANDROID}
125+ __WMINFO_ANDROID = record
126+ window: Pointer; // PANativeWindow;
127+ surface: Pointer; // PEGLSurface;
128+ end ;
129+ { $ENDIF}
130+
77131{ $IFDEF SDL_VIDEO_DRIVER_VIVANTE}
78132 __SYSWM_VIVANTE = record
79133 (* No Vivante window events yet *)
80134 dummy: integer;
81135 end ;
136+ __WMINFO_VIVANTE = record
137+ display: EGLNativeDisplayType;
138+ window: EGLNativeWindowType;
139+ end ;
82140{ $ENDIF}
83141
142+
84143{ **
85144 * The custom event structure.
86145 *}
@@ -109,71 +168,6 @@ Type
109168 SDL_SYSWM_UNKNOWN: (dummy: integer);
110169 end ;
111170
112- // / Once again, sdl_syswm.h uses anonymous structs, declared right in SDL_SysWMinfo.
113- // / We workaround by introducing named types before the proper TSDL_SysWMinfo definition.
114- { $IFDEF SDL_VIDEO_DRIVER_WINDOWS}
115- __WMINFO_WINDOWS = record
116- window: HWND; { **< The window handle *}
117- hdc: HDC; { **< The window device context *}
118- end ;
119- { $ENDIF}
120- { $IFDEF SDL_VIDEO_DRIVER_WINRT} // Since SDL 2.0.3
121- __WMINFO_WINRT = record
122- window: IInspectable; { **< The WinRT CoreWindow *}
123- end ;
124- { $ENDIF}
125- { $IFDEF SDL_VIDEO_DRIVER_X11}
126- __WMINFO_X11 = record
127- display: PDisplay; { **< The X11 display *}
128- window: TWindow; { **< The X11 window *}
129- end ;
130- { $ENDIF}
131- { $IFDEF SDL_VIDEO_DRIVER_DIRECTFB}
132- __WMINFO_DFB = record
133- dfb: IDirectFB; { **< The directfb main interface *}
134- window: IDirectFBWindow; { **< The directfb window handle *}
135- surface: IDirectFBSurface; { **< The directfb client surface *}
136- end ;
137- { $ENDIF}
138- { $IFDEF SDL_VIDEO_DRIVER_COCOA}
139- __WMINFO_COCOA = record
140- window: NSWindow; { * The Cocoa window *}
141- end ;
142- { $ENDIF}
143- { $IFDEF SDL_VIDEO_DRIVER_UIKIT}
144- __WMINFO_UIKIT = record
145- window: UIWindow; { * The UIKit window *}
146- framebuffer: GLuint; { * The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. *}
147- colorbuffer: GLuint; { * The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. *}
148- resolveFramebuffer: GLuint; { * The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. *}
149- end ;
150- { $ENDIF}
151- { $IFDEF SDL_VIDEO_DRIVER_WAYLAND} // Since SDL 2.0.2
152- __WMINFO_WAYLAND = record
153- display: wl_display; { **< Wayland display *}
154- surface: wl_surface; { **< Wayland surface *}
155- shell_surface: wl_shell_surface; { **< Wayland shell_surface (window manager handle) *}
156- end ;
157- { $ENDIF}
158- { $IFDEF SDL_VIDEO_DRIVER_MIR} // Since SDL 2.0.2
159- __WMINFO_MIR = record
160- connection: PMirConnection; { **< Mir display server connection *}
161- surface: PMirSurface; { **< Mir surface *}
162- end ;
163- { $ENDIF}
164- { $IFDEF SDL_VIDEO_DRIVER_ANDROID}
165- __WMINFO_ANDROID = record
166- window: Pointer; // PANativeWindow;
167- surface: Pointer; // PEGLSurface;
168- end ;
169- { $ENDIF}
170- { $IFDEF SDL_VIDEO_DRIVER_VIVANTE}
171- __WMINFO_VIVANTE = record
172- display: EGLNativeDisplayType;
173- window: EGLNativeWindowType;
174- end ;
175- { $ENDIF}
176-
177171{ **
178172 * The custom window manager information structure.
179173 *
194188 SDL_SYSWM_X11: (x11 : __WMINFO_X11);
195189 { $ENDIF}
196190 { $IFDEF SDL_VIDEO_DRIVER_DIRECTFB}
197- SDL_SYSWM_DIRECTFB: (dfb : __WMINFO_DFB );
191+ SDL_SYSWM_DIRECTFB: (dfb : __WMINFO_DIRECTFB );
198192 { $ENDIF}
199193 { $IFDEF SDL_VIDEO_DRIVER_COCOA}
200194 SDL_SYSWM_COCOA: (cocoa : __WMINFO_COCOA);
0 commit comments