fix event handling
parent
b1dd2c01e4
commit
97aa787cae
56
xormod.c
56
xormod.c
|
@ -6,6 +6,7 @@
|
|||
#include "types.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <inttypes.h>
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
int main() {
|
||||
|
@ -34,15 +35,14 @@ int main() {
|
|||
Uint64 last = SDL_GetTicks();
|
||||
|
||||
int running = 1;
|
||||
int debug = 1;
|
||||
|
||||
while (running) {
|
||||
Uint64 ticks = SDL_GetTicks();
|
||||
Uint64 delta = ticks - last;
|
||||
last = ticks;
|
||||
|
||||
const bool *keys = SDL_GetKeyboardState(NULL);
|
||||
if (keys[SDL_SCANCODE_ESCAPE] || keys[SDL_SCANCODE_Q]) {
|
||||
break;
|
||||
}
|
||||
if (keys[SDL_SCANCODE_LEFT] || keys[SDL_SCANCODE_A]) {
|
||||
f.offset.x -= 16;
|
||||
}
|
||||
|
@ -71,28 +71,46 @@ int main() {
|
|||
Field_scroll(&f, rend);
|
||||
Field_draw(&f, rend);
|
||||
|
||||
char buf[72];
|
||||
SDL_SetRenderDrawColor(rend, 0, 0, 0, 255);
|
||||
SDL_RenderFillRect(rend, &(SDL_FRect) {
|
||||
0, 0, sizeof(buf)*font_w, 8*font_h
|
||||
});
|
||||
if (debug) {
|
||||
char buf[72];
|
||||
SDL_SetRenderDrawColor(rend, 0, 0, 0, 255);
|
||||
SDL_RenderFillRect(rend, &(SDL_FRect) {
|
||||
0, 0, sizeof(buf)*font_w, 8*font_h
|
||||
});
|
||||
|
||||
draw_text(rend, ACCEL_PLATFORM_STR, sizeof(ACCEL_PLATFORM_STR), RC(1,1), 255, 255, 255);
|
||||
draw_text(rend, ACCEL_PLATFORM_STR, sizeof(ACCEL_PLATFORM_STR), RC(1,1), 255, 255, 255);
|
||||
|
||||
size_t len = snprintf(buf, sizeof(buf),
|
||||
"off.x: %d, off.y: %d, \xEBT: %" SDL_PRIu64, f.offset.x, f.offset.y, delta);
|
||||
draw_text(rend, buf, len, RC(2, 1), 255, 255, 255);
|
||||
size_t len = snprintf(buf, sizeof(buf),
|
||||
"off.x: %d, off.y: %d, \xEBT: %" PRIu64, f.offset.x, f.offset.y, delta);
|
||||
draw_text(rend, buf, len, RC(2, 1), 255, 255, 255);
|
||||
|
||||
char *q[] = {"TL", "TR", "BL", "BR"};
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Picture *p = f.pics[i];
|
||||
len = snprintf(buf, sizeof(buf), "%s \xB3 x1: %05d, x2: %05d, y1: %05d, y2: %05d, p: %p",
|
||||
q[i], p->x1, p->x2, p->y1, p->y2, p);
|
||||
draw_text(rend, buf, len, RC(3+i, 1), 255, 255, 255);
|
||||
char *q[] = {"TL", "TR", "BL", "BR"};
|
||||
for (int i = 0; i < 4; i++) {
|
||||
Picture *p = f.pics[i];
|
||||
len = snprintf(buf, sizeof(buf), "%s \xB3 x1: %05d, x2: %05d, y1: %05d, y2: %05d, p: %p",
|
||||
q[i], p->x1, p->x2, p->y1, p->y2, p);
|
||||
draw_text(rend, buf, len, RC(3+i, 1), 255, 255, 255);
|
||||
}
|
||||
}
|
||||
|
||||
SDL_RenderPresent(rend);
|
||||
SDL_PumpEvents();
|
||||
|
||||
SDL_Event event;
|
||||
while (SDL_PollEvent(&event)) {
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_QUIT: running = 0; break;
|
||||
case SDL_EVENT_WINDOW_RESIZED: {
|
||||
} break;
|
||||
case SDL_EVENT_KEY_DOWN: {
|
||||
if (event.key.repeat) break;
|
||||
switch (event.key.key) {
|
||||
case SDLK_ESCAPE:
|
||||
case SDLK_Q: running = 0; break;
|
||||
case SDLK_G: debug ^= 1; break;
|
||||
}
|
||||
} break;
|
||||
}
|
||||
}
|
||||
|
||||
if (delta < 16) {
|
||||
SDL_Delay(16 - delta);
|
||||
|
|
Loading…
Reference in New Issue