81 lines
3.9 KiB
HTML
81 lines
3.9 KiB
HTML
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="author" content="Pawel W. Olszta">
|
|
<meta name="copyright" content="Pawel W. Olszta">
|
|
<meta name="description" content="The freeglut project plans">
|
|
<meta name="keywords" content="freeglut glut OpenGL">
|
|
<meta name="GENERATOR" content="WebMaker">
|
|
<title>The freeglut project</title>
|
|
</head>
|
|
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
|
|
|
|
<center><img SRC="freeglut_logo.png" ALT="The freeglut logo" height=106 width=314></center>
|
|
<center><dt><i><font face="Courier New,Courier"><font size=+1>
|
|
I've got a master plan (to take your API down)...
|
|
</font></font></i></dt></center>
|
|
|
|
<center><table WIDTH="620" ><tr><td><hr WIDTH="100%">
|
|
|
|
<p>After that I get the freeglut Windows port working in an acceptable manner and thus
|
|
getting assured that the freeglut internal structure is valid, I will split the project
|
|
into three separate parts, listed below.
|
|
|
|
<br><ul><li><b><font size=+2>freeglut-common</font></b></li>
|
|
|
|
<p>The least common denominator between the two freeglut versions. This will probably
|
|
contain most of the internal structure of the toolkit, notably the windows and menu
|
|
hierarchy, and possibly some private helpers.
|
|
|
|
<br><br><li><b><font size=+2>freeglut-1.3</font></b></li>
|
|
|
|
<p>The GLUT API 3 compatible library. This is what's can be found now in the alpha
|
|
release (apart from the bugs, naturally :D).
|
|
|
|
<br><br><li><b><font size=+2>freeglut-2.0</font></b></li>
|
|
|
|
<p>Hopefully this will be what GLUT should have been from the beginning. I will give
|
|
a try to design a much more coherent API than GLUT's, aiming at fast games prototyping.
|
|
<a href="mailto:olszta@sourceforge.net">Suggestions</a> are welcome.</ul>
|
|
|
|
<br><p>Here's a list of propositions I have received so far. Hopefully this some day
|
|
turns into an API spefication proposal, not just a bunch of meaningless phrases...<br>
|
|
|
|
<br><li>glutBitmapHeight() and glutStrokeHeight() -- I have added them to the
|
|
freeglut-1.3 API, they are already implemented and should work fine,</li>
|
|
<br><li>glutBitmapString() and glutStrokeString(), to write (multiple-line maybe)
|
|
strings, starting from the current raster position, using some simple formatting
|
|
maybe (changing the color, font, etc.?)</li>
|
|
<br><li>texture mapped fonts -- this is easy and could be added to freeglut-1.3, but
|
|
would require adding the...</li>
|
|
<br><li>glutHint() function to tell freeglut to: use bitmapped/texture mapped fonts,
|
|
draw the menus and mouse cursor using OpenGL/window system, and stuff...</li>
|
|
<br><li>glutMainLoop() termination and glutMainLoopStep() function, which should
|
|
perform a single check of pending events, so that one can have his own main loop,</li>
|
|
<br><li>multiple joysticks support with multiple axes, buttons, hats, etc. It is a real
|
|
good thing to do, yet the API to do the magic might result in being really twisted,</li>
|
|
<br><li>glutModifierFunc() could be added, or glutGetModifierState() should be allowed
|
|
to be called anywhere from the client's code</li>
|
|
|
|
<br><p>We might also think about:<br>
|
|
|
|
<br><li>freeglut-2.0 modularity via plugins, so that only the features that one
|
|
needs get loaded (plugins are easily supported by GLib),</li>
|
|
<br><li>OpenGL state management functions,</li>
|
|
<br><li>audio support -- using OpenAL maybe?,</li>
|
|
<br><li>a real menu system, not only the popups</li>
|
|
<br><li>non-OpenGL but portable UI, something like Java Swing</li>
|
|
<br><li>window-closing confirmation box (this is related to the above)</li>
|
|
|
|
<br><p>Following ideas are bad for freeglut:<br>
|
|
|
|
<br><li>more accurate timers under Win32 -- this goes to the GLib development afaik</li>
|
|
<br><li>portable file I/O, portable threads, plugins/modules -- this is already
|
|
done in GLib</li>
|
|
|
|
<br><br><a href="index.html"><i>Back to the main page</i></a>
|
|
|
|
</table></center></body></html>
|
|
|