Module: Rendering::DebugDraw
- Defined in:
- lib/engine/rendering/debug_draw.rb
Constant Summary collapse
- SCALE_FACTOR =
Render at 1/3 resolution for thicker lines
3
Class Method Summary collapse
Class Method Details
.draw(target_framebuffer) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/engine/rendering/debug_draw.rb', line 8 def draw(target_framebuffer) lines = Engine::Debug.lines spheres = Engine::Debug.spheres return if lines.empty? && spheres.empty? update_render_texture_size # Draw lines to low-res texture render_texture.bind Engine::GL.ClearColor(0.0, 0.0, 0.0, 0.0) Engine::GL.Clear(Engine::GL::COLOR_BUFFER_BIT) Engine::GL.Disable(Engine::GL::DEPTH_TEST) line_shader.use line_shader.set_mat4('camera', camera_matrix) update_vertex_data(lines, spheres) vertex_count = lines.size * 2 + spheres.sum { |s| s[:segments] * 3 * 2 } draw_lines(vertex_count) # Composite onto main framebuffer Engine::GL.BindFramebuffer(Engine::GL::FRAMEBUFFER, target_framebuffer) Engine::GL.Viewport(0, 0, Engine::Window.framebuffer_width, Engine::Window.framebuffer_height) Engine::GL.Enable(Engine::GL::BLEND) composite_material.set_runtime_texture('debugTexture', render_texture.color_texture) composite_material.set_vec2('texelSize', [1.0 / render_texture.width, 1.0 / render_texture.height]) screen_quad.draw_with_material(composite_material) Engine::Debug.clear end |