commit 46077a3149bde09d1395f5c23afd1b6682907551
parent 7256554580257d7d8c168f15933023af41c9aa73
Author: William Casarin <jb55@jb55.com>
Date: Fri, 3 Aug 2018 13:52:45 -0700
keys and such
Diffstat:
M | main.c | | | 42 | ++++++++++++++++++++++++++++++++++++++---- |
1 file changed, 38 insertions(+), 4 deletions(-)
diff --git a/main.c b/main.c
@@ -1,15 +1,36 @@
#include <SDL2/SDL.h>
#include <GL/gl.h>
+#include <assert.h>
#include "defs.h"
struct ln {
+ int quitting;
};
-static void process_events()
-{
- //const u8 *keystates = SDL_GetKeyboardState(NULL);
+void process_events(struct ln *ln, const u8 *keys) {
+ SDL_Event event;
+
+ while (SDL_PollEvent(&event)) {
+ switch (event.type) {
+ case SDL_KEYDOWN:
+ case SDL_KEYUP:
+ if (keys[SDL_SCANCODE_Q] || keys[SDL_SCANCODE_ESCAPE])
+ ln->quitting = 1;
+ break;
+ case SDL_WINDOWEVENT:
+ switch (event.window.event) {
+ case SDL_WINDOWEVENT_RESIZED:
+ //handle_resize(camera, event.window.data1, event.window.data2);
+ break;
+ }
+ break;
+ case SDL_QUIT:
+ SDL_Quit();
+ exit(0);
+ }
+ }
}
static void update(struct ln *ln)
@@ -30,6 +51,10 @@ int main(int argc, char *argv[])
int width = 640;
int height = 480;
struct ln ln;
+ ln.quitting = 0;
+
+ // nanovg needs this
+ SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, 1 );
SDL_Window *window =
SDL_CreateWindow("Lightning Network Visualizer", 0, 0, width,
@@ -39,9 +64,16 @@ int main(int argc, char *argv[])
SDL_GL_CreateContext(window);
u32 last = SDL_GetTicks();
+ int nkeys;
+
+ const u8 *keys = SDL_GetKeyboardState(&nkeys);
+ assert(nkeys > 0);
while (1) {
- process_events();
+ process_events(&ln, keys);
+ if (ln.quitting)
+ break;
+
u32 ticks = SDL_GetTicks();
update(&ln);
@@ -53,5 +85,7 @@ int main(int argc, char *argv[])
SDL_GL_SwapWindow(window);
}
+ SDL_Quit();
+
return 0;
}