Fullscreen

This commit is contained in:
Marc
2023-01-22 17:37:28 +01:00
parent 50ec708f9c
commit 6837f227d3
5 changed files with 35 additions and 11 deletions
+1
View File
@@ -24,6 +24,7 @@ void input_pollKeyDown(SDL_Scancode code) {
printf("Scancode: %d\n", code);
keyEvent_t * handlers = eventsKeyDown[code];
for(int i = 0; i < eventKeyDown_counts[code]; i++) {
printf("Given\n");
handlers[i]();
}
}
+2 -2
View File
@@ -63,7 +63,7 @@ static void game_loop(void) {
}
int main(void) {
int main(int argc, char ** argv) {
TTF_Init();
if(Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096) != 0){
printf("Music sound could not be open!\n"
@@ -75,7 +75,7 @@ int main(void) {
timecode = clock();
Mix_Init(MIX_INIT_MP3);
renderer_main(game_setup, game_loop);
renderer_main(argc, argv, game_setup, game_loop);
Mix_CloseAudio();
text_freeFontCache();
+31 -3
View File
@@ -4,7 +4,9 @@
#include <SDL2/SDL_error.h>
#include <SDL2/SDL_rect.h>
#include <SDL2/SDL_render.h>
#include <SDL2/SDL_scancode.h>
#include <SDL2/SDL_timer.h>
#include <SDL2/SDL_video.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@@ -19,20 +21,47 @@ SDL_Window* win;
SDL_Renderer * renderer;
const Scene_t * scene;
int scenesCount = 0;
bool fullscreen = false;
static void toggleFullscreen(void) {
printf("Toggling\n");
if(!fullscreen) {
SDL_SetWindowFullscreen(win, SDL_WINDOW_FULLSCREEN);
fullscreen = true;
}
else {
SDL_SetWindowFullscreen(win, 0);
fullscreen = false;
}
}
//int (*compar)(const void [.size], const void [.size], void *)
void renderer_main(void(*game_setup)(void), void(*game_loop)(void)) {
void renderer_main(int argc, char ** argv, void(*game_setup)(void), void(*game_loop)(void)) {
// returns zero on success else non-zero
if (SDL_Init(SDL_INIT_EVERYTHING) != 0) {
printf("error initializing SDL: %s\n", SDL_GetError());
}
int width = 1280;
int height = 720;
if(argc > 2) {
width = atoi(argv[1]);
height = atoi(argv[2]);
}
win = SDL_CreateWindow("The legend of ADAM", // creates a window
SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED,
1280, 720, 0);
width, height, 0);
Uint32 render_flags = SDL_RENDERER_ACCELERATED;
input_init();
input_listenKeyDown(SDL_SCANCODE_F11, toggleFullscreen);
// creates a renderer to render our images
renderer = SDL_CreateRenderer(win, -1, render_flags);
@@ -42,7 +71,6 @@ void renderer_main(void(*game_setup)(void), void(*game_loop)(void)) {
SDL_GetRendererOutputSize(renderer, &monitorSize.width, &monitorSize.height);
input_init();
running = true;
+1 -1
View File
@@ -16,7 +16,7 @@ typedef struct MonitorSize {
int width, height;
} MonitorSize_t;
void renderer_main(void(*game_setup)(void), void(*game_loop)(void));
void renderer_main(int argc, char ** argv, void(*game_setup)(void), void(*game_loop)(void));
MonitorSize_t renderer_getMonitorSize(void);
void renderer_setScene(const Scene_t * newScene);
const Scene_t * renderer_getScene(void);
-5
View File
@@ -62,8 +62,6 @@ RenderId_t scene_addRenderObject(Scene_t * scene, RenderObject_t object, int x,
scene->objectCount++;
RenderId_t itemId = scene->lastId++;
printf("adding item: %s: %d\n", object.name, itemId);
if(scene->objectCount * sizeof(SceneObject_t) > scene->objectArraySize) {
scene->objectArraySize = scene->objectCount * sizeof(SceneObject_t);
scene->objects = realloc(scene->objects, scene->objectArraySize);
@@ -121,9 +119,6 @@ void scene_removeRenderObject(Scene_t * scene, RenderId_t id) {
if(index < 0)
return;
printf("removing item: %s: %d\n", scene->objects[index].renderObj.name, id);
scene->objectCount--;
for(int i = index; i < scene->objectCount; i++) {