Added input manager and license.

This commit is contained in:
2021-02-22 07:01:44 +11:00
parent 24218cca63
commit 424577f835
16 changed files with 489 additions and 47 deletions

View File

@ -1,40 +1,39 @@
/**
* Copyright (c) 2021 Dominic Msters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "game.h"
game_t * gameInit(char *gameName) {
// Create the game instance
game_t *game = malloc(sizeof(game_t));
if(game == NULL) return NULL;
typedef struct {
engine_t *engine;
} dawngame_t;
// Setup the renderer
game->render = renderInit(gameName);
if(game->render == NULL) {
free(game);
game_t * gameInit(char *gameName) {
// Create the game
dawngame_t *dawn = malloc(sizeof(dawngame_t));
if(dawn == NULL) return NULL;
// Load the game engine
dawn->engine = engineInit("Dawn Game");
if(dawn->engine == NULL) {
free(dawn);
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;
// Pass to the main game to handle.
return (game_t *)dawn;
}
void gameStart(game_t *game) {
while(!glfwWindowShouldClose(game->render->window)) {
renderFrame(game->render);
glfwSwapBuffers(game->render->window);
glfwPollEvents();
}
dawngame_t *dawn = (dawngame_t *)game;
engineStart(dawn->engine);
}
bool gameDispose(game_t *game) {
if(!renderDispose(game->render)) return false;
free(game);
return true;
void gameDispose(game_t *game) {
dawngame_t *dawn = (dawngame_t *)game;
engineDispose(dawn->engine);
free(dawn);
}

View File

@ -1,21 +1,22 @@
/**
* Copyright (c) 2021 Dominic Msters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include <stdbool.h>
#include "../display/render.h"
#include "../file/asset.h"
#include "../engine/engine.h"
/** Information about the current game context. */
typedef struct {
/** Renderer for the game */
render_t *render;
} game_t;
typedef void game_t;
/**
* Initialize the game context.
*
* @param gameName Name of the game being initialized.
* @return The game instance context.
*/
game_t * gameInit(char *gameName);
game_t * gameInit();
/**
* Start the main game loop.
@ -26,9 +27,6 @@ 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);
void gameDispose(game_t *game);