From 17aaa525ff5cfee3d389455ee1411a5fd994481a Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Sun, 1 Oct 2023 23:37:08 +0100 Subject: [PATCH] Test loading and rendering the same texture in 2 different methods --- ball.png | Bin 0 -> 20725 bytes main.c | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 ball.png create mode 100644 main.c diff --git a/ball.png b/ball.png new file mode 100644 index 0000000000000000000000000000000000000000..f786d5275aadfdf9d91fc06ba908c74246670c62 GIT binary patch literal 20725 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 literal 0 HcmV?d00001 diff --git a/main.c b/main.c new file mode 100644 index 0000000..4b44392 --- /dev/null +++ b/main.c @@ -0,0 +1,122 @@ +#include "aliases.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define WINDOW_WIDTH 800 +#define WINDOW_HEIGHT 600 + +#define IMAGE_WIDTH 300 +#define IMAGE_HEIGHT 300 + +typedef struct { + u64 size; + u8 *buf; +} img_t; + +img_t load_image(const char *filepath); +SDL_Texture *load_texture(SDL_Renderer *renderer, const char *filepath); + +int main(void) { + SDL_Init(SDL_INIT_EVERYTHING); + IMG_Init(IMG_INIT_PNG); + + SDL_Window *window = + SDL_CreateWindow("Window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, + WINDOW_WIDTH, WINDOW_HEIGHT, SDL_WINDOW_SHOWN); + + SDL_Renderer *renderer = SDL_CreateRenderer( + window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); + + bool running = true; + + SDL_Event event = {0}; + + SDL_Texture *texture1 = IMG_LoadTexture(renderer, "ball.png"); + SDL_Texture *texture2 = load_texture(renderer, "ball.png"); + + SDL_Rect dest1 = { + .x = 50, + .y = 150, + .w = IMAGE_WIDTH, + .h = IMAGE_HEIGHT, + }; + SDL_Rect dest2 = { + .x = 450, + .y = 150, + .w = IMAGE_WIDTH, + .h = IMAGE_HEIGHT, + }; + + while (running) { + while (SDL_PollEvent(&event)) { + switch (event.type) { + case SDL_QUIT: + running = false; + break; + } + } + + SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255); + + SDL_RenderClear(renderer); + + SDL_RenderCopy(renderer, texture1, NULL, &dest1); + SDL_RenderCopy(renderer, texture2, NULL, &dest2); + + SDL_RenderPresent(renderer); + } + + SDL_DestroyRenderer(renderer); + + SDL_DestroyWindow(window); + + IMG_Quit(); + SDL_Quit(); + + return 0; +} + +img_t load_image(const char *filepath) { + FILE *fp = fopen(filepath, "rb"); + if (!fp) { + return (img_t){0}; + } + + img_t img = {0}; + + fseek(fp, 0, SEEK_END); + + img.size = ftell(fp); + + fseek(fp, 0, SEEK_SET); + + img.buf = (u8 *)malloc(img.size); + + fread((void *)(img.buf), img.size, 1, fp); + + fclose(fp); + + return img; +} + +SDL_Texture *load_texture(SDL_Renderer *renderer, const char *filepath) { + img_t img = load_image("ball.png"); + if (!(img.buf)) { + return NULL; + } + + SDL_RWops *ctx = SDL_RWFromMem(img.buf, img.size); + SDL_Texture *texture = IMG_LoadTexture_RW(renderer, ctx, 1); + + free(img.buf); + + return texture; +}