|
|
@@ -0,0 +1,76 @@
|
|
|
+DEFINITION MODULE FOR "C" SDLVideo ;
|
|
|
+
|
|
|
+(*
|
|
|
+ m2SDL - window management (<SDL_video.h>), minimal starter subset.
|
|
|
+
|
|
|
+ Opaque handle: SDL_Window * is never dereferenced from Modula-2,
|
|
|
+ it travels as ADDRESS (NIL == failure). Title strings are passed
|
|
|
+ as ARRAY OF CHAR (GM2 maps them onto char * ).
|
|
|
+
|
|
|
+ Position helpers SDL_WINDOWPOS_CENTERED / UNDEFINED are macros in C;
|
|
|
+ their expanded values are given here as constants:
|
|
|
+ CENTERED = 0x2FFF0000, UNDEFINED = 0x1FFF0000.
|
|
|
+*)
|
|
|
+
|
|
|
+FROM SYSTEM IMPORT ADDRESS;
|
|
|
+
|
|
|
+EXPORT UNQUALIFIED
|
|
|
+ WindowHandle,
|
|
|
+ WindowPosCentered, WindowPosUndefined,
|
|
|
+ WindowFullscreen, WindowOpenGL, WindowShown, WindowHidden,
|
|
|
+ WindowBorderless, WindowResizable, WindowMinimized, WindowMaximized,
|
|
|
+ WindowInputGrabbed, WindowAllowHighDPI,
|
|
|
+
|
|
|
+ SDL_CreateWindow, SDL_DestroyWindow,
|
|
|
+ SDL_GetWindowTitle, SDL_SetWindowTitle,
|
|
|
+ SDL_GetWindowSize, SDL_SetWindowSize,
|
|
|
+ SDL_ShowWindow, SDL_HideWindow;
|
|
|
+
|
|
|
+
|
|
|
+TYPE
|
|
|
+ WindowHandle = ADDRESS;
|
|
|
+
|
|
|
+CONST
|
|
|
+ WindowPosCentered = 2FFF0000H;
|
|
|
+ WindowPosUndefined = 1FFF0000H;
|
|
|
+
|
|
|
+ WindowFullscreen = 000000001H;
|
|
|
+ WindowOpenGL = 000000002H;
|
|
|
+ WindowShown = 000000004H;
|
|
|
+ WindowHidden = 000000008H;
|
|
|
+ WindowBorderless = 000000010H;
|
|
|
+ WindowResizable = 000000020H;
|
|
|
+ WindowMinimized = 000000040H;
|
|
|
+ WindowMaximized = 000000080H;
|
|
|
+ WindowInputGrabbed = 000000100H;
|
|
|
+ WindowAllowHighDPI = 000002000H;
|
|
|
+
|
|
|
+
|
|
|
+(* SDL_Window *SDL_CreateWindow(const char *title, int x, int y,
|
|
|
+ int w, int h, Uint32 flags) *)
|
|
|
+PROCEDURE SDL_CreateWindow (title: ARRAY OF CHAR;
|
|
|
+ x, y, w, h: INTEGER;
|
|
|
+ flags: CARDINAL) : WindowHandle;
|
|
|
+
|
|
|
+(* void SDL_DestroyWindow(SDL_Window *window) *)
|
|
|
+PROCEDURE SDL_DestroyWindow (win: WindowHandle);
|
|
|
+
|
|
|
+(* const char *SDL_GetWindowTitle(SDL_Window *window) *)
|
|
|
+PROCEDURE SDL_GetWindowTitle (win: WindowHandle) : ADDRESS;
|
|
|
+
|
|
|
+(* void SDL_SetWindowTitle(SDL_Window *window, const char *title) *)
|
|
|
+PROCEDURE SDL_SetWindowTitle (win: WindowHandle; title: ARRAY OF CHAR);
|
|
|
+
|
|
|
+(* void SDL_GetWindowSize(SDL_Window *window, int *w, int *h) *)
|
|
|
+PROCEDURE SDL_GetWindowSize (win: WindowHandle; VAR w, h: INTEGER);
|
|
|
+
|
|
|
+(* void SDL_SetWindowSize(SDL_Window *window, int w, int h) *)
|
|
|
+PROCEDURE SDL_SetWindowSize (win: WindowHandle; w, h: INTEGER);
|
|
|
+
|
|
|
+(* void SDL_ShowWindow(SDL_Window *window) *)
|
|
|
+PROCEDURE SDL_ShowWindow (win: WindowHandle);
|
|
|
+
|
|
|
+(* void SDL_HideWindow(SDL_Window *window) *)
|
|
|
+PROCEDURE SDL_HideWindow (win: WindowHandle);
|
|
|
+
|
|
|
+END SDLVideo.
|