Updated useEvent
This commit is contained in:
@ -8,6 +8,7 @@
|
||||
#include "asset/Asset.hpp"
|
||||
#include "scene/debug/SceneDebugLine.hpp"
|
||||
#include "physics/ScenePhysicsManager.hpp"
|
||||
#include "state/State.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class DawnGame;
|
||||
@ -20,7 +21,7 @@ namespace Dawn {
|
||||
template<class T>
|
||||
T * _sceneForwardGetComponent(SceneItem *item);
|
||||
|
||||
class Scene {
|
||||
class Scene : public StateOwner {
|
||||
private:
|
||||
sceneitemid_t nextId;
|
||||
std::map<sceneitemid_t, SceneItem*> items;
|
||||
|
@ -76,7 +76,7 @@ namespace Dawn {
|
||||
/**
|
||||
* Cleanup the SceneItemComponent.
|
||||
*/
|
||||
~SceneItemComponent();
|
||||
virtual ~SceneItemComponent();
|
||||
};
|
||||
|
||||
|
||||
|
@ -78,7 +78,7 @@ glm::vec3 Camera::getRayDirectionFromScreenSpace(glm::vec2 screenSpace) {
|
||||
|
||||
void Camera::onStart() {
|
||||
// Render Target
|
||||
useEffect(renderTarget, [&]{
|
||||
useEffect([&]{
|
||||
if(renderTarget.previous != nullptr) {
|
||||
renderTarget.previous->eventRenderTargetResized.removeListener(
|
||||
this, &Camera::onRenderTargetResize
|
||||
@ -94,21 +94,30 @@ void Camera::onStart() {
|
||||
rt->getWidth(), rt->getHeight()
|
||||
);
|
||||
this->event2RenderTargetResized.invoke(rt->getWidth(), rt->getHeight());
|
||||
});
|
||||
}, renderTarget);
|
||||
|
||||
// All regular properties.
|
||||
auto cbUpdateProj = [&]{
|
||||
useEffect([&]{
|
||||
this->projectionNeedsUpdating = true;
|
||||
};
|
||||
}, {
|
||||
&fov,
|
||||
&type,
|
||||
&orthoLeft,
|
||||
&orthoRight,
|
||||
&orthoBottom,
|
||||
&orthoTop,
|
||||
&clipNear,
|
||||
&clipFar
|
||||
});
|
||||
|
||||
useEffect(fov, cbUpdateProj);
|
||||
useEffect(type, cbUpdateProj);
|
||||
useEffect(orthoLeft, cbUpdateProj);
|
||||
useEffect(orthoRight, cbUpdateProj);
|
||||
useEffect(orthoBottom, cbUpdateProj);
|
||||
useEffect(orthoTop, cbUpdateProj);
|
||||
useEffect(clipNear, cbUpdateProj);
|
||||
useEffect(clipFar, cbUpdateProj);
|
||||
// useEffect(fov, cbUpdateProj);
|
||||
// useEffect(type, cbUpdateProj);
|
||||
// useEffect(orthoLeft, cbUpdateProj);
|
||||
// useEffect(orthoRight, cbUpdateProj);
|
||||
// useEffect(orthoBottom, cbUpdateProj);
|
||||
// useEffect(orthoTop, cbUpdateProj);
|
||||
// useEffect(clipNear, cbUpdateProj);
|
||||
// useEffect(clipFar, cbUpdateProj);
|
||||
|
||||
getRenderTarget()->eventRenderTargetResized.addListener(this, &Camera::onRenderTargetResize);
|
||||
}
|
||||
|
@ -55,11 +55,11 @@ void PixelPerfectCamera::onStart() {
|
||||
assertNotNull(this->camera);
|
||||
this->updateDimensions();
|
||||
|
||||
useEvent(this->camera->event2RenderTargetResized, [&](float_t w, float_t h){
|
||||
useEvent([&](float_t w, float_t h){
|
||||
this->updateDimensions();
|
||||
});
|
||||
}, this->camera->event2RenderTargetResized);
|
||||
|
||||
useEffect(scale, [&]{
|
||||
useEffect([&]{
|
||||
this->updateDimensions();
|
||||
});
|
||||
}, scale);
|
||||
}
|
@ -42,7 +42,7 @@ void SimpleRenderTargetQuad::onStart() {
|
||||
// Create quad mesh
|
||||
this->meshHost->mesh.createBuffers(QUAD_VERTICE_COUNT, QUAD_INDICE_COUNT);
|
||||
|
||||
useEffect(this->renderTarget, [&]{
|
||||
useEffect([&]{
|
||||
if(this->renderTarget.previous != nullptr) {
|
||||
this->renderTarget.previous->eventRenderTargetResized.addListener(
|
||||
this, &SimpleRenderTargetQuad::onRenderTargetResized
|
||||
@ -66,7 +66,7 @@ void SimpleRenderTargetQuad::onStart() {
|
||||
((RenderTarget*)this->renderTarget)->eventRenderTargetResized.addListener(
|
||||
this, &SimpleRenderTargetQuad::onRenderTargetResized
|
||||
);
|
||||
});
|
||||
}, this->renderTarget);
|
||||
|
||||
// Perform first resize.
|
||||
if(this->renderTarget != nullptr) {
|
||||
|
Reference in New Issue
Block a user