source: ps/trunk/source/renderer/DebugRenderer.h@ 25269

Last change on this file since 25269 was 25269, checked in by Vladislav Belov, 3 years ago

Removes low-level GL calls from graphics and geometrics primitives and adds DebugRenderer.

Tested By: Freagarach

Differential Revision: https://code.wildfiregames.com/D3857

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1/* Copyright (C) 2021 Wildfire Games.
2 * This file is part of 0 A.D.
3 *
4 * 0 A.D. is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * 0 A.D. is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with 0 A.D. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef INCLUDED_DEBUGRENDERER
19#define INCLUDED_DEBUGRENDERER
20
21#include "graphics/ShaderProgramPtr.h"
22
23class CBoundingBoxAligned;
24class CBrush;
25class CCamera;
26
27// Helper for unoptimized rendering of geometrics primitives. Should not be
28// used for regular passes.
29class CDebugRenderer
30{
31public:
32 /**
33 * Render: Renders the camera's frustum in world space.
34 * The caller should set the color using glColorXy before calling Render.
35 *
36 * @param intermediates determines how many intermediate distance planes should
37 * be hinted at between the near and far planes
38 */
39 void DrawCameraFrustum(const CCamera& camera, int intermediates = 0) const;
40
41 /**
42 * Render the surfaces of the bound box as triangles.
43 */
44 void DrawBoundingBox(const CBoundingBoxAligned& boundingBox, const CShaderProgramPtr& shader) const;
45
46 /**
47 * Render the outline of the bound box as lines.
48 */
49 void DrawBoundingBoxOutline(const CBoundingBoxAligned& boundingBox, const CShaderProgramPtr& shader) const;
50
51 /**
52 * Render the surfaces of the brush as triangles.
53 */
54 void DrawBrush(const CBrush& brush, const CShaderProgramPtr& shader) const;
55
56 /**
57 * Render the outline of the brush as lines.
58 */
59 void DrawBrushOutline(const CBrush& brush, const CShaderProgramPtr& shader) const;
60};
61
62#endif // INCLUDED_DEBUGRENDERER
Note: See TracBrowser for help on using the repository browser.