Browse code

Removed flickering on initial resize

neauoire authored on 22/09/2021 18:21:57
Showing 1 changed files
... ...
@@ -598,23 +598,24 @@ main(int argc, char **argv)
598 598
 	/* unused   */ uxn_port(&u, 0xe, nil_talk);
599 599
 	/* unused   */ uxn_port(&u, 0xf, nil_talk);
600 600
 
601
-	if(!init())
602
-		return error("Init", "Failed to initialize emulator.");
603
-	if(!set_size(WIDTH, HEIGHT, 0))
604
-		return error("Window", "Failed to set window size.");
605
-	/* default zoom */
601
+	/* set default zoom */
606 602
 	SDL_GetCurrentDisplayMode(0, &DM);
607
-	set_zoom(DM.w / 1000);
608
-	/* zoom from flags */
603
+	zoom = clamp(DM.w / 1280, 1, 3);
604
+	/* get default zoom from flags */
609 605
 	for(i = 1; i < argc - 1; i++) {
610 606
 		if(strcmp(argv[i], "-s") == 0) {
611 607
 			if((i + 1) < argc - 1)
612
-				set_zoom(atoi(argv[++i]));
608
+				zoom = clamp(atoi(argv[++i]), 1, 3);
613 609
 			else
614 610
 				return error("Opt", "-s No scale provided.");
615 611
 		}
616 612
 	}
617 613
 
614
+	if(!init())
615
+		return error("Init", "Failed to initialize emulator.");
616
+	if(!set_size(WIDTH, HEIGHT, 0))
617
+		return error("Window", "Failed to set window size.");
618
+
618 619
 	run(&u);
619 620
 	quit();
620 621
 	return 0;