Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- File name:
- keyboard_test.c
- Compile with:
- gcc -lSDLmain -lSDL -lcairo keyboard_test.c -o keyboard_test
- Run:
- ./keyboard_test
- */
- #include <SDL/SDL.h>
- #include <cairo/cairo.h>
- int W = 500, H = 500;
- char *FONT = "Liberation Mono";
- int KEYS_PRESSED_CNT = 0;
- void draw(cairo_t *c) {
- cairo_set_source_rgb(c, 0.1, 0.1, 0.1);
- cairo_paint(c);
- char str[3];
- sprintf(str, "%i", KEYS_PRESSED_CNT);
- cairo_set_source_rgb(c, 0, 1, 1);
- cairo_move_to(c, 145, 365);
- cairo_show_text(c, str);
- }
- int main() {
- SDL_Init(SDL_INIT_VIDEO);
- SDL_Surface *screen = SDL_SetVideoMode(W, H, 32, 0);
- cairo_surface_t *cairo_s;
- cairo_s = cairo_image_surface_create_for_data(screen->pixels,
- CAIRO_FORMAT_ARGB32, W, H, screen->pitch);
- cairo_t *c = cairo_create(cairo_s);
- cairo_select_font_face(c, FONT, 0, 0);
- cairo_set_font_size(c, 350);
- SDL_Event event;
- while (1) {
- draw(c); SDL_Flip(screen);
- SDL_WaitEvent(&event);
- switch (event.type) {
- case SDL_QUIT: return 0;
- case SDL_KEYDOWN:
- if (event.key.keysym.sym == SDLK_ESCAPE)
- return 0;
- KEYS_PRESSED_CNT += 1;
- break;
- case SDL_KEYUP:
- KEYS_PRESSED_CNT -= 1;
- if (KEYS_PRESSED_CNT < 0)
- KEYS_PRESSED_CNT = 0;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement