camera notify
This commit is contained in:
@@ -1,11 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include <td/Maths.h>
|
||||
#include <td/misc/ObjectNotifier.h>
|
||||
|
||||
namespace td {
|
||||
namespace render {
|
||||
|
||||
class Camera {
|
||||
class ICameraListener {
|
||||
public:
|
||||
virtual void OnPerspectiveChange() {}
|
||||
virtual void OnViewChange() {}
|
||||
};
|
||||
|
||||
using CameraNotifier = utils::ObjectNotifier<ICameraListener>;
|
||||
|
||||
class Camera : public CameraNotifier {
|
||||
private:
|
||||
Mat4f m_ViewMatrix;
|
||||
Mat4f m_ProjectionMatrix;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
namespace td {
|
||||
namespace render {
|
||||
|
||||
class WorldRenderer : public Renderer {
|
||||
class WorldRenderer : public Renderer, public ICameraListener {
|
||||
private:
|
||||
const game::World& m_World;
|
||||
shader::WorldShader m_Shader;
|
||||
@@ -19,6 +19,9 @@ class WorldRenderer : public Renderer {
|
||||
virtual ~WorldRenderer();
|
||||
|
||||
virtual void Render() override;
|
||||
|
||||
virtual void OnPerspectiveChange() override;
|
||||
virtual void OnViewChange() override;
|
||||
};
|
||||
|
||||
} // namespace render
|
||||
|
||||
Reference in New Issue
Block a user