Dawn/src/games/poker/game.c
2021-11-25 08:31:35 -08:00

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);
}