Added shader loading, added glad

This commit is contained in:
2021-02-17 23:17:19 +11:00
parent 1407d028e8
commit 24218cca63
13 changed files with 178 additions and 393 deletions

40
src/game/game.c Normal file
View File

@ -0,0 +1,40 @@
#include "game.h"
game_t * gameInit(char *gameName) {
// Create the game instance
game_t *game = malloc(sizeof(game_t));
if(game == NULL) return NULL;
// Setup the renderer
game->render = renderInit(gameName);
if(game->render == NULL) {
free(game);
return NULL;
}
// Load a shader
shader_t *shader = assetShaderLoad("shaders/test.vert", "shaders/test.frag");
if(shader == NULL) {
printf("Shader loading failed\n");
} else {
printf("Shader loaded!\n");
}
return game;
}
void gameStart(game_t *game) {
while(!glfwWindowShouldClose(game->render->window)) {
renderFrame(game->render);
glfwSwapBuffers(game->render->window);
glfwPollEvents();
}
}
bool gameDispose(game_t *game) {
if(!renderDispose(game->render)) return false;
free(game);
return true;
}

34
src/game/game.h Normal file
View File

@ -0,0 +1,34 @@
#pragma once
#include <stdbool.h>
#include "../display/render.h"
#include "../file/asset.h"
/** Information about the current game context. */
typedef struct {
/** Renderer for the game */
render_t *render;
} game_t;
/**
* Initialize the game context.
*
* @param gameName Name of the game being initialized.
* @return The game instance context.
*/
game_t * gameInit(char *gameName);
/**
* Start the main game loop.
*
* @param game The game to start the loop for.
*/
void gameStart(game_t *game);
/**
* Cleanup a previously constructed.
*
* @param game The game to cleanup.
* @return True if successful or not.
*/
bool gameDispose(game_t *game);