69 lines
1.9 KiB
C++
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() {
|
|
|
|
} |