// Copyright (c) 2022 Dominic Masters // // This software is released under the MIT License. // https://opensource.org/licenses/MIT #include "DawnPokerGame.hpp" using namespace Dawn; std::shared_ptr material; std::shared_ptr shader; DawnGame::DawnGame(DawnHost &host) : host(host), renderManager(*this), inputManager(*this) { } int32_t DawnGame::init() { this->assetManager.init(); this->renderManager.init(); this->scene = std::make_shared(*this); auto cameraObject = this->scene->createSceneItem(); auto camera = cameraObject->addComponent(); camera->type = CAMERA_TYPE_ORTHONOGRAPHIC; camera->orthoLeft = 0.0f; camera->orthoRight = 1.0f; camera->orthoTop = 0.0f; camera->orthoBottom = 1.0f; camera->transform.lookAt(glm::vec3(0, 0, 10), glm::vec3(0, 0, 0)); // camera->transform.lookAt(glm::vec3(50, 50, 50), glm::vec3(0, 0, 0)); auto quad = this->scene->createSceneItem(); auto meshRenderer = quad->addComponent(); meshRenderer->mesh = std::make_shared(); meshRenderer->mesh->createBuffers(QUAD_VERTICE_COUNT, QUAD_INDICE_COUNT); QuadMesh::bufferQuadMesh(meshRenderer->mesh.get(), glm::vec2(0, 0), glm::vec2(0, 0), glm::vec2(1.0f, 1.0f), glm::vec2(1.0f, 1.0f), 0, 0 ); shader = std::make_shared(); shader->compile(); material = quad->addComponent(); material->setShader(shader); return DAWN_GAME_INIT_RESULT_SUCCESS; } int32_t DawnGame::update(float_t delta) { this->assetManager.update(); this->inputManager.update(); this->timeManager.update(delta); if(this->scene != nullptr) this->scene->update(); material->floatValues[shader->paramTime] = this->timeManager.time; this->renderManager.update(); return DAWN_GAME_UPDATE_RESULT_SUCCESS; } DawnGame::~DawnGame() { }