Guest User

Untitled

a guest
Apr 24th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdint.h>
  3. #include <string.h>
  4. #include <stdbool.h>
  5.  
  6. #include "noir.c"
  7.  
  8. #include "SDL.h"
  9.  
  10. typedef struct Window {
  11. SDL_Window *sdl_window;
  12. } Window;
  13.  
  14. Window *create_window(const char *title, int2 size, int2 pos) {
  15. int x = pos.x;
  16. int y = pos.y;
  17. if (x == 0 && y == 0) {
  18. x = SDL_WINDOWPOS_CENTERED;
  19. y = SDL_WINDOWPOS_CENTERED;
  20. }
  21. Window *window = calloc(1, sizeof(Window));
  22. window->sdl_window = SDL_CreateWindow(title, x, y, size.x, size.y, 0);
  23. return window;
  24. }
  25.  
  26. void destroy_window(Window *window) {
  27. SDL_DestroyWindow(window->sdl_window);
  28. }
  29.  
  30. int noir_to_sdl_key[256] = {
  31. [KEY_RETURN] = SDL_SCANCODE_RETURN,
  32. };
  33.  
  34. void update(void) {
  35. SDL_PumpEvents();
  36.  
  37. const uint8_t *sdl_keys = SDL_GetKeyboardState(NULL);
  38. for (int key = 0; key < NUM_KEYS; key++) {
  39. int sdl_key = noir_to_sdl_key[key];
  40. if (!sdl_key) {
  41. continue;
  42. }
  43. bool down = sdl_keys[sdl_key];
  44. bool was_down = keys[key].down;
  45. keys[key].down = down;
  46. keys[key].pressed = down && !was_down;
  47. keys[key].released = !down && was_down;
  48. }
  49. }
  50.  
  51. bool init(void) {
  52. if (SDL_Init(SDL_INIT_EVERYTHING) != 0) {
  53. return false;
  54. }
  55. return true;
  56. }
Add Comment
Please, Sign In to add comment