Browse code

Housekeeping

Devine Lu Linvega authored on 24/07/2023 16:48:49
Showing 3 changed files
... ...
@@ -104,9 +104,9 @@ screen_resize(Uint16 width, Uint16 height)
104 104
 	uxn_screen.pixels = pixels;
105 105
 	uxn_screen.width = width;
106 106
 	uxn_screen.height = height;
107
-	screen_fill(uxn_screen.bg, 0, 0, uxn_screen.width, uxn_screen.height, 0);
108
-	screen_fill(uxn_screen.fg, 0, 0, uxn_screen.width, uxn_screen.height, 0);
109
-	emu_resize();
107
+	screen_fill(uxn_screen.bg, 0, 0, width, height, 0);
108
+	screen_fill(uxn_screen.fg, 0, 0, width, height, 0);
109
+	emu_resize(width, height);
110 110
 }
111 111
 
112 112
 void
... ...
@@ -17,7 +17,7 @@ typedef struct UxnScreen {
17 17
 } UxnScreen;
18 18
 
19 19
 extern UxnScreen uxn_screen;
20
-extern int emu_resize(void);
20
+extern int emu_resize(int width, int height);
21 21
 
22 22
 void screen_palette(Uint8 *addr);
23 23
 void screen_resize(Uint16 width, Uint16 height);
... ...
@@ -119,7 +119,7 @@ emu_deo(Uxn *u, Uint8 addr)
119 119
 	}
120 120
 }
121 121
 
122
-#pragma mark - Generics
122
+/* Handlers */
123 123
 
124 124
 static void
125 125
 audio_callback(void *u, Uint8 *stream, int len)
... ...
@@ -166,22 +166,22 @@ set_window_size(SDL_Window *window, int w, int h)
166 166
 }
167 167
 
168 168
 int
169
-emu_resize(void)
169
+emu_resize(int width, int height)
170 170
 {
171 171
 	if(emu_texture != NULL)
172 172
 		SDL_DestroyTexture(emu_texture);
173
-	SDL_RenderSetLogicalSize(emu_renderer, uxn_screen.width, uxn_screen.height);
174
-	emu_texture = SDL_CreateTexture(emu_renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STATIC, uxn_screen.width, uxn_screen.height);
173
+	SDL_RenderSetLogicalSize(emu_renderer, width, height);
174
+	emu_texture = SDL_CreateTexture(emu_renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STATIC, width, height);
175 175
 	if(emu_texture == NULL || SDL_SetTextureBlendMode(emu_texture, SDL_BLENDMODE_NONE))
176 176
 		return system_error("SDL_SetTextureBlendMode", SDL_GetError());
177 177
 	if(SDL_UpdateTexture(emu_texture, NULL, uxn_screen.pixels, sizeof(Uint32)) != 0)
178 178
 		return system_error("SDL_UpdateTexture", SDL_GetError());
179
-	set_window_size(emu_window, (uxn_screen.width) * zoom, (uxn_screen.height) * zoom);
179
+	set_window_size(emu_window, width * zoom, height * zoom);
180 180
 	return 1;
181 181
 }
182 182
 
183 183
 static void
184
-redraw(void)
184
+emu_redraw(void)
185 185
 {
186 186
 	screen_redraw();
187 187
 	if(SDL_UpdateTexture(emu_texture, NULL, uxn_screen.pixels, uxn_screen.width * sizeof(Uint32)) != 0)
... ...
@@ -226,8 +226,6 @@ init(void)
226 226
 	return 1;
227 227
 }
228 228
 
229
-#pragma mark - Devices
230
-
231 229
 /* Boot */
232 230
 
233 231
 static int
... ...
@@ -287,7 +285,7 @@ capture_screen(void)
287 285
 }
288 286
 
289 287
 static void
290
-restart(Uxn *u)
288
+emu_restart(Uxn *u)
291 289
 {
292 290
 	screen_resize(WIDTH, HEIGHT);
293 291
 	if(!start(u, "launcher.rom", 0))
... ...
@@ -342,19 +340,6 @@ get_key(SDL_Event *event)
342 340
 	return 0x00;
343 341
 }
344 342
 
345
-static void
346
-do_shortcut(Uxn *u, SDL_Event *event)
347
-{
348
-	if(event->key.keysym.sym == SDLK_F1)
349
-		set_zoom(zoom == 3 ? 1 : zoom + 1);
350
-	else if(event->key.keysym.sym == SDLK_F2)
351
-		system_inspect(u);
352
-	else if(event->key.keysym.sym == SDLK_F3)
353
-		capture_screen();
354
-	else if(event->key.keysym.sym == SDLK_F4)
355
-		restart(u);
356
-}
357
-
358 343
 static int
359 344
 handle_events(Uxn *u)
360 345
 {
... ...
@@ -364,7 +349,7 @@ handle_events(Uxn *u)
364 349
 		if(event.type == SDL_QUIT)
365 350
 			return 0;
366 351
 		else if(event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_EXPOSED)
367
-			redraw();
352
+			emu_redraw();
368 353
 		else if(event.type == SDL_DROPFILE) {
369 354
 			screen_resize(WIDTH, HEIGHT);
370 355
 			start(u, event.drop.file, 0);
... ...
@@ -391,12 +376,17 @@ handle_events(Uxn *u)
391 376
 				controller_key(u, &u->dev[0x80], get_key(&event));
392 377
 			else if(get_button(&event))
393 378
 				controller_down(u, &u->dev[0x80], get_button(&event));
394
-			else
395
-				do_shortcut(u, &event);
379
+			else if(event.key.keysym.sym == SDLK_F1)
380
+				set_zoom(zoom == 3 ? 1 : zoom + 1);
381
+			else if(event.key.keysym.sym == SDLK_F2)
382
+				system_inspect(u);
383
+			else if(event.key.keysym.sym == SDLK_F3)
384
+				capture_screen();
385
+			else if(event.key.keysym.sym == SDLK_F4)
386
+				emu_restart(u);
396 387
 			ksym = event.key.keysym.sym;
397
-			if(SDL_PeepEvents(&event, 1, SDL_PEEKEVENT, SDL_KEYUP, SDL_KEYUP) == 1 && ksym == event.key.keysym.sym) {
388
+			if(SDL_PeepEvents(&event, 1, SDL_PEEKEVENT, SDL_KEYUP, SDL_KEYUP) == 1 && ksym == event.key.keysym.sym)
398 389
 				return 1;
399
-			}
400 390
 		} else if(event.type == SDL_KEYUP)
401 391
 			controller_up(u, &u->dev[0x80], get_button(&event));
402 392
 		else if(event.type == SDL_JOYAXISMOTION) {
... ...
@@ -473,7 +463,7 @@ run(Uxn *u)
473 463
 			next_refresh = now + frame_interval;
474 464
 			uxn_eval(u, screen_vector);
475 465
 			if(uxn_screen.x2)
476
-				redraw();
466
+				emu_redraw();
477 467
 		}
478 468
 		if(BENCH) {
479 469
 			/* no delay */