MCPcopy Create free account
hub / github.com/WolfireGames/overgrowth / Draw

Method Draw

Source/Graphics/pxdebugdraw.cpp:69–119  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67}
68
69void DebugDraw::Draw() {
70 // Can't return early for g_debug_runtime_disable_debug_draw without memory usage ramping up every frame
71
72 bool editor_draw = true;
73 if (Graphics::Instance()->media_mode() ||
74 ActiveCameras::Instance()->Get()->GetFlags() == Camera::kPreviewCamera ||
75 elements.empty()) {
76 editor_draw = false;
77 }
78
79 CHECK_GL_ERROR();
80 GLState gl_state;
81 gl_state.blend = true;
82 gl_state.cull_face = false;
83 gl_state.depth_test = true;
84 gl_state.depth_write = false;
85 Graphics::Instance()->setGLState(gl_state);
86
87 if (!g_debug_runtime_disable_debug_draw) {
88 delete_on_update.Draw();
89 delete_on_draw.Draw();
90 }
91 delete_on_draw.verts.clear();
92
93 int old_key = -1;
94 DebugDrawElementMap::iterator iter = elements.begin();
95 for (; iter != elements.end();) {
96 DebugDrawElement *element = (*iter).second;
97 CHECK_GL_ERROR();
98 if (!g_debug_runtime_disable_debug_draw && (element->type == kRibbon || editor_draw) && element->visible) {
99 PROFILER_GPU_ZONE(g_profiler_ctx, "Draw element");
100 Graphics::Instance()->setDepthTest(true);
101 element->Draw();
102 }
103 CHECK_GL_ERROR();
104 if (element->GetLifespan() == _delete_on_draw) {
105 LOGS << "Removing element" << std::endl;
106 delete element;
107 elements.erase(iter);
108 if (old_key == -1) {
109 iter = elements.begin();
110 } else {
111 iter = ++elements.find(old_key);
112 }
113 } else {
114 old_key = (*iter).first;
115 ++iter;
116 }
117 }
118 CHECK_GL_ERROR();
119}
120
121void DebugDraw::Update(float timestep) {
122 delete_on_update.verts.clear();

Callers

nothing calls this directly

Calls 15

DrawBillboardFunction · 0.85
media_modeMethod · 0.80
setGLStateMethod · 0.80
setDepthTestMethod · 0.80
worldToScreenMethod · 0.80
GetTranslationPartMethod · 0.80
GetMetricsMethod · 0.80
InvalidateBindCacheMethod · 0.80
SetLineWidthMethod · 0.80
returnProgramMethod · 0.80
setProgramMethod · 0.80
returnShaderAttribMethod · 0.80

Tested by

no test coverage detected