Dawn/archive/dawnosui/game/DawnPokerGame.cpp

69 lines
1.9 KiB
C++

// 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> material;
std::shared_ptr<TestBackgroundShader> 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<Scene>(*this);
auto cameraObject = this->scene->createSceneItem();
auto camera = cameraObject->addComponent<Camera>();
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>();
meshRenderer->mesh = std::make_shared<Mesh>();
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<TestBackgroundShader>();
shader->compile();
material = quad->addComponent<Material>();
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() {
}