Rendering pipeline fixes across the board and base work on refactored editor
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
#ifndef DebugCameraInputController_h__
|
||||
#define DebugCameraInputController_h__
|
||||
|
||||
#include <imgui/imgui.h>
|
||||
#include "../Input/FirstPersonInputController.h"
|
||||
|
||||
@@ -63,4 +66,6 @@ protected:
|
||||
glm::vec3 m_Velocity = glm::vec3(0, 0, 0);
|
||||
float m_BaseSpeed = 2.0f;
|
||||
float m_Speed = m_BaseSpeed;
|
||||
};
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -32,7 +32,6 @@ private:
|
||||
const LightCullingPass* m_LightCullingPass;
|
||||
|
||||
ShaderProgram* m_ForwardPlusProgram;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -2,20 +2,14 @@
|
||||
#define Events_SetCamera_h__
|
||||
|
||||
#include "../Core/EventBroker.h"
|
||||
#include "../Core/Entity.h"
|
||||
#include <string.h>
|
||||
#include "../Core/EntityWrapper.h"
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct SetCamera : Event
|
||||
{
|
||||
public:
|
||||
SetCamera() { };
|
||||
std::string Name;
|
||||
|
||||
private:
|
||||
|
||||
EntityWrapper CameraEntity;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -31,15 +31,6 @@ public:
|
||||
void SetFullscreen(bool fullscreen) { m_Fullscreen = fullscreen; }
|
||||
bool VSYNC() const { return m_VSYNC; }
|
||||
void SetVSYNC(bool vsync) { m_VSYNC = vsync; }
|
||||
::Camera* Camera() const { return m_Camera; }
|
||||
void SetCamera(::Camera* camera)
|
||||
{
|
||||
if (camera == nullptr) {
|
||||
m_Camera = m_DefaultCamera;
|
||||
} else {
|
||||
m_Camera = camera;
|
||||
}
|
||||
}
|
||||
virtual void Initialize() = 0;
|
||||
virtual void Update(double dt) = 0;
|
||||
virtual void Draw(RenderFrame& rq) = 0;
|
||||
@@ -54,8 +45,6 @@ protected:
|
||||
int m_GLVersion[2];
|
||||
std::string m_GLVendor;
|
||||
GLFWwindow* m_Window = nullptr;
|
||||
::Camera* m_DefaultCamera;
|
||||
::Camera* m_Camera = nullptr;
|
||||
};
|
||||
|
||||
#endif // Renderer_h__
|
||||
|
||||
@@ -14,7 +14,6 @@ struct RenderJob
|
||||
friend class RenderQueue;
|
||||
|
||||
public:
|
||||
|
||||
float Depth;
|
||||
|
||||
protected:
|
||||
|
||||
@@ -50,10 +50,11 @@ struct PointLightJob : RenderJob
|
||||
|
||||
struct RenderScene
|
||||
{
|
||||
::Camera* Camera;
|
||||
::Camera* Camera = nullptr;
|
||||
std::list<std::shared_ptr<RenderJob>> ForwardJobs;
|
||||
std::list<std::shared_ptr<RenderJob>> PointLightJobs;
|
||||
Rectangle Viewport;
|
||||
bool ClearDepth = false;
|
||||
|
||||
void Clear()
|
||||
{
|
||||
|
||||
@@ -16,10 +16,10 @@ public:
|
||||
bool Disable(GLenum cap);
|
||||
bool CullFace(GLenum mode);
|
||||
bool ClearColor(glm::vec4 color);
|
||||
bool Clear(GLbitfield mask);
|
||||
bool BindFramebuffer(GLint framebuffer);
|
||||
bool BlendEquation(GLenum mode);
|
||||
bool BlendFunc(GLenum sfactor, GLenum dfactor);
|
||||
bool DepthMask(GLboolean flag);
|
||||
|
||||
private:
|
||||
std::vector<std::function<void(void)>> m_ResetFunctions;
|
||||
|
||||
@@ -28,28 +28,17 @@ public:
|
||||
private:
|
||||
World* m_World = nullptr;
|
||||
const IRenderer* m_Renderer;
|
||||
|
||||
RenderFrame* m_RenderFrame;
|
||||
bool m_SwitchCamera = false;
|
||||
Camera* m_Camera;
|
||||
DebugCameraInputController<RenderSystem>* m_DebugCameraInputController;
|
||||
|
||||
std::list<ComponentWrapper> m_CameraComponents;
|
||||
EntityWrapper m_CurrentCamera = EntityWrapper::Invalid;
|
||||
|
||||
EventRelay<RenderSystem, Events::SetCamera> m_ESetCamera;
|
||||
bool OnSetCamera(const Events::SetCamera &event);
|
||||
EntityID m_CurrentCamera = EntityID_Invalid;
|
||||
|
||||
void switchCamera(EntityID entity);
|
||||
|
||||
void updateCamera(World* world, double dt);
|
||||
void updateProjectionMatrix(ComponentWrapper& cameraComponent);
|
||||
|
||||
void fillModels(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
||||
void fillLight(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
||||
|
||||
bool OnSetCamera(Events::SetCamera &event);
|
||||
EventRelay<RenderSystem, Events::InputCommand> m_EInputCommand;
|
||||
bool OnInputCommand(const Events::InputCommand& e);
|
||||
|
||||
void fillModels(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
||||
void fillLight(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
||||
};
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user