1 (* Copyright (C) Doom 2D: Forever Developers
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, version 3 of the License ONLY.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 *
12 * You should have received a copy of the GNU General Public License
13 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14 *)
15 {$INCLUDE ../../shared/a_modes.inc}
18 interface
39 {$IFDEF ENABLE_GIBS}
41 {$ENDIF}
43 {$IFDEF ENABLE_GFX}
45 {$ENDIF}
47 {$IFDEF ENABLE_TOUCH}
48 // touch screen button location and size
50 {$ENDIF}
54 implementation
56 uses
57 {$INCLUDE ../../nogl/noGLuses.inc}
58 {$IFDEF ENABLE_TOUCH}
59 r_touch,
60 {$ENDIF}
61 {$IFDEF ENABLE_GFX}
62 r_gfx,
63 {$ENDIF}
64 {$IFDEF ENABLE_SYSTEM}
65 g_system,
66 {$ENDIF}
67 {$IFDEF ENABLE_MENU}
68 r_gui,
69 {$ENDIF}
75 ;
77 var
82 begin
86 begin
92 begin
99 end
100 end
105 begin
106 {$IFDEF NOGL_INIT}
108 {$ELSE}
111 begin
113 begin
115 exit
116 end
117 end
118 {$ENDIF}
122 begin
128 begin
134 begin
143 begin
144 {$IFNDEF USE_SYSSTUB}
145 PrintGLSupportedExtensions;
147 {$ELSE}
150 {$ENDIF}
152 begin
155 end
156 else
157 begin
160 else
162 end
167 begin
169 begin
170 {$IFDEF NOGL_INIT}
171 nogl_Init;
172 {$ENDIF}
174 begin
176 {$IFDEF NOGL_INIT}
178 {$ELSE}
180 {$ENDIF}
182 begin
188 end
192 begin
194 begin
195 {$IFDEF NOGL_INIT}
196 nogl_Quit;
197 {$ENDIF}
199 end
203 begin
204 r_Game_LoadTextures;
205 r_Map_LoadTextures;
209 begin
210 r_Map_FreeTextures;
211 r_Game_FreeTextures;
215 begin
217 r_Player_Load;
218 r_Map_Load;
219 r_PlayerModel_Load;
220 r_Monsters_Load;
221 r_Weapon_Load;
222 r_Items_Load;
223 {$IFDEF ENABLE_GFX}
224 r_GFX_Load;
225 {$ENDIF}
226 {$IFDEF ENABLE_MENU}
227 r_GUI_Load;
228 {$ENDIF}
232 begin
233 {$IFDEF ENABLE_MENU}
234 r_GUI_Free;
235 {$ENDIF}
236 {$IFDEF ENABLE_GFX}
237 r_GFX_Free;
238 {$ENDIF}
239 r_Items_Free;
240 r_Weapon_Free;
241 r_Monsters_Free;
242 r_PlayerModel_Free;
243 r_Map_Free;
244 r_Player_Free;
245 r_Game_Free;
246 g_Texture_DeleteAll;
247 g_Frames_DeleteAll;
251 begin
252 {$IFDEF ENABLE_SYSTEM}
255 {$ENDIF}
256 LoadGL;
257 r_Window_Initialize;
258 r_Console_Init;
259 r_PlayerModel_Initialize;
260 r_Map_Initialize;
264 begin
265 r_Map_Finalize;
266 r_PlayerModel_Finalize;
267 FreeGL;
268 e_ReleaseEngine
272 begin
273 {$IFDEF ENABLE_GFX}
274 r_GFX_Update;
275 {$ENDIF}
276 r_Map_Update;
277 r_PlayerModel_Update;
278 r_Console_Update;
282 begin
283 r_Game_Draw;
284 {$IFDEF ENABLE_TOUCH}
285 r_Touch_Draw;
286 {$ENDIF}
290 begin
291 LoadGL;
297 begin
298 // store real window size in gWinSize, downscale resolution now
302 begin
312 e_InitGL;
313 r_Game_SetupScreenSize;
317 begin
318 {$IFDEF ENABLE_SYSTEM}
319 if sys_SetDisplayMode(Max(1, gRC_Width), Max(1, gRC_Height), Max(1, gBPP), gRC_FullScreen, gRC_Maximized) then
321 else
324 {$ENDIF}
329 begin
331 try
333 try
336 except
340 finally
341 end
344 {$IFDEF ENABLE_GIBS}
346 begin
349 {$ENDIF}
351 {$IFDEF ENABLE_GFX}
353 begin
356 {$ENDIF}
358 {$IFDEF ENABLE_TOUCH}
360 begin
363 {$ENDIF}
366 begin