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