commit 51679ef
Devie Lu Linvega
·
2025-12-23 18:03:13 +0000 UTC
parent 89c3a89
Cleanup
1 files changed,
+44,
-42
+44,
-42
1@@ -411,11 +411,13 @@ console_input(int c, unsigned int type)
2 #define MAR2(x) (x + 0x10)
3
4 typedef struct UxnScreen {
5- int width, height, zoom, resized, full, x1, y1, x2, y2;
6+ int width, height;
7 } UxnScreen;
8
9-static Uint8 *screen_layers;
10+static int screen_resized, screen_full, screen_zoom;
11+static int screen_x1, screen_y1, screen_x2, screen_y2;
12 static unsigned int screen_vector, *screen_pixels, screen_palette[16];
13+static Uint8 *screen_layers;
14 static UxnScreen uxn_screen;
15
16 static const Uint8 blending[16][4] = {
17@@ -440,10 +442,10 @@ static const Uint8 blending[16][4] = {
18 static void
19 screen_change(const int x1, const int y1, const int x2, const int y2)
20 {
21- if(x1 < uxn_screen.x1) uxn_screen.x1 = x1;
22- if(y1 < uxn_screen.y1) uxn_screen.y1 = y1;
23- if(x2 > uxn_screen.x2) uxn_screen.x2 = x2;
24- if(y2 > uxn_screen.y2) uxn_screen.y2 = y2;
25+ if(x1 < screen_x1) screen_x1 = x1;
26+ if(y1 < screen_y1) screen_y1 = y1;
27+ if(x2 > screen_x2) screen_x2 = x2;
28+ if(y2 > screen_y2) screen_y2 = y2;
29 }
30
31 static void
32@@ -460,7 +462,7 @@ screen_colorize(void)
33 }
34 for(i = 0; i < 16; i++)
35 screen_palette[i] = colors[(i >> 2) ? (i >> 2) : (i & 3)];
36- uxn_screen.full = 1;
37+ screen_full = 1;
38 }
39
40 static void
41@@ -472,32 +474,32 @@ screen_resize(int width, int height)
42 memset(screen_layers, 0, length);
43 uxn_screen.width = width;
44 uxn_screen.height = height;
45- uxn_screen.resized = 1;
46- uxn_screen.full = 1;
47+ screen_resized = 1;
48+ screen_full = 1;
49 }
50 }
51
52 static void
53 scree_redraw(void)
54 {
55- const int ax = uxn_screen.x1 * uxn_screen.zoom;
56- const int ay = uxn_screen.y1 * uxn_screen.zoom;
57- const int aw = uxn_screen.x2 * uxn_screen.zoom - ax;
58- const int ah = uxn_screen.y2 * uxn_screen.zoom - ay;
59+ const int ax = screen_x1 * screen_zoom;
60+ const int ay = screen_y1 * screen_zoom;
61+ const int aw = screen_x2 * screen_zoom - ax;
62+ const int ah = screen_y2 * screen_zoom - ay;
63 int i, x, y, k, l;
64- for(y = uxn_screen.y1; y < uxn_screen.y2; y++) {
65- const int ys = y * uxn_screen.zoom;
66- for(x = uxn_screen.x1, i = MAR(x) + MAR(y) * MAR2(uxn_screen.width); x < uxn_screen.x2; x++, i++) {
67+ for(y = screen_y1; y < screen_y2; y++) {
68+ const int ys = y * screen_zoom;
69+ for(x = screen_x1, i = MAR(x) + MAR(y) * MAR2(uxn_screen.width); x < screen_x2; x++, i++) {
70 const int c = screen_palette[screen_layers[i]];
71- for(k = 0; k < uxn_screen.zoom; k++) {
72- const int oo = ((ys + k) * uxn_screen.width + x) * uxn_screen.zoom;
73- for(l = 0; l < uxn_screen.zoom; l++)
74+ for(k = 0; k < screen_zoom; k++) {
75+ const int oo = ((ys + k) * uxn_screen.width + x) * screen_zoom;
76+ for(l = 0; l < screen_zoom; l++)
77 screen_pixels[oo + l] = c;
78 }
79 }
80 }
81 XPutImage(display, window, DefaultGC(display, 0), ximage, ax, ay, ax, ay, aw, ah);
82- uxn_screen.x1 = uxn_screen.y1 = uxn_screen.x2 = uxn_screen.y2 = uxn_screen.full = 0;
83+ screen_x1 = screen_y1 = screen_x2 = screen_y2 = screen_full = 0;
84 }
85
86 static void
87@@ -505,28 +507,28 @@ screen_update(void)
88 {
89 if(screen_vector)
90 uxn_eval(screen_vector);
91- if(uxn_screen.resized) {
92- const int width = uxn_screen.width * uxn_screen.zoom;
93- const int height = uxn_screen.height * uxn_screen.zoom;
94- const int length = uxn_screen.width * uxn_screen.height * sizeof(unsigned int) * uxn_screen.zoom * uxn_screen.zoom;
95+ if(screen_resized) {
96+ const int width = uxn_screen.width * screen_zoom;
97+ const int height = uxn_screen.height * screen_zoom;
98+ const int length = uxn_screen.width * uxn_screen.height * sizeof(unsigned int) * screen_zoom * screen_zoom;
99 XResizeWindow(display, window, width, height);
100 screen_pixels = realloc(screen_pixels, length);
101 if(ximage)
102 free(ximage);
103 ximage = XCreateImage(display, DefaultVisual(display, 0), DefaultDepth(display, DefaultScreen(display)), ZPixmap, 0, (char *)screen_pixels, width, height, 32, 0);
104- uxn_screen.full = 1;
105- uxn_screen.resized = 0;
106+ screen_full = 1;
107+ screen_resized = 0;
108 }
109- if(uxn_screen.full) {
110- uxn_screen.x1 = uxn_screen.y1 = 0;
111- uxn_screen.x2 = uxn_screen.width;
112- uxn_screen.y2 = uxn_screen.height;
113+ if(screen_full) {
114+ screen_x1 = screen_y1 = 0;
115+ screen_x2 = uxn_screen.width;
116+ screen_y2 = uxn_screen.height;
117 scree_redraw();
118- } else if(uxn_screen.x2 > uxn_screen.x1 && uxn_screen.y2 > uxn_screen.y1) {
119- CLAMP(uxn_screen.x1, 0, uxn_screen.width);
120- CLAMP(uxn_screen.y1, 0, uxn_screen.height);
121- CLAMP(uxn_screen.x2, 0, uxn_screen.width);
122- CLAMP(uxn_screen.y2, 0, uxn_screen.height);
123+ } else if(screen_x2 > screen_x1 && screen_y2 > screen_y1) {
124+ CLAMP(screen_x1, 0, uxn_screen.width);
125+ CLAMP(screen_y1, 0, uxn_screen.height);
126+ CLAMP(screen_x2, 0, uxn_screen.width);
127+ CLAMP(screen_y2, 0, uxn_screen.height);
128 scree_redraw();
129 }
130 }
131@@ -553,7 +555,7 @@ screen_draw_pixel(void)
132 y1 = 0, y2 = rY;
133 else
134 y1 = rY, y2 = uxn_screen.height;
135- uxn_screen.full = 1;
136+ screen_full = 1;
137 x1 = MAR(x1), y1 = MAR(y1);
138 hor = MAR(x2) - x1, ver = MAR(y2) - y1;
139 for(ay = y1 * len, by = ay + ver * len; ay < by; ay += len)
140@@ -569,7 +571,7 @@ screen_draw_pixel(void)
141 const int src = screen_layers[ax];
142 screen_layers[ax] = above ? (src & 0x3) | color : (src & 0xc) | color;
143 }
144- if(!uxn_screen.full) screen_change(rX, rY, rX + 1, rY + 1);
145+ if(!screen_full) screen_change(rX, rY, rX + 1, rY + 1);
146 if(rMX) rX++;
147 if(rMY) rY++;
148 }
149@@ -638,7 +640,7 @@ screen_draw_sprite(void)
150 y1 = y, y2 = rY;
151 else
152 y1 = rY, y2 = y;
153- if(!uxn_screen.full) screen_change(x1 - 8, y1 - 8, x2 + 8, y2 + 8);
154+ if(!screen_full) screen_change(x1 - 8, y1 - 8, x2 + 8, y2 + 8);
155 if(rMX) rX += rDX * fx;
156 if(rMY) rY += rDY * fy;
157 }
158@@ -1147,7 +1149,7 @@ emu_event(void)
159 XNextEvent(display, &ev);
160 switch(ev.type) {
161 case Expose:
162- uxn_screen.full = 1;
163+ screen_full = 1;
164 break;
165 case ClientMessage:
166 dev[0x0f] = 0x80;
167@@ -1156,7 +1158,7 @@ emu_event(void)
168 KeySym sym;
169 XLookupString((XKeyPressedEvent *)&ev, buf, 7, &sym, 0);
170 switch(sym) {
171- case XK_F1: uxn_screen.zoom = (uxn_screen.zoom % 3) + 1, uxn_screen.resized = 1; break;
172+ case XK_F1: screen_zoom = (screen_zoom % 3) + 1, screen_resized = 1; break;
173 case XK_F2: emu_deo(0xe, 0x1); break;
174 case XK_F4: emu_restart(0); break;
175 case XK_F5: emu_restart(1); break;
176@@ -1188,7 +1190,7 @@ emu_event(void)
177 case LeaveNotify:
178 case MotionNotify: {
179 XMotionEvent *e = (XMotionEvent *)&ev;
180- mouse_pos(e->x / uxn_screen.zoom, e->y / uxn_screen.zoom);
181+ mouse_pos(e->x / screen_zoom, e->y / screen_zoom);
182 } break;
183 }
184 }
185@@ -1238,7 +1240,7 @@ main(int argc, char **argv)
186 return !fprintf(stdout, "usage: %s [-v] file.rom [args..]\n", argv[0]);
187 else if(!system_boot(argv[i++], argc > 2))
188 return !fprintf(stdout, "Could not load %s.\n", argv[i - 1]);
189- uxn_screen.zoom = 1;
190+ screen_zoom = 1;
191 screen_resize(WIDTH, HEIGHT);
192 if(uxn_eval(0x100) && console_vector) {
193 for(; i < argc; i++) {