about to add SDL and probably break everything

This commit is contained in:
2023-01-16 10:01:06 -08:00
parent dbe2409287
commit 23fc1206ba
54 changed files with 904 additions and 138 deletions

View File

@ -25,6 +25,6 @@ void AnimationController::onStart() {
getScene()->eventSceneUnpausedUpdate.addListener(this, &AnimationController::onSceneUpdate);
}
AnimationController::~AnimationController() {
void AnimationController::onDispose() {
getScene()->eventSceneUnpausedUpdate.removeListener(this, &AnimationController::onSceneUpdate);
}

View File

@ -18,7 +18,6 @@ namespace Dawn {
AnimationController(SceneItem *item);
void onStart() override;
~AnimationController();
void onDispose() override;
};
}

View File

@ -58,10 +58,13 @@ void Camera::setRenderTarget(RenderTarget *renderTarget) {
this, &Camera::onRenderTargetResize
);
this->updateProjection();
this->eventRenderTargetResized.invoke(
renderTarget->getWidth(), renderTarget->getHeight()
);
}
float_t Camera::getAspect() {
RenderTarget *target = this->getRenderTarget();
auto target = this->getRenderTarget();
return target->getWidth() / target->getHeight();
}
@ -71,9 +74,10 @@ void Camera::onStart() {
void Camera::onRenderTargetResize(RenderTarget *target, float_t w, float_t h) {
this->updateProjection();
this->eventRenderTargetResized.invoke(w, h);
}
Camera::~Camera() {
void Camera::onDispose() {
this->getRenderTarget()->eventRenderTargetResized.removeListener(
this, &Camera::onRenderTargetResize
);

View File

@ -6,7 +6,7 @@
#pragma once
#include "scene/SceneItemComponent.hpp"
#include "display/RenderTarget.hpp"
#include "scene/Scene.hpp"
#include "scene/Scene.hpp "
namespace Dawn {
enum CameraType {
@ -21,6 +21,8 @@ namespace Dawn {
void onRenderTargetResize(RenderTarget *target, float_t w, float_t h);
public:
Event<float_t, float_t> eventRenderTargetResized;
static Camera * create(Scene *scene) {
auto item = scene->createSceneItem();
auto cam = item->addComponent<Camera>();
@ -81,10 +83,6 @@ namespace Dawn {
* Event triggered by the scene item when the item is added to the scene.
*/
void onStart() override;
/**
* Disposes a previously initialized camera.
*/
~Camera();
void onDispose() override;
};
}

View File

@ -18,9 +18,7 @@ std::vector<SceneItemComponent*> PixelPerfectCamera::getDependencies() {
};
}
void PixelPerfectCamera::onRenderTargetResized(
RenderTarget *t, float_t w, float_t h
) {
void PixelPerfectCamera::onRenderTargetResized(float_t w, float_t h) {
this->updateDimensions();
}
@ -58,13 +56,13 @@ void PixelPerfectCamera::updateDimensions() {
void PixelPerfectCamera::onStart() {
assertNotNull(this->camera);
this->updateDimensions();
camera->getRenderTarget()->eventRenderTargetResized
.addListener(this, &PixelPerfectCamera::onRenderTargetResized)
;
camera->eventRenderTargetResized.addListener(
this, &PixelPerfectCamera::onRenderTargetResized
);
}
PixelPerfectCamera::~PixelPerfectCamera() {
camera->getRenderTarget()->eventRenderTargetResized
.removeListener(this, &PixelPerfectCamera::onRenderTargetResized)
;
void PixelPerfectCamera::onDispose() {
camera->eventRenderTargetResized.removeListener(
this, &PixelPerfectCamera::onRenderTargetResized
);
}

View File

@ -11,7 +11,7 @@ namespace Dawn {
protected:
Camera *camera = nullptr;
/** Event for when the render target is resized. */
void onRenderTargetResized(RenderTarget *target, float_t w, float_t h);
void onRenderTargetResized(float_t w, float_t h);
/**
* Updates the underlying camera's projection information.
@ -30,7 +30,6 @@ namespace Dawn {
std::vector<SceneItemComponent*> getDependencies() override;
void onStart() override;
~PixelPerfectCamera();
void onDispose() override;
};
}

View File

@ -72,7 +72,7 @@ void SimpleRenderTargetQuad::onStart() {
}
}
SimpleRenderTargetQuad::~SimpleRenderTargetQuad() {
void SimpleRenderTargetQuad::onDispose() {
if(this->renderTarget != nullptr) {
this->renderTarget->eventRenderTargetResized.removeListener(
this, &SimpleRenderTargetQuad::onRenderTargetResized

View File

@ -36,7 +36,6 @@ namespace Dawn {
std::vector<SceneItemComponent*> getDependencies() override;
void onStart() override;
~SimpleRenderTargetQuad();
void onDispose() override;
};
}