EditorRenderSystem that draws normally invisible cameras and AABBs

This commit is contained in:
2016-02-02 23:24:02 +01:00
parent 31666f9112
commit 6d2272f62e
8 changed files with 148 additions and 2 deletions
+24
View File
@@ -0,0 +1,24 @@
#include "../Core/System.h"
#include "../Rendering/IRenderer.h"
#include "../Rendering/ModelJob.h"
#include "../Rendering/Camera.h"
#include "../Rendering/ESetCamera.h"
class EditorRenderSystem : public ImpureSystem
{
public:
EditorRenderSystem(World* world, EventBroker* eventBroker, IRenderer* renderer, RenderFrame* renderFrame);
virtual void Update(double dt) override;
private:
IRenderer* m_Renderer;
RenderFrame* m_RenderFrame;
Camera* m_Camera;
EntityWrapper m_CurrentCamera = EntityWrapper::Invalid;
EventRelay<EditorRenderSystem, Events::SetCamera> m_ESetCamera;
bool OnSetCamera(Events::SetCamera& e);
void enqueueModel(RenderScene& scene, EntityWrapper entity, const glm::mat4& modelMatrix, const std::string& modelResource, bool wireframe);
};
+2 -1
View File
@@ -164,7 +164,7 @@ struct ModelJob : RenderJob
std::vector<const ::RawModel::TextureProperties*> SpecularTexture;
std::vector<const ::RawModel::TextureProperties*> IncandescenceTexture;
float Shininess = 0.f;
glm::vec4 Color;
glm::vec4 Color = glm::vec4(1.f, 1.f, 1.f, 1.f);
const ::Model* Model = nullptr;
::Skeleton* Skeleton = nullptr;
std::vector<::Skeleton::AnimationData> Animations;
@@ -182,6 +182,7 @@ struct ModelJob : RenderJob
glm::vec4 FillColor = glm::vec4(0);
float FillPercentage = 0.0;
bool IsShielded;
bool Wireframe = false;
void CalculateHash() override
{
Hash = ShaderID << 20 + ModelID << 10 + TextureID;
+1
View File
@@ -25,6 +25,7 @@ public:
bool StencilMask(GLuint mask);
bool DepthMask(GLboolean flag);
bool DepthFunc(GLenum func);
bool PolygonMode(GLenum face, GLenum mode);
bool AlphaFunc(GLenum func, GLclampf thresholder);
private: