Basic transform stuff
This commit is contained in:
@ -7,6 +7,22 @@
|
||||
|
||||
using namespace Dawn;
|
||||
|
||||
std::shared_ptr<SceneItem> cubeCreate(std::shared_ptr<Scene> scene) {
|
||||
auto cubeObject = scene->createSceneItem();
|
||||
auto cubeMeshRenderer = cubeObject->addComponent<MeshRenderer>();
|
||||
auto cubeMaterial = cubeObject->addComponent<Material>();
|
||||
cubeMeshRenderer->mesh = std::make_shared<Mesh>();
|
||||
cubeMeshRenderer->mesh->createBuffers(CUBE_VERTICE_COUNT, CUBE_INDICE_COUNT);
|
||||
CubeMesh::buffer(
|
||||
*cubeMeshRenderer->mesh,
|
||||
glm::vec3(-0.5f, -0.5f, -0.5f), glm::vec3(1, 1, 1),
|
||||
0, 0
|
||||
);
|
||||
return cubeObject;
|
||||
}
|
||||
|
||||
std::shared_ptr<SceneItem> cubeParent;
|
||||
|
||||
DawnGame::DawnGame(DawnHost &host) :
|
||||
host(host),
|
||||
renderManager(*this)
|
||||
@ -21,22 +37,14 @@ int32_t DawnGame::init() {
|
||||
|
||||
auto cameraObject = this->scene->createSceneItem();
|
||||
auto camera = cameraObject->addComponent<Camera>();
|
||||
camera->lookAt(glm::vec3(5, 5, 5), glm::vec3(0, 0, 0));
|
||||
|
||||
auto cubeObject = this->scene->createSceneItem();
|
||||
auto cubeMeshRenderer = cubeObject->addComponent<MeshRenderer>();
|
||||
auto cubeMaterial = cubeObject->addComponent<Material>();
|
||||
cubeMeshRenderer->mesh = std::make_shared<Mesh>();
|
||||
cubeMeshRenderer->mesh->createBuffers(QUAD_VERTICE_COUNT, QUAD_INDICE_COUNT);
|
||||
QuadMesh::bufferQuadMeshWithZ(
|
||||
*cubeMeshRenderer->mesh,
|
||||
glm::vec2(-1, -1), glm::vec2(0, 0),
|
||||
glm::vec2(1, 1), glm::vec2(1, 1),
|
||||
0, 0, 0
|
||||
);
|
||||
|
||||
auto textureAsset = this->assetManager.load<TextureAsset>("texture_test");
|
||||
cubeMaterial->textureValues[cubeMaterial->getShader()->getParameterByName("u_Text")] = std::shared_ptr<Texture>(textureAsset->texture);
|
||||
camera->transform.lookAt(glm::vec3(5, 5, 5), glm::vec3(0, 0, 0));
|
||||
|
||||
cubeParent = cubeCreate(this->scene);
|
||||
auto cubeChild = cubeCreate(this->scene);
|
||||
cubeChild->getComponent<Material>()->colorValues[cubeChild->getComponent<Material>()->getShader()->getParameterByName("u_Color")] = COLOR_MAGENTA;
|
||||
cubeChild->transform.setParent(&cubeParent->transform);
|
||||
cubeChild->transform.setLocalPosition(glm::vec3(1, 0, 0));
|
||||
cubeParent->transform.setLocalPosition(glm::vec3(-0.5f, 0, 0));
|
||||
|
||||
return DAWN_GAME_INIT_RESULT_SUCCESS;
|
||||
}
|
||||
@ -45,6 +53,8 @@ int32_t DawnGame::update(float_t delta) {
|
||||
this->assetManager.update();
|
||||
|
||||
if(this->scene != nullptr) this->scene->update();
|
||||
|
||||
cubeParent->transform.setLocalPosition(cubeParent->transform.getLocalPosition() + glm::vec3(-delta, 0, 0));
|
||||
|
||||
this->renderManager.update();
|
||||
|
||||
|
@ -8,4 +8,5 @@
|
||||
#include "scene/components/Components.hpp"
|
||||
#include "display/mesh/QuadMesh.hpp"
|
||||
#include "display/mesh/TriangleMesh.hpp"
|
||||
#include "display/mesh/CubeMesh.hpp"
|
||||
#include "asset/assets/TextureAsset.hpp"
|
Reference in New Issue
Block a user