mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-15 15:42:35 +00:00
Added canvas_size_changed 'event' to Renderer and OpenGLRenderer
This commit is contained in:
@@ -151,15 +151,13 @@ class IMICFPS
|
||||
end
|
||||
|
||||
def clean_up
|
||||
glDeleteFramebuffers(@framebuffer)
|
||||
glDeleteFramebuffers(1, [@framebuffer].pack("L"))
|
||||
|
||||
@textures.values.each do |id|
|
||||
glDeleteTextures(id)
|
||||
end
|
||||
glDeleteTextures(@textures.values.size, @textures.values.pack("L*"))
|
||||
|
||||
glDeleteBuffers(@positions_buffer_id)
|
||||
glDeleteBuffers(@uvs_buffer_id)
|
||||
glDeleteVertexArrays(@screen_vbo)
|
||||
glDeleteBuffers(2, [@positions_buffer_id, @uvs_buffer_id].pack("L*"))
|
||||
glDeleteVertexArrays(1, [@screen_vbo].pack("L"))
|
||||
gl_error?
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -8,8 +8,15 @@ class IMICFPS
|
||||
@g_buffer = GBuffer.new
|
||||
end
|
||||
|
||||
def canvas_size_changed
|
||||
@g_buffer.unbind_framebuffer
|
||||
@g_buffer.clean_up
|
||||
|
||||
@g_buffer = GBuffer.new
|
||||
end
|
||||
|
||||
def render(camera, lights, entities)
|
||||
if Shader.available?("default")
|
||||
if Shader.available?("default") && Shader.available?("render_screen")
|
||||
@g_buffer.bind_for_writing
|
||||
gl_error?
|
||||
|
||||
|
||||
@@ -28,6 +28,10 @@ class IMICFPS
|
||||
@opengl_renderer.render(camera, lights, entities)
|
||||
end
|
||||
|
||||
def canvas_size_changed
|
||||
@opengl_renderer.canvas_size_changed
|
||||
end
|
||||
|
||||
def finalize # cleanup
|
||||
end
|
||||
end
|
||||
|
||||
@@ -27,6 +27,8 @@ class IMICFPS
|
||||
@renderer.preload_default_shaders
|
||||
@scene = TurnTableScene.new
|
||||
|
||||
@canvas_size = Vector.new(self.width, self.height)
|
||||
|
||||
at_exit do
|
||||
@config.save!
|
||||
end
|
||||
@@ -45,6 +47,12 @@ class IMICFPS
|
||||
|
||||
@console.draw if @show_console
|
||||
draw_cursor if needs_cursor
|
||||
|
||||
_canvas_size = Vector.new(self.width, self.height)
|
||||
if @canvas_size != _canvas_size
|
||||
@renderer.canvas_size_changed
|
||||
@canvas_size = _canvas_size
|
||||
end
|
||||
end
|
||||
|
||||
def draw_cursor
|
||||
|
||||
Reference in New Issue
Block a user