a1955edca17e074934f2dcc1e7c8c96621eb4d29
[mirrors/Programs.git] / c / SDL2_putpixel_click / main.c
1 //gcc -Wextra -pedantic-errors -o main.out main.c -lSDL2
2
3 #include <unistd.h>
4 #include <stdio.h>
5 #include <stdlib.h>
6
7 #include <SDL2/SDL.h>
8
9 #define WINDOW_WIDTH 600
10
11 int main(void) {
12 SDL_Event event;
13 SDL_Renderer *renderer;
14 SDL_Window *window;
15 int i;
16
17 SDL_Init(SDL_INIT_VIDEO);
18 SDL_CreateWindowAndRenderer(WINDOW_WIDTH, WINDOW_WIDTH, 0, &window, &renderer);
19 //SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN_DESKTOP);
20
21 SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0);
22 SDL_RenderClear(renderer);
23 SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
24
25 for (i = 0; i < WINDOW_WIDTH; ++i)
26 SDL_RenderDrawPoint(renderer, i, i);
27
28 SDL_RenderPresent(renderer);
29
30 int running = 1;
31 int mouseX, mouseY;
32 Uint32 fullscreen_status = 0;
33
34 while(running) {
35 event.type = 0;
36 if(SDL_PollEvent(&event)) {
37 switch(event.type){
38 case SDL_QUIT:
39 running = 0;
40 break;
41 case SDL_KEYDOWN:
42 //case SDL_KEYUP:
43 printf("Key: %d\t%d\t%d\n", event.key.keysym.scancode, event.key.keysym.sym, event.key.keysym.mod );
44
45 if(event.key.keysym.scancode == SDL_SCANCODE_F && event.key.keysym.mod == KMOD_LCTRL) {
46 fullscreen_status = fullscreen_status ? 0 : SDL_WINDOW_FULLSCREEN_DESKTOP;
47 SDL_SetWindowFullscreen(window, fullscreen_status);
48 }
49
50 if(event.key.keysym.scancode == SDL_SCANCODE_Q && event.key.keysym.mod == KMOD_LCTRL) {
51 running = 0;
52 }
53
54 break;
55 case SDL_MOUSEBUTTONDOWN:
56 //do whatever you want to do after a mouse button was pressed,
57 // e.g.:
58 //if(event.button.button == SDL_BUTTON_LEFT) {
59 while(event.type != SDL_MOUSEBUTTONUP) {
60 SDL_GetMouseState(&mouseX, &mouseY);
61 SDL_RenderDrawPoint(renderer, mouseX, mouseY);
62 SDL_RenderDrawPoint(renderer, mouseX, mouseY+1);
63 SDL_RenderDrawPoint(renderer, mouseX+1, mouseY);
64 SDL_RenderDrawPoint(renderer, mouseX+1, mouseY+1);
65 SDL_RenderPresent(renderer);
66 SDL_PollEvent(&event);
67 }
68 printf("Click: %d\t%d\t%d\n", mouseX, mouseY, event.button.button);
69 //}
70 break;
71 }
72 }
73 usleep(10000);
74 }
75 SDL_DestroyRenderer(renderer);
76 SDL_DestroyWindow(window);
77 SDL_Quit();
78 return EXIT_SUCCESS;
79 }
This page took 0.273495 seconds and 3 git commands to generate.