From 2d74b68ac770601ef9e4d621752f9229c56cb2f3 Mon Sep 17 00:00:00 2001 From: Aleksey Veresov Date: Thu, 18 Feb 2021 13:50:05 +0300 Subject: Initial commit. --- src/main.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/utils.c | 10 ++++++++++ src/utils.h | 11 +++++++++++ 3 files changed, 81 insertions(+) create mode 100644 src/main.c create mode 100644 src/utils.c create mode 100644 src/utils.h (limited to 'src') diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..b0c87e2 --- /dev/null +++ b/src/main.c @@ -0,0 +1,60 @@ +#include +#include "utils.h" + + +enum { shape_size = 16 }; + + +int main(int argc, char **argv) +{ + SDL_Window* window; + SDL_Renderer* renderer; + SDL_Texture* background; + SDL_Texture* shape; + + SDL_Rect src; + SDL_Rect dst; + + src.x = 0; + src.y = 0; + src.w = shape_size; + src.h = shape_size; + + dst.x = 640 / 2 - shape_size; + dst.y = 480 / 2 - shape_size; + dst.w = shape_size * 2; + dst.h = shape_size * 2; + + window = SDL_CreateWindow("T A K E T H I S", + SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + 640, 480, 0); + renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); + + background = load_texture(renderer, "data/background.bmp"); + shape = load_texture(renderer, "data/shape.bmp"); + + int i; + int n; + for (i = 0; i < 2; ++i) { + for(n = 0; n < 4; ++n) { + src.x = shape_size * (n % 2); + if (n > 1) { + src.y = shape_size; + } else { + src.y = 0; + } + SDL_RenderCopy(renderer, background, NULL, NULL); + SDL_RenderCopy(renderer, shape, &src, &dst); + SDL_RenderPresent(renderer); + SDL_Delay(500); + } + } + + SDL_DestroyTexture(shape); + SDL_DestroyTexture(background); + SDL_DestroyRenderer(renderer); + SDL_DestroyWindow(window); + SDL_Quit(); + return 0; +} diff --git a/src/utils.c b/src/utils.c new file mode 100644 index 0000000..35bd0a9 --- /dev/null +++ b/src/utils.c @@ -0,0 +1,10 @@ +#include "utils.h" + + +SDL_Texture *load_texture(SDL_Renderer *renderer, const char *path) +{ + SDL_Surface *s = SDL_LoadBMP(path); + SDL_Texture *res = SDL_CreateTextureFromSurface(renderer, s); + SDL_FreeSurface(s); + return res; +} diff --git a/src/utils.h b/src/utils.h new file mode 100644 index 0000000..6b726ab --- /dev/null +++ b/src/utils.h @@ -0,0 +1,11 @@ +#ifndef TAKETHIS_INCLUDED_UTILS +#define TAKETHIS_INCLUDED_UTILS + + +#include + + +SDL_Texture *load_texture(SDL_Renderer *renderer, const char *path); + + +#endif -- cgit v1.2.3