#!/usr/bin/env ruby require 'sfml/all' require 'opengl' class Example include SFML TITLE = "Josh's Ruby SFML/OpenGL Example" def initialize @fullscreen = false @window = Window.new create_window end def create_window if @fullscreen @window.create(VideoMode.get_desktop_mode, TITLE, Style::Fullscreen) else @window.create([1200, 900], TITLE) end glClearColor(1, 0.5, 0, 0) end def run while @window.open? @window.each_event do |event| case event.type when Event::Closed @window.close when Event::KeyPressed case event.key.code when Keyboard::Escape @window.close when Keyboard::F @fullscreen = !@fullscreen create_window end when Event::Resized # Resize event : adjust viewport glViewport(0, 0, event.size.width, event.size.height) end end glClear(GL_COLOR_BUFFER_BIT) @window.display end end end Example.new.run