6c3729fb2a5596f69f23700ebaf1e47c5c3fb469
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}
69 ;
71 var
76 begin
80 begin
86 begin
93 end
94 end
99 begin
100 {$IFDEF NOGL_INIT}
102 {$ELSE}
105 begin
107 begin
109 exit
110 end
111 end
112 {$ENDIF}
116 begin
122 begin
128 begin
137 begin
138 {$IFNDEF USE_SYSSTUB}
139 PrintGLSupportedExtensions;
141 {$ELSE}
144 {$ENDIF}
146 begin
149 end
150 else
151 begin
154 else
156 end
161 begin
163 begin
164 {$IFDEF NOGL_INIT}
165 nogl_Init;
166 {$ENDIF}
168 begin
170 {$IFDEF NOGL_INIT}
172 {$ELSE}
174 {$ENDIF}
176 begin
182 end
186 begin
188 begin
189 {$IFDEF NOGL_INIT}
190 nogl_Quit;
191 {$ENDIF}
193 end
197 begin
198 r_Game_LoadTextures;
199 r_Map_LoadTextures;
203 begin
204 r_Map_FreeTextures;
205 r_Game_FreeTextures;
209 begin
211 r_Player_Load;
212 r_Map_Load;
213 r_PlayerModel_Load;
214 r_Monsters_Load;
215 r_Weapon_Load;
216 r_Items_Load;
217 {$IFDEF ENABLE_GFX}
218 r_GFX_Load;
219 {$ENDIF}
223 begin
224 {$IFDEF ENABLE_GFX}
225 r_GFX_Free;
226 {$ENDIF}
227 r_Items_Free;
228 r_Weapon_Free;
229 r_Monsters_Free;
230 r_PlayerModel_Free;
231 r_Map_Free;
232 r_Player_Free;
233 r_Game_Free;
234 g_Texture_DeleteAll;
235 g_Frames_DeleteAll;
239 begin
242 LoadGL;
243 r_Window_Initialize;
244 r_Console_Init;
245 r_PlayerModel_Initialize;
246 r_Map_Initialize;
250 begin
251 r_Map_Finalize;
252 r_PlayerModel_Finalize;
253 FreeGL;
254 e_ReleaseEngine
258 begin
259 {$IFDEF ENABLE_GFX}
260 r_GFX_Update;
261 {$ENDIF}
262 r_Map_Update;
263 r_PlayerModel_Update;
264 r_Console_Update;
268 begin
269 r_Game_Draw;
270 {$IFDEF ENABLE_TOUCH}
271 r_Touch_Draw;
272 {$ENDIF}
276 begin
277 LoadGL;
283 begin
284 // store real window size in gWinSize, downscale resolution now
288 begin
298 e_InitGL;
299 r_Game_SetupScreenSize;
303 begin
304 if sys_SetDisplayMode(Max(1, gRC_Width), Max(1, gRC_Height), Max(1, gBPP), gRC_FullScreen, gRC_Maximized) then
306 else
313 begin
315 try
317 try
320 except
324 finally
325 end
328 {$IFDEF ENABLE_GIBS}
330 begin
333 {$ENDIF}
335 {$IFDEF ENABLE_GFX}
337 begin
340 {$ENDIF}
342 {$IFDEF ENABLE_TOUCH}
344 begin
347 {$ENDIF}
350 begin