NOTE: This is an old post which I am merely republishing. The earlier version was lost due to a RAID failure on my former web host’s server.
I had a bit of trouble tracking down decent documentation for Ruby/SDL and Ruby/OpenGL, so I thought I’d put together some sample code in case anybody is interested in it.
require 'sdl' require 'opengl' # initialize SDL and OpenGL SDL.init(SDL::INIT_VIDEO | SDL::INIT_AUDIO | SDL::INIT_TIMER) screen = SDL.set_video_mode(800, 600, 16, SDL::HWSURFACE | SDL::OPENGL) GL.ClearColor(0.0, 0.0, 1.0) GL.ClearDepth(1.0) finished = false while not finished # pull events from the input queue while event = SDL::Event2.poll # watch for quit events if event.kind_of?(SDL::Event2::Quit) finished = true break end end # clear the screen GL.Clear(GL::COLOR_BUFFER_BIT | GL::DEPTH_BUFFER_BIT) # TODO: rendering code goes here! # display the back buffer SDL.GL_swap_buffers end # terminate SDL SDL.quit
Obviously, the convention is underscored lower case method names for Ruby/SDL (although camelCase aliases are provided too), while Ruby/OpenGL’s API uses UpperCamelCase and breaks Ruby convention by using a capital letter for the first character.
Update: Here’s documentation for Ruby/SDL .