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

View File

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