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