BIt more cleanup.

This commit is contained in:
2023-11-13 00:48:48 -06:00
parent dba5aa36c5
commit e3c484d20d
33 changed files with 336 additions and 311 deletions

View File

@ -136,10 +136,11 @@ namespace Dawn {
}
return components;
}
/**
* Destroys a previously initialized Scene.
*/
~Scene();
virtual ~Scene();
friend class RenderPipeline;
};

View File

@ -10,8 +10,9 @@
using namespace Dawn;
SceneItemComponent::SceneItemComponent(std::weak_ptr<SceneItem> item) {
this->item = item;
SceneItemComponent::SceneItemComponent(const std::weak_ptr<SceneItem> item) :
item(item)
{
}
void SceneItemComponent::init() {

View File

@ -13,7 +13,7 @@ namespace Dawn {
class SceneItemComponent : public StateOwner {
public:
std::weak_ptr<SceneItem> item;
const std::weak_ptr<SceneItem> item;
bool_t hasInitialized = false;
/**
@ -70,6 +70,7 @@ namespace Dawn {
virtual ~SceneItemComponent();
};
// Fowarded methods
template<class T>
std::shared_ptr<T> _sceneForwardGetComponent(
std::shared_ptr<SceneItem> item

View File

@ -32,11 +32,11 @@ void SimpleRenderTargetQuad::onStart() {
// Update mesh
QuadMesh::bufferQuadMesh(
&this->meshHost->mesh,
this->meshHost->mesh,
glm::vec2(0, 0), glm::vec2(0, 0),
glm::vec2(
((RenderTarget*)this->renderTarget)->getWidth(),
((RenderTarget*)this->renderTarget)->getHeight()
this->renderTarget._realValue->getWidth(),
this->renderTarget._realValue->getHeight()
),
glm::vec2(1, 1),
0, 0
@ -49,7 +49,7 @@ void SimpleRenderTargetQuad::onStart() {
const float_t h
) {
QuadMesh::bufferQuadMesh(
&this->meshHost->mesh,
this->meshHost->mesh,
glm::vec2(0, 0), glm::vec2(0, 0),
glm::vec2(w, h), glm::vec2(1, 1),
0, 0

View File

@ -16,6 +16,6 @@ CapsuleMeshHost::CapsuleMeshHost(std::weak_ptr<SceneItem> item) :
void CapsuleMeshHost::onStart() {
useEffect([&]{
CapsuleMesh::create(&this->mesh, radius, height);
CapsuleMesh::create(this->mesh, radius, height);
}, { &this->radius, &this->height })();
}

View File

@ -20,6 +20,12 @@ void CubeMeshHost::onStart() {
);
useEffect([&]{
CubeMesh::buffer(&this->mesh, glm::vec3(this->size) * -0.5f, this->size, 0, 0);
CubeMesh::buffer(
this->mesh,
glm::vec3(this->size) * -0.5f,
this->size,
0,
0
);
}, this->size)();
}

View File

@ -19,7 +19,7 @@ void QuadMeshHost::onStart() {
useEffect([&]{
QuadMesh::bufferQuadMesh(
&this->mesh,
this->mesh,
glm::vec2(this->xy0),
glm::vec2(this->uv0),
glm::vec2(this->xy1),

View File

@ -16,7 +16,13 @@ std::shared_ptr<SceneItem> ExampleSpin::create(Scene *scene) {
auto mr = item->addComponent<MeshRenderer>();
mr->mesh = new Mesh();
mr->mesh->createBuffers(CUBE_VERTICE_COUNT, CUBE_INDICE_COUNT);
CubeMesh::buffer(mr->mesh, glm::vec3(-0.5f, -0.5f, -0.5f), glm::vec3(1, 1, 1), 0, 0);
CubeMesh::buffer(
*mr->mesh,
glm::vec3(-0.5f, -0.5f, -0.5f),
glm::vec3(1, 1, 1),
0,
0
);
auto mat = item->addComponent<SimpleTexturedMaterial>();
item->addComponent<ExampleSpin>();
return item;

View File

@ -60,49 +60,49 @@ void UIBorder::onStart() {
glm::vec2 bSize = (glm::vec2)borderSize;
glm::vec2 iSize = glm::vec2(this->getWidth(), this->getHeight()) - ( bSize * 2.0f );
QuadMesh::bufferQuadMesh(&mesh,
QuadMesh::bufferQuadMesh(mesh,
glm::vec2(0, 0), glm::vec2(0, 0),
bSize, tSize,
0, 0
);
QuadMesh::bufferQuadMesh(&mesh,
QuadMesh::bufferQuadMesh(mesh,
glm::vec2(bSize.x, 0), glm::vec2(tSize.x, 0),
glm::vec2(iSize.x + bSize.x, bSize.y), glm::vec2(tSize.x * 2, tSize.y),
QUAD_VERTICE_COUNT, QUAD_INDICE_COUNT
);
QuadMesh::bufferQuadMesh(&mesh,
QuadMesh::bufferQuadMesh(mesh,
glm::vec2(iSize.x + bSize.x, 0), glm::vec2(tSize.x + tSize.x, 0),
glm::vec2(this->getWidth(), bSize.y), glm::vec2(1.0f, tSize.y),
2 * QUAD_VERTICE_COUNT, 2 * QUAD_INDICE_COUNT
);
QuadMesh::bufferQuadMesh(&mesh,
QuadMesh::bufferQuadMesh(mesh,
glm::vec2(0, bSize.y), glm::vec2(0, tSize.y),
bSize + glm::vec2(0, iSize.y), tSize + glm::vec2(0, tSize.y),
3 * QUAD_VERTICE_COUNT, 3 * QUAD_INDICE_COUNT
);
QuadMesh::bufferQuadMesh(&mesh,
QuadMesh::bufferQuadMesh(mesh,
bSize, tSize,
bSize + iSize, tSize + tSize,
4 * QUAD_VERTICE_COUNT, 4 * QUAD_INDICE_COUNT
);
QuadMesh::bufferQuadMesh(&mesh,
QuadMesh::bufferQuadMesh(mesh,
glm::vec2(iSize.x + bSize.x, bSize.y), tSize + glm::vec2(tSize.x, 0),
glm::vec2(this->getWidth(), bSize.y + iSize.y), glm::vec2(1.0f, tSize.y + tSize.y),
5 * QUAD_VERTICE_COUNT, 5 * QUAD_INDICE_COUNT
);
QuadMesh::bufferQuadMesh(&mesh,
QuadMesh::bufferQuadMesh(mesh,
glm::vec2(0, iSize.y + bSize.y), glm::vec2(0, tSize.y + tSize.y),
glm::vec2(bSize.x, this->getHeight()), glm::vec2(tSize.x, 1.0f),
6 * QUAD_VERTICE_COUNT, 6 * QUAD_INDICE_COUNT
);
QuadMesh::bufferQuadMesh(&mesh,
QuadMesh::bufferQuadMesh(mesh,
glm::vec2(bSize.x, iSize.y + bSize.y), glm::vec2(tSize.x, tSize.y + tSize.y),
glm::vec2(iSize.x + bSize.x, this->getHeight()), glm::vec2(tSize.x * 2, 1.0f),
7 * QUAD_VERTICE_COUNT, 7 * QUAD_INDICE_COUNT
);
QuadMesh::bufferQuadMesh(&mesh,
QuadMesh::bufferQuadMesh(mesh,
bSize + iSize, tSize + tSize,
glm::vec2(this->getWidth(), this->getHeight()), glm::vec2(1.0f, 1.0f),
8 * QUAD_VERTICE_COUNT, 8 * QUAD_INDICE_COUNT

View File

@ -50,21 +50,21 @@ void UIImage::onStart() {
UIComponent::onStart();
useEvent([&]{
QuadMesh::bufferPositions(&mesh,
QuadMesh::bufferPositions(mesh,
glm::vec2(0, 0),
glm::vec2(width, height), 0
);
}, this->eventAlignmentUpdated);
useEffect([&]{
QuadMesh::bufferCoordinates(&mesh,
QuadMesh::bufferCoordinates(mesh,
glm::vec2(this->uvs._realValue[0], this->uvs._realValue[1]),
glm::vec2(this->uvs._realValue[2], this->uvs._realValue[3]),
0
);
}, this->uvs);
QuadMesh::initQuadMesh(&mesh,
QuadMesh::initQuadMesh(mesh,
glm::vec2(0, 0), glm::vec2(this->uvs._realValue[0], this->uvs._realValue[1]),
glm::vec2(width, height), glm::vec2(this->uvs._realValue[2], this->uvs._realValue[3]),
0.0f

View File

@ -441,7 +441,7 @@ void UILabel::rebufferQuads(const std::vector<struct UILabelText> newTexts) {
auto vert = itQuad->first;
auto uvs = itQuad->second;
QuadMesh::bufferQuadMeshWithZ(&this->mesh,
QuadMesh::bufferQuadMeshWithZ(this->mesh,
glm::vec2(vert.x, vert.y), glm::vec2(uvs.x, uvs.y),
glm::vec2(vert.w, vert.z), glm::vec2(uvs.w, uvs.z),
0.0f,
@ -459,7 +459,7 @@ void UILabel::rebufferQuads(const std::vector<struct UILabelText> newTexts) {
auto vert = itQuad->first;
auto uvs = itQuad->second;
QuadMesh::bufferQuadMeshWithZ(&this->meshDecorations,
QuadMesh::bufferQuadMeshWithZ(this->meshDecorations,
glm::vec2(vert.x, vert.y), glm::vec2(uvs.x, uvs.y),
glm::vec2(vert.w, vert.z), glm::vec2(uvs.w, uvs.z),
0.0f,