Made all the "glutJoystickXXX" functions part of the freeglut extensions.
[freeglut] / doc / structure.html
1 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
2 <html>
3 <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5    <meta name="author" content="Pawel W. Olszta">
6    <meta name="copyright" content="Pawel W. Olszta">
7    <meta name="description" content="The freeglut project plans">
8    <meta name="keywords" content="freeglut glut OpenGL">
9    <meta name="GENERATOR" content="WebMaker">
10    <title>The freeglut project</title>
11 </head>
12 <body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000">
13
14 <center><img SRC="freeglut_logo.png" ALT="The freeglut logo" height=106 width=314></center>
15 <center><dt><i><font face="Courier New,Courier"><font size=+1>
16 I've got a master plan (to take your API down)...
17 </font></font></i></dt></center>
18
19 <center><table WIDTH="620" ><tr><td><hr WIDTH="100%">
20
21 <p>After that I get the freeglut Windows port working in an acceptable manner and thus 
22 getting assured that the freeglut internal structure is valid, I will split the project
23 into three separate parts, listed below.
24
25 <br><ul><li><b><font size=+2>freeglut-common</font></b></li>
26
27 <p>The least common denominator between the two freeglut versions. This will probably 
28 contain most of the internal structure of the toolkit, notably the windows and menu 
29 hierarchy, and possibly some private helpers.
30
31 <br><br><li><b><font size=+2>freeglut-1.3</font></b></li>
32
33 <p>The GLUT API 3 compatible library. This is what's can be found now in the alpha 
34 release (apart from the bugs, naturally :D).
35
36 <br><br><li><b><font size=+2>freeglut-2.0</font></b></li>
37
38 <p>Hopefully this will be what GLUT should have been from the beginning. I will give 
39 a try to design a much more coherent API than GLUT's, aiming at fast games prototyping.
40 <a href="mailto:olszta@sourceforge.net">Suggestions</a> are welcome.</ul>
41
42 <br><p>Here's a list of propositions I have received so far. Hopefully this some day 
43 turns into an API spefication proposal, not just a bunch of meaningless phrases...<br>
44
45 <br><li>glutBitmapHeight() and glutStrokeHeight() -- I have added them to the 
46 freeglut-1.3 API, they are already implemented and should work fine,</li>
47 <br><li>glutBitmapString() and glutStrokeString(), to write (multiple-line maybe)
48 strings, starting from the current raster position, using some simple formatting
49 maybe (changing the color, font, etc.?)</li>
50 <br><li>texture mapped fonts -- this is easy and could be added to freeglut-1.3, but 
51 would require adding the...</li>
52 <br><li>glutHint() function to tell freeglut to: use bitmapped/texture mapped fonts, 
53 draw the menus and mouse cursor using OpenGL/window system, and stuff...</li>
54 <br><li>glutMainLoop() termination and glutMainLoopStep() function, which should 
55 perform a single check of pending events, so that one can have his own main loop,</li>
56 <br><li>multiple joysticks support with multiple axes, buttons, hats, etc. It is a real
57 good thing to do, yet the API to do the magic might result in being really twisted,</li>
58 <br><li>glutModifierFunc() could be added, or glutGetModifierState() should be allowed
59 to be called anywhere from the client's code</li>
60
61 <br><p>We might also think about:<br>
62
63 <br><li>freeglut-2.0 modularity via plugins, so that only the features that one 
64 needs get loaded (plugins are easily supported by GLib),</li>
65 <br><li>OpenGL state management functions,</li>
66 <br><li>audio support -- using OpenAL maybe?,</li>
67 <br><li>a real menu system, not only the popups</li>
68 <br><li>non-OpenGL but portable UI, something like Java Swing</li>
69 <br><li>window-closing confirmation box (this is related to the above)</li>
70
71 <br><p>Following ideas are bad for freeglut:<br>
72
73 <br><li>more accurate timers under Win32 -- this goes to the GLib development afaik</li>
74 <br><li>portable file I/O, portable threads, plugins/modules -- this is already
75 done in GLib</li>
76
77 <br><br><a href="index.html"><i>Back to the main page</i></a>
78
79 </table></center></body></html>
80