CModelEditorViewport: Make use of in-class initializers where applicable

This commit is contained in:
Lioncash 2020-06-28 04:11:13 -04:00
parent ae34c2461d
commit 16225c278d
2 changed files with 19 additions and 28 deletions

View File

@ -2,27 +2,19 @@
#include <Core/Render/CDrawUtil.h> #include <Core/Render/CDrawUtil.h>
CModelEditorViewport::CModelEditorViewport(QWidget *pParent) CModelEditorViewport::CModelEditorViewport(QWidget *pParent)
: CBasicViewport(pParent) : CBasicViewport(pParent), mpRenderer{std::make_unique<CRenderer>()}
, mMode(EDrawMode::DrawMesh)
, mpActiveMaterial(nullptr)
, mpModelNode(nullptr)
, mGridEnabled(true)
{ {
mpRenderer = new CRenderer(); const qreal pixelRatio = devicePixelRatioF();
qreal pixelRatio = devicePixelRatioF();
mpRenderer->SetViewportSize(width() * pixelRatio, height() * pixelRatio); mpRenderer->SetViewportSize(width() * pixelRatio, height() * pixelRatio);
mpRenderer->SetClearColor(CColor::Black()); mpRenderer->SetClearColor(CColor::Black());
mpRenderer->ToggleGrid(true); mpRenderer->ToggleGrid(true);
mViewInfo.pRenderer = mpRenderer; mViewInfo.pRenderer = mpRenderer.get();
mViewInfo.pScene = nullptr; mViewInfo.pScene = nullptr;
mViewInfo.GameMode = false; mViewInfo.GameMode = false;
} }
CModelEditorViewport::~CModelEditorViewport() CModelEditorViewport::~CModelEditorViewport() = default;
{
delete mpRenderer;
}
void CModelEditorViewport::SetNode(CModelNode *pNode) void CModelEditorViewport::SetNode(CModelNode *pNode)
{ {
@ -57,20 +49,18 @@ void CModelEditorViewport::Paint()
if (!mpModelNode->Model()) if (!mpModelNode->Model())
{ {
if (mGridEnabled) if (mGridEnabled)
mGrid.AddToRenderer(mpRenderer, mViewInfo); mGrid.AddToRenderer(mpRenderer.get(), mViewInfo);
mpRenderer->RenderBuckets(mViewInfo); mpRenderer->RenderBuckets(mViewInfo);
} }
else if (mMode == EDrawMode::DrawMesh) else if (mMode == EDrawMode::DrawMesh)
{ {
if (mGridEnabled) if (mGridEnabled)
mGrid.AddToRenderer(mpRenderer, mViewInfo); mGrid.AddToRenderer(mpRenderer.get(), mViewInfo);
mpModelNode->AddToRenderer(mpRenderer, mViewInfo); mpModelNode->AddToRenderer(mpRenderer.get(), mViewInfo);
mpRenderer->RenderBuckets(mViewInfo); mpRenderer->RenderBuckets(mViewInfo);
} }
else if (mMode == EDrawMode::DrawSphere) else if (mMode == EDrawMode::DrawSphere)
{ {
if (!mpActiveMaterial) return; if (!mpActiveMaterial) return;
@ -88,7 +78,6 @@ void CModelEditorViewport::Paint()
CDrawUtil::DrawSphere(true); CDrawUtil::DrawSphere(true);
} }
} }
else if (mMode == EDrawMode::DrawSquare) else if (mMode == EDrawMode::DrawSquare)
{ {
if (!mpActiveMaterial) return; if (!mpActiveMaterial) return;

View File

@ -4,32 +4,34 @@
#include "Editor/CBasicViewport.h" #include "Editor/CBasicViewport.h"
#include "Editor/CGridRenderable.h" #include "Editor/CGridRenderable.h"
#include <Core/Scene/CModelNode.h> #include <Core/Scene/CModelNode.h>
#include <memory>
class CModelEditorViewport : public CBasicViewport class CModelEditorViewport : public CBasicViewport
{ {
public: public:
enum class EDrawMode { enum class EDrawMode {
DrawMesh, DrawSphere, DrawSquare DrawMesh, DrawSphere, DrawSquare,
}; };
private: private:
EDrawMode mMode; EDrawMode mMode{EDrawMode::DrawMesh};
CGridRenderable mGrid; CGridRenderable mGrid;
CModelNode *mpModelNode; CModelNode *mpModelNode = nullptr;
CMaterial *mpActiveMaterial; CMaterial *mpActiveMaterial = nullptr;
CRenderer *mpRenderer; std::unique_ptr<CRenderer> mpRenderer;
bool mGridEnabled; bool mGridEnabled = true;
public: public:
CModelEditorViewport(QWidget *pParent = 0); explicit CModelEditorViewport(QWidget *pParent = nullptr);
~CModelEditorViewport(); ~CModelEditorViewport() override;
void SetNode(CModelNode *pNode); void SetNode(CModelNode *pNode);
void SetActiveMaterial(CMaterial *pMat); void SetActiveMaterial(CMaterial *pMat);
void SetDrawMode(EDrawMode Mode); void SetDrawMode(EDrawMode Mode);
void SetClearColor(CColor Color); void SetClearColor(CColor Color);
void SetGridEnabled(bool Enable); void SetGridEnabled(bool Enable);
void Paint(); void Paint() override;
void OnResize(); void OnResize() override;
}; };
#endif // CMODELEDITORVIEWPORT_H #endif // CMODELEDITORVIEWPORT_H