[ruby-opengl-devel] Requirements and Design

John Gabriele jmg3000 at gmail.com
Sat Sep 2 01:06:33 EDT 2006

On 9/1/06, peter mclain <peter.mclain at gmail.com> wrote:
> Hi,
>   I read through most of the email threads and tried to list the major
> issues and sort through to produce what I think is a consensus
> document.  Please check the svn repository and read
> docs/requirements_and_design.txt.

Very nice work Peter. Thank you. Very good idea.

>   I organized the document into sections: requirements (what we're
> trying to accomplish),  design (currently empty), implmentation (e.g.,
> the swig issue and other things that are independent of, for example,
> what syntax we support in ruby files). and a brief roadmap.
>   I don't know about the rest of you, but I'm getting a little lost
> with all of the threads and comments on the lists.  I don't intend
> that the document is the last word on anything, far from it.  I just
> think it is easier and more efficient if we have a document and can
> then do things like add a requirement, remove a requirement or modify
> a particular phrasing of a requirement.
>   I propose that we iterate a couple of times over the current
> document until we are more or less aggreed on it, and then start
> working.  I think we can probably get the requirements agreed to
> pretty quickly, and that we just make a decision on SWIG (most people
> think we should dump it).
>   Anyway, let me know....

I made a few small edits and checked them in.

* Regarding BaseGLUT depending only upon BaseGL: in real life, libglut
depends on both libglu and libgl. So, anyone using BaseGLUT will need
those libs installed anyway. In C code, glut.h #includes glu.h and
gl.h. I'm not sure why we'd list BaseGLUT as depending only upon GL
rather than both GLU and GL.

BTW, as a ruby-opengl user, I'd expect that if I wanted to use
BaseGLUT, I'd need to write my first lines as:

require 'GL/gl'
require 'GL/glu'
require 'GL/glut'

in that order.

* What does this one mean:

| * The project will make a development environment suitable for porting to
|   other platforms available via checkout from the svn repository


* I like your idea of keeping the 3 modules in a parent "GL"
directory. I also like the idea of following Ruby conventions of
keeping the file names lowercase. Further, I'm also warming up to the
idea of having the module names first-letter-only-capitalized:

require 'GL/gl'
Gl.glFooBar( Gl::GL_FOO_BAR )
include Gl
glFooBar( GL_FOO_BAR )

My reasons being:
A. There's good contrast between the three different capitalizations.
B. It follows standard Ruby naming conventions.
C. IMO, GL.glFoo and GL::GL_FOO doesn't look any better than Gl.glFoo
   and Gl::GL_FOO. Most folks would probably just use the `include Gl`
   and so wouldn't see it anyway.

* Regarding tracking of different versions of GL and GLUT, 0.32pre2
already has Yoshi's conditional stuff in it for older versions. Anyone
know how difficult it would be with SWIG to get it to do the same sort
of thing?

Peter -- have you formed an opinion on the SWIG issue yet?


More information about the ruby-opengl-devel mailing list