1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back! *
3 *----------------------------------------------------------*
4 * ©1995 Artsoft Development *
6 * 33659 Bielefeld-Senne *
7 * Telefon: (0521) 493245 *
8 * eMail: aeglos@valinor.owl.de *
9 * aeglos@uni-paderborn.de *
10 * q99492@pbhrzx.uni-paderborn.de *
11 *----------------------------------------------------------*
13 ***********************************************************/
22 #if defined(PLATFORM_MSDOS)
26 #if defined(TARGET_SDL)
28 #elif defined(TARGET_X11)
33 /* contant definitions */
35 #define DEFAULT_DEPTH 0
37 #define FULLSCREEN_NOT_AVAILABLE FALSE
38 #define FULLSCREEN_AVAILABLE TRUE
41 /* type definitions */
43 typedef int (*EventFilter)(const Event *);
46 /* structure definitions */
54 char *x11_icon_filename;
55 char *x11_iconmask_filename;
56 char *msdos_pointer_filename;
59 struct VideoSystemInfo
62 int width, height, depth;
63 int scrollbuffer_width, scrollbuffer_height;
64 boolean fullscreen_available;
65 boolean fullscreen_enabled;
68 struct AudioSystemInfo
70 boolean sound_available;
71 boolean loops_available;
72 int soundserver_pipe[2];
83 char *ro_base_directory;
84 char *rw_base_directory;
85 char *level_directory;
93 /* ========================================================================= */
94 /* exported variables */
95 /* ========================================================================= */
97 extern struct ProgramInfo program;
98 extern struct VideoSystemInfo video;
99 extern struct AudioSystemInfo audio;
100 extern struct OptionInfo options;
103 /* declarations of internal variables */
105 extern Display *display;
106 extern Visual *visual;
108 extern Colormap cmap;
110 extern DrawWindow window;
111 extern DrawBuffer backbuffer;
114 extern int FrameCounter;
117 /* function definitions */
119 inline void InitProgramInfo(char *, char *, char *, char *, char *, char *,
121 inline void InitScrollbufferSize(int, int);
122 inline void InitVideoDisplay(void);
123 inline void InitVideoBuffer(DrawBuffer *,DrawWindow *, int, int, int, boolean);
124 inline Bitmap CreateBitmap(int, int, int);
125 inline void FreeBitmap(Bitmap);
126 inline void ClearRectangle(Bitmap, int, int, int, int);
127 inline void BlitBitmap(Bitmap, Bitmap, int, int, int, int, int, int);
128 inline void SetClipMask(GC, Pixmap);
129 inline void SetClipOrigin(GC, int, int);
130 inline void BlitBitmapMasked(Bitmap, Bitmap, int, int, int, int, int, int);
131 inline void DrawSimpleWhiteLine(Bitmap, int, int, int, int);
132 inline void FlushDisplay(void);
133 inline void SyncDisplay(void);
134 inline void KeyboardAutoRepeatOn(void);
135 inline void KeyboardAutoRepeatOff(void);
136 inline boolean PointerInWindow(DrawWindow);
137 inline boolean SetVideoMode(boolean);
138 inline boolean ChangeVideoModeIfNeeded(boolean);
140 inline boolean OpenAudio(struct AudioSystemInfo *);
141 inline void CloseAudio(struct AudioSystemInfo *);
143 inline void InitEventFilter(EventFilter);
144 inline boolean PendingEvent(void);
145 inline void NextEvent(Event *event);
146 inline Key GetEventKey(KeyEvent *, boolean);
147 inline boolean CheckCloseWindowEvent(ClientMessageEvent *);
149 #endif /* SYSTEM_H */