commit 10466d2948dbe639e4089fd31aef75e25cc7666d
parent a5ece423766f9be0cedcbf237e756aa84c0cf963
Author: bsandro <brian.drosan@gmail.com>
Date: Mon, 14 Feb 2022 01:44:16 +0200
Moving a picture on any event, Metal usage and highdpi flags
Diffstat:
3 files changed, 32 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
@@ -18,3 +18,6 @@ clean:
$(NAME): $(OBJ)
$(CC) $(OBJ) -o $@ $(LDFLAGS)
+
+run: $(NAME)
+ ./$(NAME)
diff --git a/chikaiKnife.png b/chikaiKnife.png
Binary files differ.
diff --git a/main.c b/main.c
@@ -5,21 +5,36 @@
#include <SDL.h>
#include <SDL_image.h>
-int main(void) {
+int main(int argc, char *argv[]) {
+ (void)argc;
+ (void)argv;
+
bool quit = false;
SDL_Event event;
SDL_Init(SDL_INIT_VIDEO);
- SDL_Window *screen = SDL_CreateWindow("flappychik", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0);
+ SDL_Window *screen = SDL_CreateWindow("flappychik", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_METAL | SDL_WINDOW_ALLOW_HIGHDPI);
assert(screen != NULL);
SDL_Renderer *renderer = SDL_CreateRenderer(screen, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
assert(renderer != NULL);
- SDL_Surface *jpg = IMG_Load("kohina.jpg");
- assert(jpg != NULL);
+ SDL_Surface *bg = IMG_Load("kohina.jpg");
+ assert(bg != NULL);
+
+ SDL_Surface *knife = IMG_Load("chikaiKnife.png"); // 56x56px
+ assert(knife != NULL);
+
+ SDL_Texture *tex_bg = SDL_CreateTextureFromSurface(renderer, bg);
+ SDL_Texture *tex_knife = SDL_CreateTextureFromSurface(renderer, knife);
+ SDL_FreeSurface(knife);
+ SDL_FreeSurface(bg);
- SDL_Texture *tex = SDL_CreateTextureFromSurface(renderer, jpg);
+ SDL_RenderCopy(renderer, tex_bg, NULL, NULL);
+ SDL_Rect knife_rect = {0, 0, 56, 56};
+ SDL_RenderCopy(renderer, tex_knife, NULL, &knife_rect);
+
+ SDL_RenderPresent(renderer);
while (!quit) {
SDL_WaitEvent(&event);
@@ -28,16 +43,22 @@ int main(void) {
quit = true;
break;
}
+ SDL_RenderClear(renderer);
- SDL_RenderCopy(renderer, tex, NULL, NULL);
+ knife_rect.x += 1;
+ knife_rect.y += 1;
+ SDL_RenderCopy(renderer, tex_bg, NULL, NULL);
+ SDL_RenderCopy(renderer, tex_knife, NULL, &knife_rect);
SDL_RenderPresent(renderer);
+ //printf("hello\n");
}
- SDL_DestroyTexture(tex);
- SDL_FreeSurface(jpg);
+ SDL_DestroyTexture(tex_bg);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(screen);
SDL_Quit();
+ printf("bye!\n");
+
return 0;
}