From 8057bca81891ef8e31b3b72ade6b75f84fc831d2 Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Sun, 30 May 2021 14:10:32 +0000 Subject: [PATCH] Added rendered vertices count to OpenGLRenderer --- lib/cyberarm_engine/model.rb | 7 ++++++- lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/cyberarm_engine/model.rb b/lib/cyberarm_engine/model.rb index 494febd..85fc32a 100644 --- a/lib/cyberarm_engine/model.rb +++ b/lib/cyberarm_engine/model.rb @@ -3,7 +3,8 @@ module CyberarmEngine attr_accessor :objects, :materials, :vertices, :uvs, :texures, :normals, :faces, :colors, :bones, :material_file, :current_material, :current_object, :vertex_count, :smoothing attr_reader :position, :bounding_box, :textured_material, :file_path, :positions_buffer_id, :colors_buffer_id, - :normals_buffer_id, :uvs_buffer_id, :textures_buffer_id, :vertex_array_id, :aabb_tree + :normals_buffer_id, :uvs_buffer_id, :textures_buffer_id, :vertex_array_id, :aabb_tree, + :vertices_count def initialize(file_path:) @file_path = file_path @@ -23,6 +24,8 @@ module CyberarmEngine @bones = [] @smoothing = 0 + @vertices_count = 0 + @bounding_box = BoundingBox.new start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC, :float_millisecond) @@ -32,6 +35,8 @@ module CyberarmEngine parse(parser) + @vertices_count = @vertices.size + @has_texture = false @materials.each do |_key, material| diff --git a/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb b/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb index d60fcb6..0ac52a3 100644 --- a/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +++ b/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb @@ -3,12 +3,15 @@ module CyberarmEngine @@immediate_mode_warning = false attr_accessor :show_wireframe + attr_reader :number_of_vertices def initialize(width:, height:, show_wireframe: false) @width = width @height = height @show_wireframe = show_wireframe + @number_of_vertices = 0 + @g_buffer = GBuffer.new(width: @width, height: @height) end @@ -20,6 +23,8 @@ module CyberarmEngine end def render(camera, lights, entities) + @number_of_vertices = 0 + glViewport(0, 0, @width, @height) glEnable(GL_DEPTH_TEST) @@ -44,6 +49,8 @@ module CyberarmEngine gl_error? draw_model(entity.model, shader) entity.draw + + @number_of_vertices += entity.model.vertices_count end end @@ -90,6 +97,8 @@ module CyberarmEngine draw_mesh(entity.model) entity.draw glPopMatrix + + @number_of_vertices += entity.model.vertices_count end end