PrimeWorldEditor/src/Editor/CollisionEditor/CCollisionEditorViewport.cpp

43 lines
1.3 KiB
C++
Raw Normal View History

#include "CCollisionEditorViewport.h"
/** Constructor */
CCollisionEditorViewport::CCollisionEditorViewport(QWidget* pParent /*= 0*/)
: CBasicViewport(pParent)
2019-02-18 02:59:19 -08:00
, mGridEnabled(true)
{
mpRenderer = std::make_unique<CRenderer>();
2019-11-06 18:52:45 -08:00
qreal pixelRatio = devicePixelRatioF();
mpRenderer->SetViewportSize(width() * pixelRatio, height() * pixelRatio);
mpRenderer->SetClearColor(CColor(0.3f, 0.3f, 0.3f));
mpRenderer->ToggleGrid(true);
mViewInfo.ShowFlags = EShowFlag::WorldCollision | EShowFlag::ObjectCollision;
mViewInfo.pRenderer = mpRenderer.get();
mViewInfo.pScene = nullptr;
mViewInfo.GameMode = false;
2019-02-18 02:59:19 -08:00
mViewInfo.CollisionSettings.DrawBoundingHierarchy = false;
mViewInfo.CollisionSettings.BoundingHierarchyRenderDepth = 0;
}
/** CBasicViewport interface */
void CCollisionEditorViewport::Paint()
{
mpRenderer->BeginFrame();
mCamera.LoadMatrices();
2019-02-18 02:59:19 -08:00
if (mGridEnabled) mGrid.AddToRenderer(mpRenderer.get(), mViewInfo);
if (mpCollisionNode)
{
mpCollisionNode->AddToRenderer(mpRenderer.get(), mViewInfo);
}
mpRenderer->RenderBuckets(mViewInfo);
mpRenderer->EndFrame();
}
void CCollisionEditorViewport::OnResize()
{
2019-11-24 18:46:57 -08:00
qreal pixelRatio = devicePixelRatioF();
mpRenderer->SetViewportSize(width() * pixelRatio, height() * pixelRatio);
}