summaryrefslogtreecommitdiff
path: root/hammer/render2d.cpp
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /hammer/render2d.cpp
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'hammer/render2d.cpp')
-rw-r--r--hammer/render2d.cpp140
1 files changed, 140 insertions, 0 deletions
diff --git a/hammer/render2d.cpp b/hammer/render2d.cpp
new file mode 100644
index 0000000..acf760e
--- /dev/null
+++ b/hammer/render2d.cpp
@@ -0,0 +1,140 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#include "stdafx.h"
+#include "Render2D.h"
+#include "gameconfig.h"
+#include "vgui_controls/Controls.h"
+#include "HammerVGui.h"
+#include "material.h"
+#include <VGuiMatSurface/IMatSystemSurface.h>
+#include "mapview2d.h"
+#include "camera.h"
+#include "vgui/IScheme.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include <tier0/memdbgon.h>
+
+
+//-----------------------------------------------------------------------------
+// Purpose: constructor - initialize all the member variables
+//-----------------------------------------------------------------------------
+CRender2D::CRender2D()
+{
+ m_vCurLine.Init();
+}
+
+
+//-----------------------------------------------------------------------------
+// Purpose: deconstructor - free all info that may need to be freed
+//-----------------------------------------------------------------------------
+CRender2D::~CRender2D()
+{
+}
+
+
+void CRender2D::MoveTo( const Vector &vPoint )
+{
+ m_vCurLine = vPoint;
+}
+
+void CRender2D::DrawLineTo( const Vector &vPoint )
+{
+ DrawLine( m_vCurLine, vPoint );
+ m_vCurLine = vPoint;
+}
+
+
+//-----------------------------------------------------------------------------
+
+
+//-----------------------------------------------------------------------------
+// Purpose:
+// Input : ptCenter - the center point in client coordinates
+// nRadiusX - the x radius in pixels
+// nRadiusY - the y radius in pixels
+// bFill - Whether to fill the ellipse with the fill color or not.
+//-----------------------------------------------------------------------------
+void CRender2D::DrawCircle( const Vector &vCenter, float fRadius )
+{
+ Vector vNormal;
+ GetCamera()->GetViewForward( vNormal );
+ CRender::DrawCircle( vCenter, vNormal, fRadius, 32 );
+}
+
+void CRender2D::DrawRectangle( const Vector &vMins, const Vector &vMaxs, bool bFill, int extent )
+{
+ Vector2D ptMin, ptMax;
+ TransformPoint( ptMin, vMins );
+ TransformPoint( ptMax, vMaxs );
+
+ if ( ptMin.x > ptMax.x )
+ V_swap( ptMin.x, ptMax.x );
+
+ if ( ptMin.y > ptMax.y )
+ V_swap( ptMin.y, ptMax.y );
+
+ if ( extent != 0 )
+ {
+ ptMin.x -= extent;
+ ptMin.y -= extent;
+ ptMax.x += extent;
+ ptMax.y += extent;
+ }
+
+ bool bPopMode = BeginClientSpace();
+
+ if ( bFill )
+ {
+ CRender::DrawFilledRect( ptMin, ptMax, (byte*)&m_DrawColor, false );
+ }
+ else
+ {
+ CRender::DrawRect( ptMin, ptMax, (byte*)&m_DrawColor );
+ }
+
+ if ( bPopMode )
+ EndClientSpace();
+}
+
+void CRender2D::DrawBox( const Vector &vMins, const Vector &vMaxs, bool bFill)
+{
+ Vector points[8];
+ PointsFromBox( vMins, vMaxs, points );
+
+ meshBuilder.Begin( m_pMesh, MATERIAL_LINE_LOOP, 6 );
+
+ meshBuilder.Position3fv( &points[0].x );
+ meshBuilder.Color4ubv( (byte*)&m_DrawColor );
+ meshBuilder.AdvanceVertex();
+
+ meshBuilder.Position3fv( &points[4].x );
+ meshBuilder.Color4ubv( (byte*)&m_DrawColor );
+ meshBuilder.AdvanceVertex();
+
+ meshBuilder.Position3fv( &points[6].x );
+ meshBuilder.Color4ubv( (byte*)&m_DrawColor );
+ meshBuilder.AdvanceVertex();
+
+ meshBuilder.Position3fv( &points[7].x );
+ meshBuilder.Color4ubv( (byte*)&m_DrawColor );
+ meshBuilder.AdvanceVertex();
+
+ meshBuilder.Position3fv( &points[3].x );
+ meshBuilder.Color4ubv( (byte*)&m_DrawColor );
+ meshBuilder.AdvanceVertex();
+
+ meshBuilder.Position3fv( &points[1].x );
+ meshBuilder.Color4ubv( (byte*)&m_DrawColor );
+ meshBuilder.AdvanceVertex();
+
+ meshBuilder.End();
+ m_pMesh->Draw();
+}
+
+
+