Ruby-sdl problem

Hi, I’ve been reading this introduction to rubysdl


and wanted to try it.

My problem is the following:

irb(main):001:0> require “rubygems”
=> true
irb(main):002:0> require “sdl”
=> true
irb(main):004:0> SDL::init(SDL::INIT_VIDEO)
=> nil
irb(main):005:0> screen =,480,24,SDL::SWSURFACE)
=> #SDL::Screen:0x7fba2ba87798
irb(main):006:0> image = SDL::Surface.load(“humans.png”)
NoMethodError: private method `load’ called for SDL::Surface:Class
from (irb):5

How do I load an image?

Documentation extract:


Load image into an surface and returns surface object. If image

format supports transparent color, colorkey is set into new surfafe.

Supoorted formats are BMP, PNM (PPM/PGM/PBM), XPM, XCF, PCX, GIF,


Raises SDL::Error on failure

You need SDL_image to use this method.

gem list --local rubysdl

*** LOCAL GEMS ***

rubysdl (2.1.1)

irb(main):002:0> require “sdl”

Raises SDL::Error on failure

Posted via

would suggest looking at
which seems to be official web of the library, maintained by it’s

I looked quickly into the documentation and haven’t found method
Surface.load - which, of course, probably means I haven’t searched good

When I had to solve problems with some “SDL for Ruby” library, it was
often caused by problems with compilation - e.g. I didn’t have SDL_image
library installed on my system or the make script wasn’t able to find it
when compiling the Ruby port. Have you checked this?
(E.g. RUDL and Rubygame can be compiled with minimum of SDL libraries -
but don’t offer some classes and/or methods then…)


P.S.: I myself don’t like Ruby/SDL very much and use Rubygame or even
ancient unmaintained RUDL instead, but you probably know why you want to
use the SDL port you have chosen…