lnvis

nanovg lightning network visualizer
git clone git://jb55.com/lnvis
Log | Files | Refs | README | LICENSE

commit 46077a3149bde09d1395f5c23afd1b6682907551
parent 7256554580257d7d8c168f15933023af41c9aa73
Author: William Casarin <jb55@jb55.com>
Date:   Fri,  3 Aug 2018 13:52:45 -0700

keys and such

Diffstat:
Mmain.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; }