Finished asset manager.

This commit is contained in:
2021-11-03 10:48:03 -07:00
parent 2f2f1395fa
commit 7097e7a1d4
8 changed files with 519 additions and 60 deletions

59
src/game/sandbox/game.c Normal file
View File

@@ -0,0 +1,59 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "game.h"
bool sandboxGameInit(sandboxgame_t *game) {
// assetTextureLoad(&game->texture, "textures/test_texture.png");
quadInit(&game->quad, 0, 0,0,0,0, 500,500,1,1);
game->texture.width = -1;
assetManagerInit(&game->manager);
assetManagerLoadTexture(&game->manager, &game->texture, "textures/test_texture.png");
assetManagerLoadFont(&game->manager, &game->font, "fonts/opensans/OpenSans-Regular.ttf");
assetManagerShaderLoad(&game->manager, &game->shader,
"shaders/textured.vert",
"shaders/textured.frag"
);
assetManagerStart(&game->manager);
return true;
}
void sandboxGameUpdate(sandboxgame_t *game) {
camera_t camera;
float n = assetManagerProgressGet(&game->manager);
if(n < 1.0f) {
assetManagerUpdate(&game->manager);
printf("Loading %.2f\n", n);
return;
}
cameraOrtho(&camera,
0, game->engine.render.width,
game->engine.render.height, 0,
0.01f, 1000.0f
);
cameraLookAt(&camera, 0,0,10, 0,0,0);
shaderUse(&game->shader);
shaderUseCamera(&game->shader, &camera);
if(game->texture.width != -1) {
shaderUseTexture(&game->shader, &game->texture);
shaderUsePosition(&game->shader, 0,0,0, 0,0,0);
primitiveDraw(&game->quad, 0, -1);
}
}
void sandboxGameDispose(sandboxgame_t *game) {
// shaderDispose(&game->shader);
}

View File

@@ -10,16 +10,22 @@
#include "../../display/camera.h"
#include "../../display/font.h"
#include "../../display/shader.h"
#include "../../display/primitive.h"
#include "../../display/primitives/quad.h"
#include "../../file/asset.h"
#include "../../ui/label.h"
#include "../../ui/breakpoint.h"
#include "../../file/assetmanager.h"
typedef struct {
engine_t engine;
shader_t shader;
texture_t texture;
font_t font;
} sandboxscene_t;
primitive_t quad;
assetmanager_t manager;
texture_t texture;
} sandboxgame_t;
/**
* Initialize the sandbox scene test game.
@@ -28,7 +34,7 @@ typedef struct {
* @param engine Engine to use during init.
* @return True if successful, otherwise false.
*/
bool sandboxSceneInit(sandboxscene_t *game);
bool sandboxGameInit(sandboxgame_t *game);
/**
* Update a sandbox scene.
@@ -36,11 +42,11 @@ bool sandboxSceneInit(sandboxscene_t *game);
* @param game Game to update.
* @param engine Engine to use when updating.
*/
void sandboxSceneUpdate(sandboxscene_t *game);
void sandboxGameUpdate(sandboxgame_t *game);
/**
* Dispose a previously created scene game.
*
* @param game Game to dispose.
*/
void sandboxSceneDispose(sandboxscene_t *game);
void sandboxGameDispose(sandboxgame_t *game);

View File

@@ -1,37 +0,0 @@
/**
* Copyright (c) 2021 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#include "sandboxscene.h"
bool sandboxSceneInit(sandboxscene_t *game) {
// Init Assets
assetShaderLoad(&game->shader,
"shared/shaders/textured.vert",
"shared/shaders/textured.frag"
);
assetFontLoad(&game->font, "shared/fonts/opensans/OpenSans-Regular.ttf");
assetTextureLoad(&game->texture, "shared/test_texture.png");
return true;
}
void sandboxSceneUpdate(sandboxscene_t *game) {
camera_t camera;
shaderUse(&game->shader);
cameraOrtho(&camera,
0, game->engine.render.width,
game->engine.render.height, 0,
0.01f, 1000.0f
);
cameraLookAt(&camera, 0,0,10, 0,0,0);
shaderUseCamera(&game->shader, &camera);
}
void sandboxSceneDispose(sandboxscene_t *game) {
// shaderDispose(&game->shader);
}