mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 15:42:35 +00:00
42 lines
1.2 KiB
Ruby
42 lines
1.2 KiB
Ruby
class IMICFPS
|
|
class Renderer
|
|
include OpenGL
|
|
include GLU
|
|
|
|
attr_reader :opengl_renderer, :bounding_box_renderer
|
|
|
|
def initialize
|
|
@bounding_box_renderer = BoundingBoxRenderer.new
|
|
@opengl_renderer = OpenGLRenderer.new
|
|
end
|
|
|
|
def draw
|
|
ObjectManager.objects.each do |object|
|
|
if object.visible && object.renderable
|
|
# Render bounding boxes before transformation is applied
|
|
@bounding_box_renderer.create_bounding_box(object, object.model.bounding_box, object.debug_color, object.object_id) if $debug
|
|
object.model.objects.each {|o| @bounding_box_renderer.create_bounding_box(object, o.bounding_box, o.debug_color, o.object_id)} if $debug
|
|
|
|
@opengl_renderer.draw_object(object)
|
|
end
|
|
end
|
|
|
|
@bounding_box_renderer.draw_bounding_boxes if $debug
|
|
$window.number_of_faces+=$window.number_of_faces if $debug
|
|
$window.number_of_faces+=@bounding_box_renderer.vertex_count/3 if $debug
|
|
# @bounding_box_renderer.bounding_boxes.clear
|
|
end
|
|
|
|
def handleGlError
|
|
e = glGetError()
|
|
if e != GL_NO_ERROR
|
|
$stderr.puts "OpenGL error in: #{gluErrorString(e)} (#{e})\n"
|
|
exit
|
|
end
|
|
end
|
|
|
|
def finalize # cleanup
|
|
end
|
|
end
|
|
end
|