Fixing mouse wheel bug in Windows per e-mail from Ioannis Petikas dated 5/9/12 at...
[freeglut] / doc / freeglut.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="A bit about me and the freeglut project">
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
16 <center><dt><i><font face="Courier New,Courier"><font size=+1>
17 I am best at what I do worst and for this gift I feel blessed...
18 </font></font></i></dt></center>
19
20 <center><table WIDTH="620"><tr><td><hr WIDTH="100%">
21
22 <p><i>January the 2nd, 2000</i>
23
24 <p>The alpha version has been released yesterday. Today I have been busy with moving 
25 the project site to the <a href="http://www.sourceforge.net">SourceForge</a>. As for 
26 now there will be the web site available and I will give it a try to set up the 
27 freeglut mailing lists. There will be no CVS access available for now (my dialup 
28 internet connection sucks so badly that I wouldn't be able to work on the project). 
29 After I am done with that, I will try announcing the project on www.opengl.org.
30
31 <p>Of other things, there has been rumours floating round the routers and hubs about 
32 Mark Kilgard changing the GLUT's license, but this is unconfirmed. It would be really 
33 cool if he did so, there's no better motivation to work than a bit of sound competition.
34 As for me, I already put too much work into the freeglut project to terminate it just 
35 now. We'll see what happens next.
36
37 <p><i>January the 4th, 2000</i>
38
39 <p>Ho-ho-ho. Freeglut-1.3 works fine with `Tux the Penguin and the Quest for Herring'.
40 At least that's what Steve Baker, the author, says. Not only that, Steve has provided
41 us with the joystick code (from his great PLIB project) and numerous hints and tips 
42 about making freeglut more useful (I will try to put the results of our discussion
43 on the <a href="structure.html">structure page</a>).
44
45 <p>As for other issues -- I promise I will start the Win32 port this weekend.
46 BTW. -- is there a decent cross compiler for Linux that generates Win32 executables,
47 so that I don't have to use windows for development? And what about Wine OpenGL
48 support?
49
50 <p>The package is now some 40kB smaller than the previous one. Did some general
51 clean ups, removed unnecessary configure scripts in the genfonts directory,
52 the configure cahce, the Makefiles and so on. Also, I have started introducing 
53 the new internal structure, as described <a href="structure.html">here</a>.
54
55 <p><i>January the 6th, 2000</i>
56
57 <p>The missing glutInit() issue seems to be solved. Chris Purnell (fxGLUT author) says 
58 that the GLUT window and menu creation functions call glutInit() if the caller didn't 
59 do that before.
60
61 <p>The enumerations for GLUT_KEY_UP and GLUT_KEY_RIGHT were accidentally swapped.
62 They should be OK now. Hope the rest is OK :)
63
64 <p>Added two new API calls to freeglut-1.3 -- glutBitmapHeight() and glutStrokeHeight(),
65 as suggested by Steve Baker. This won't break the GLUT compatibility a lot, and I've
66 heard it can be useful. Here you go.
67
68 <p>The <a href="structure.html">structure</a> plans page has been updated. The numerous
69 feature hints from opengl-gamedev-l readers have been added.
70
71 <p>Somebody (Chris?) hinted me that the stroke fonts can be found in the XFree86
72 sources. I browsed through it and -- presto. Now I only need to define the stroke fonts
73 structure (should be very similiar to bitmapped one) and write quite a simple parser.
74
75 <p>I've spent the (late) evening doing the init display string parsing and making
76 my logics classes homework :) Both is harder than I primarily thought, but fortunately
77 for me I can commit errors in one of those tasks. Guess which one? Argh. :)
78
79 <p><i>January the 8th, 2000</i>
80
81 <p>First of all, both the missing glutInit() and glutGet(GLUT_WINDOW_[X|Y]) issues are 
82 fixed now. The first problem was solved thanks to Chris Purnell, who showed me the way 
83 GLUT dealt with the problem. Good for me there's someone who reads it's source code (I 
84 just felt it would be unfair for me to do so :D). The second problem was solved by 
85 adding a XMoveWindow call just after the window creation and initial mapping. This is 
86 strange. Maybe one of the Xlib calls between the creation and mapping spoiled the 
87 window's coordinates?
88
89 <p>This makes even more GLUT tests work fine. The tests can be found in any decent
90 GLUT 3.7 distribution. Following tests produce a FAIL message: test18.c (some layer
91 issues), test19.c (see the GLUT_NORMAL_DAMAGED issue on the progress page), test22.c
92 (window stacking/visibilty problems), test23.c (glutInitDisplayString() is unfinished),
93 test25.c (the freeglut fonts differ a bit from GLUT's), test28.c (-iconic handling
94 is missing(?)). Gee :)
95
96 <p>I've spent another hour doing the glutInitDisplayString(), but it still is far from 
97 being complete. And I've also started gathering information on doing the game mode
98 stuff. The video mode enumeration in both cases will be painful.
99
100 <p>There is a big issue with the window contents redrawing. Right now, it is forced
101 every time there are no events pending in the main loop. I know it's wrong, but it
102 without such an approach some of the test programs freeze soon after starting. Could
103 someone peer-review the main loop code please?
104
105 <p>I have decided to start the Win32 port this weekend. As for now, the code compiles
106 under vc++5.0. I will start making it work as soon as I download the pthreads library 
107 and the newest version of GLib for Windows. It was quite a good idea to start the port,
108 as the Microsoft's compiler generates much more warnings and I had quite a few things 
109 fixed for free.
110
111 <p><i>January the 9th, 2000</i>
112
113 <p>Doing the Win32 port all the day... Actually, there is enough code to make it work,
114 however I am sure only of that it compiles (more or less). I need to download the
115 pthreads-win32 library to get the GLib working first, and somehow I was unable to
116 do it during the weekend. Once again -- the Win32 port does not work yet. Oh, and
117 I need adding the __declspec(dllexport) thing...
118
119 <p>After it starts working, I'll have to clean up the code a bit, I guess...
120
121 <p><i>January the 10th, 2000</i>
122
123 <p>Here I am at three o'clock am, half-awake, uploading and downloading things for 
124 freeglut. I never thought I'd be able to force myself getting up that early :)
125
126 <p><i>January the 16th, 2000</i>
127
128 <p>Both the flu and a terrible feeling about the dialup bills made me slow down
129 a bit, the internet activity I mean :). But here I am again uploading the latest
130 snapshot. The biggest news about it is the Win32 port working, with nearly all 
131 features you can find in the X11 version implemented (still, it needs some debugging). 
132 For the Unix port, game mode support (loosely based on SDL source code posted at Neal 
133 Tringham's www.pseudonymz.demon.co.uk) and numerous bug fixes have been introduced.
134
135 <p>In order to compile the Win32 version, you'll need pthreads-win32 library (see 
136 sourceware.cygnus.org), the GLib-1.2.x (www.gtk.org, I've been using the 1.2.6),
137 a working native compiler (Microsoft VisualC++ 5.0 in my case), and a bit of patience.
138 See the project files I've supplied for some definitions needed (FREEGLUT_LIBRARY_BUILD
139 needs to be declared when building the DLL), and don't forget freeglut joystick code
140 is making use of Win32 multimedia extensions (link against winmm.lib).
141
142 <p>Be prepared to meet the fact Mesa 3.1 (or at least my compilation) doesn't work very
143 well with this snapshot -- something's messed up when changing WGL contexts. This is
144 really strange, as the Microsoft's OpenGL works pretty fine, as does Dominik Behr's 
145 miniGL thing. The assumption is that I've taken some approach that somehow is valid
146 with Microsoft's drivers, but is not OpenGL conformant. Could anyone check this out 
147 please? 
148
149 <p>My plan for next week is to add some lesser features missing, and start learning
150 maths as the session at my university is coming in really fast :) This way or another,
151 expect the next release not any sooner than next weekend (given that no nasty bugs get
152 digged out).
153
154 <p>Argh. Don't be surprised if the code doesn't compile under X-11 other than XFree86.
155 It could fail when trying to include the X11/extensions/xf86vmode.h include header,
156 in that case just comment out that inclusion line (found in freeglut_internal.h).
157 Is there any intelligent way to detect the existence of an include header, and if
158 it's autoconf to be the answer, how to use it?
159
160 <br><br><a href="index.html"><i>Back to the main page</i></a>
161
162 </table></center></body></html>
163