# Librend 0.4

**URL:** <https://www.ruby-forum.com/t/librend-0-4/95220>\
**Category:** Ruby\
**Created:** [January 15, 2006, 12:19am UTC](https://www.ruby-forum.com/t/librend-0-4/95220 "2006-01-15T00:19:46Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ilmari\_H](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/a587f6/32.png) [@Ilmari\_H](https://www.ruby-forum.com/u/Ilmari_H)\
**Post date:** [January 15, 2006, 12:19am UTC](https://www.ruby-forum.com/t/librend-0-4/95220/1 "2006-01-15T00:19:46Z")

</div>

## Librend 0.4

Real-time rendering on Ruby

Download now! [http://rubyforge.org/frs/?group\_id=716](http://rubyforge.org/frs/?group_id=716)

- Gracefully degrading functionality! No more installing 6 support  
libraries just to get a rotating cube going!
- RMagick support!
- Billboards!
- Vertical text alignment!
- Brings the Ruby interpreter to its knees with very little effort! Is  
YOUR machine up to the challenge?!

More information available at [http://librend.rubyforge.org](http://librend.rubyforge.org)

## Requirements:

For 3D, you need SDL and OpenGL.  
For playing sounds, you only need SDL.  
For drawing vectors to PNG, you only need rcairo.

## Recommended:

Input handling, sounds, window management:  
Ruby/SDL bindings [http://www.kmc.gr.jp/~ohai/rubysdl.en.html](http://www.kmc.gr.jp/~ohai/rubysdl.en.html)

Basic 3D:  
Ruby/OpenGL bindings [http://www2.giganet.net/~yoshi/](http://www2.giganet.net/~yoshi/)

Loading images (Rend::Image, Rend::Texture):  
Imlib2-Ruby bindings [http://pablotron.org/software/imlib2-ruby/](http://pablotron.org/software/imlib2-ruby/)  
or  
RMagick [http://rmagick.rubyforge.org/](http://rmagick.rubyforge.org/)

For drawing 2D vector scenes (Rend::Vectors::VectorScene):  
rcairo Cairo bindings for Ruby. [http://cairographics.org/releases/](http://cairographics.org/releases/)

## Not so necessary, but nice to have:

If you want to use FTGL text (Rend::Text):  
Ruby FTGL [http://www.rubyforge.org/projects/ruby-ftgl/](http://www.rubyforge.org/projects/ruby-ftgl/)

Advanced 3D, shaders in particular (Rend::Shaders):  
Ruby/GLEW bindings [http://www.rubyforge.org/projects/rubyglew/](http://www.rubyforge.org/projects/rubyglew/)

For a speed boost, get:  
Ruby Inline [http://www.rubyforge.org/projects/rubyinline/](http://www.rubyforge.org/projects/rubyinline/)

---

<div class="post-metadata">

**Author:** ![Ilmari\_H](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/a587f6/32.png) [@Ilmari\_H](https://www.ruby-forum.com/u/Ilmari_H)\
**Post date:** [January 15, 2006, 1:40am UTC](https://www.ruby-forum.com/t/librend-0-4/95220/2 "2006-01-15T01:40:07Z")

</div>

Hi Ilmari,

From: “Ilmari H.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> ## Librend 0.4
> 
> Real-time rendering on Ruby  
> […]  
> Input handling, sounds, window management:  
> Ruby/SDL bindings [http://www.kmc.gr.jp/~ohai/rubysdl.en.html](http://www.kmc.gr.jp/~ohai/rubysdl.en.html)

Looks very nice!!! I’m wondering, since SDL is used, does that mean  
Librend  
can only open one window?

I had planned to use SDL/OpenGL for my current application, but have  
switched to  
FreeGLUT since it allows multiple windows.

Regards,

Bill

---

<div class="post-metadata">

**Author:** ![Ilmari\_H](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/a587f6/32.png) [@Ilmari\_H](https://www.ruby-forum.com/u/Ilmari_H)\
**Post date:** [January 15, 2006, 2:31am UTC](https://www.ruby-forum.com/t/librend-0-4/95220/3 "2006-01-15T02:31:31Z")

</div>

On 1/15/06, Bill K. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > Ruby/SDL bindings [http://www.kmc.gr.jp/~ohai/rubysdl.en.html](http://www.kmc.gr.jp/~ohai/rubysdl.en.html)
> 
> Looks very nice!!! I’m wondering, since SDL is used, does that mean Librend  
> can only open one window?
> 
> I had planned to use SDL/OpenGL for my current application, but have switched to  
> FreeGLUT since it allows multiple windows.

Yeah, I think it’s limited to a single window. GLUT is a better fit  
for multiple windows but sadly its input handling is less than stellar  
😕

There still are remains of the old GLUT backend there, I suppose it  
might work with some tweaking. Another possibility would be to write a  
GTK/QT backend to manage the input and provide OpenGL context. Might  
be a worthwhile goal to pursue for the next version…

-Ilmari

---

<div class="post-metadata">

**Author:** ![Ilmari\_H](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/a587f6/32.png) [@Ilmari\_H](https://www.ruby-forum.com/u/Ilmari_H)\
**Post date:** [January 15, 2006, 3:46am UTC](https://www.ruby-forum.com/t/librend-0-4/95220/4 "2006-01-15T03:46:43Z")

</div>

From: “Ilmari H.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> > I had planned to use SDL/OpenGL for my current application, but have switched to  
> > FreeGLUT since it allows multiple windows.
> 
> Yeah, I think it’s limited to a single window. GLUT is a better fit  
> for multiple windows but sadly its input handling is less than stellar  
> 😕

Ah, rats. Hmm. Is it that it responds poorly/sluggisly to input? Or  
inconvenient API for getting events? (or…?)

> There still are remains of the old GLUT backend there, I suppose it  
> might work with some tweaking. Another possibility would be to write a  
> GTK/QT backend to manage the input and provide OpenGL context. Might  
> be a worthwhile goal to pursue for the next version…

Cool, I wasn’t/am not yet familiar with GTK - just did a web search and  
found: GtkGLExt [http://gtkglext.sourceforge.net/](http://gtkglext.sourceforge.net/)

Looks nice, I’ll have to try it out. (Cool, there seem to already be  
Ruby  
bindings: [http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3AGL](http://ruby-gnome2.sourceforge.jp/hiki.cgi?Gtk%3A%3AGL) )

Regards,

Bill

---

<div class="post-metadata">

**Author:** ![Ilmari\_H](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/a587f6/32.png) [@Ilmari\_H](https://www.ruby-forum.com/u/Ilmari_H)\
**Post date:** [January 15, 2006, 4:55am UTC](https://www.ruby-forum.com/t/librend-0-4/95220/5 "2006-01-15T04:55:51Z")

</div>

On 1/15/06, Bill K. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> inconvenient API for getting events? (or…?)  
> The last time i checked (a year or so ago (or was it three…)), it  
> didn’t have mousewheel support (on win, linux version seemed to have  
> mousebuttons 4 and 5) and there wasn’t a real Windows installer. The  
> event API is a bit of a pain as well, with all the events going to  
> separately set callbacks, instead of a single event pipe. Anyhow, it’s  
> been a while since I last used it, so take this with a grain of salt -  
> maybe things are better nowadays.

Apart from that, it’s a pretty good and easy to use system.

-Ilmari
