X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;ds=sidebyside;f=c%2FSDL2_putpixel_click%2Fmain.c;h=72adf70da734f157730f68127eb0d1824bb1c0f2;hb=3278bd05b32d60782f649a074e8c43943c9c31c2;hp=1acfdb25e67fe2e2cb4f15edce84c233f71ff458;hpb=277e8f9c1a6f036ceee2396f68fadff131a6794b;p=mirrors%2FPrograms.git diff --git a/c/SDL2_putpixel_click/main.c b/c/SDL2_putpixel_click/main.c index 1acfdb2..72adf70 100644 --- a/c/SDL2_putpixel_click/main.c +++ b/c/SDL2_putpixel_click/main.c @@ -1,5 +1,6 @@ //gcc -Wextra -pedantic-errors -o main.out main.c -lSDL2 +#include #include #include @@ -14,8 +15,11 @@ int main(void) { int i; SDL_Init(SDL_INIT_VIDEO); - SDL_CreateWindowAndRenderer(WINDOW_WIDTH, WINDOW_WIDTH, 0, &window, &renderer); + SDL_CreateWindowAndRenderer(WINDOW_WIDTH, WINDOW_WIDTH, SDL_WINDOW_RESIZABLE, &window, &renderer); //SDL_SetWindowFullscreen(window, SDL_WINDOW_FULLSCREEN_DESKTOP); + //SDL_RenderSetScale(renderer, 2.0, 2.0); + SDL_SetWindowTitle(window, "Simple SDL paint"); + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0); SDL_RenderClear(renderer); @@ -28,25 +32,50 @@ int main(void) { int running = 1; int mouseX, mouseY; + Uint32 fullscreen_status = 0; + while(running) { event.type = 0; if(SDL_PollEvent(&event)) { switch(event.type){ + case SDL_WINDOWEVENT: + break; case SDL_QUIT: running = 0; + break; + case SDL_KEYDOWN: + //case SDL_KEYUP: + printf("Key: %d\t%d\t%d\n", event.key.keysym.scancode, event.key.keysym.sym, event.key.keysym.mod ); + + if(event.key.keysym.scancode == SDL_SCANCODE_F && event.key.keysym.mod == KMOD_LCTRL) { + fullscreen_status = fullscreen_status ? 0 : SDL_WINDOW_FULLSCREEN_DESKTOP; + SDL_SetWindowFullscreen(window, fullscreen_status); + } + + if(event.key.keysym.scancode == SDL_SCANCODE_Q && event.key.keysym.mod == KMOD_LCTRL) { + running = 0; + } + break; case SDL_MOUSEBUTTONDOWN: //do whatever you want to do after a mouse button was pressed, // e.g.: //if(event.button.button == SDL_BUTTON_LEFT) { - SDL_GetMouseState(&mouseX, &mouseY); - printf("Click %d, %d, %d\n", mouseX, mouseY, event.button.button); - SDL_RenderDrawPoint(renderer, mouseX, mouseY); - SDL_RenderPresent(renderer); + while(event.type != SDL_MOUSEBUTTONUP) { + SDL_GetMouseState(&mouseX, &mouseY); + SDL_RenderDrawPoint(renderer, mouseX, mouseY); + SDL_RenderDrawPoint(renderer, mouseX, mouseY+1); + SDL_RenderDrawPoint(renderer, mouseX+1, mouseY); + SDL_RenderDrawPoint(renderer, mouseX+1, mouseY+1); + SDL_RenderPresent(renderer); + SDL_PollEvent(&event); + } + printf("Click: %d\t%d\t%d\n", mouseX, mouseY, event.button.button); //} break; } } + usleep(10000); } SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window);