Added input manager and license.
This commit is contained in:
@ -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);
|
||||
}
|
@ -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);
|
Reference in New Issue
Block a user