61 lines
1.6 KiB
C
61 lines
1.6 KiB
C
/**
|
|
* Copyright (c) 2021 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "game.h"
|
|
|
|
bool gameInit(game_t *game) {
|
|
// Init the engine and the rendering pipeline
|
|
engineInit(&game->engine);
|
|
|
|
cameraLookAt(&game->camera, 3,3,3, 0,0,0);
|
|
cameraPerspective(&game->camera, 45.0f, 16.0f/9.0f, 0.001f, 1000.0f);
|
|
quadInit(&game->quad, 0.0f, 0.0f,0.0f,0.0f,0.0f, 1.0f,1.0f,1.0f,1.0f);
|
|
|
|
shaderInit(&game->shader,
|
|
assetStringLoad("shaders/textured.vert"),
|
|
assetStringLoad("shaders/textured.frag")
|
|
);
|
|
|
|
game->owner = assetManagerHolderCreate(&game->engine.assetManager);
|
|
game->item = assetManagerLoadScaledTexture(
|
|
&game->engine.assetManager, game->owner, "textures", "test_texture"
|
|
);
|
|
|
|
return true;
|
|
}
|
|
|
|
bool doneResize = false;
|
|
|
|
bool gameUpdate(game_t *game, float delta) {
|
|
// Let the engine do its thing.
|
|
engineUpdateStart(&game->engine, delta);
|
|
|
|
if(game->engine.time.current > 4.0f && !doneResize) {
|
|
printf("Resizing");
|
|
// saveManagerSetUint8(&game->engine.save, SAVE_KEY_TEXTURE_SCALE, 0x03);
|
|
// assetManagerScaledTextureRescaleAll(&game->engine.assetManager);
|
|
doneResize = true;
|
|
}
|
|
|
|
if(game->item->state == ASSET_MANAGER_STATE_SYNC_DONE) {
|
|
shaderUse(&game->shader);
|
|
shaderUseCamera(&game->shader, &game->camera);
|
|
shaderUsePosition(&game->shader, 0,0,0, 0,0,0);
|
|
shaderUseTexture(&game->shader, &game->item->data.scaledTexture.texture);
|
|
primitiveDraw(&game->quad, 0, -1);
|
|
}
|
|
|
|
|
|
// Hand back to the engine.
|
|
return engineUpdateEnd(&game->engine);
|
|
}
|
|
|
|
void gameDispose(game_t *game) {
|
|
// Cleanup the game
|
|
|
|
engineDispose(&game->engine);
|
|
} |