diff --git a/.gitattributes b/.gitattributes index 266b160..a9a6983 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,6 +10,13 @@ freeglut/freeglut/TODO svn_keywords=Author+Date+Id+Revision freeglut/freeglut/acconfig.h svn_keywords=Author+Date+Id+Revision freeglut/freeglut/aclocal.m4 svn_keywords=Author+Date+Id+Revision freeglut/freeglut/configure.in svn_keywords=Author+Date+Id+Revision +freeglut/freeglut/doc/download.html svn_keywords=Author+Date+Id+Revision +freeglut/freeglut/doc/freeglut.html svn_keywords=Author+Date+Id+Revision +freeglut/freeglut/doc/freeglut_logo.png -text +freeglut/freeglut/doc/index.html svn_keywords=Author+Date+Id+Revision +freeglut/freeglut/doc/ogl_sm.png -text +freeglut/freeglut/doc/progress.html svn_keywords=Author+Date+Id+Revision +freeglut/freeglut/doc/structure.html svn_keywords=Author+Date+Id+Revision freeglut/freeglut/freeglut-1.3/.deps/freeglut_callbacks.P svn_keywords=Author+Date+Id+Revision freeglut/freeglut/freeglut-1.3/.deps/freeglut_cursor.P svn_keywords=Author+Date+Id+Revision freeglut/freeglut/freeglut-1.3/.deps/freeglut_display.P svn_keywords=Author+Date+Id+Revision diff --git a/freeglut/freeglut/doc/download.html b/freeglut/freeglut/doc/download.html new file mode 100755 index 0000000..b9baab2 --- /dev/null +++ b/freeglut/freeglut/doc/download.html @@ -0,0 +1,42 @@ + + + + + + + + + + The freeglut project + + + +
The freeglut logo
+ +
+I upload it, you download it. That's the ying-yang nature of the Buddha. +
+ +

+ +

January the 16th, 2000 +

Here is a list of files you can download: +

+ +

+ +
+ diff --git a/freeglut/freeglut/doc/freeglut.html b/freeglut/freeglut/doc/freeglut.html new file mode 100755 index 0000000..7357dea --- /dev/null +++ b/freeglut/freeglut/doc/freeglut.html @@ -0,0 +1,163 @@ + + + + + + + + + + The freeglut project + + + +
The freeglut logo
+ +
+I am best at what I do worst and for this gift I feel blessed... +
+ +

+ +

January the 2nd, 2000 + +

The alpha version has been released yesterday. Today I have been busy with moving +the project site to the SourceForge. As for +now there will be the web site available and I will give it a try to set up the +freeglut mailing lists. There will be no CVS access available for now (my dialup +internet connection sucks so badly that I wouldn't be able to work on the project). +After I am done with that, I will try announcing the project on www.opengl.org. + +

Of other things, there has been rumours floating round the routers and hubs about +Mark Kilgard changing the GLUT's license, but this is unconfirmed. It would be really +cool if he did so, there's no better motivation to work than a bit of sound competition. +As for me, I already put too much work into the freeglut project to terminate it just +now. We'll see what happens next. + +

January the 4th, 2000 + +

Ho-ho-ho. Freeglut-1.3 works fine with `Tux the Penguin and the Quest for Herring'. +At least that's what Steve Baker, the author, says. Not only that, Steve has provided +us with the joystick code (from his great PLIB project) and numerous hints and tips +about making freeglut more useful (I will try to put the results of our discussion +on the structure page). + +

As for other issues -- I promise I will start the Win32 port this weekend. +BTW. -- is there a decent cross compiler for Linux that generates Win32 executables, +so that I don't have to use windows for development? And what about Wine OpenGL +support? + +

The package is now some 40kB smaller than the previous one. Did some general +clean ups, removed unnecessary configure scripts in the genfonts directory, +the configure cahce, the Makefiles and so on. Also, I have started introducing +the new internal structure, as described here. + +

January the 6th, 2000 + +

The missing glutInit() issue seems to be solved. Chris Purnell (fxGLUT author) says +that the GLUT window and menu creation functions call glutInit() if the caller didn't +do that before. + +

The enumerations for GLUT_KEY_UP and GLUT_KEY_RIGHT were accidentally swapped. +They should be OK now. Hope the rest is OK :) + +

Added two new API calls to freeglut-1.3 -- glutBitmapHeight() and glutStrokeHeight(), +as suggested by Steve Baker. This won't break the GLUT compatibility a lot, and I've +heard it can be useful. Here you go. + +

The structure plans page has been updated. The numerous +feature hints from opengl-gamedev-l readers have been added. + +

Somebody (Chris?) hinted me that the stroke fonts can be found in the XFree86 +sources. I browsed through it and -- presto. Now I only need to define the stroke fonts +structure (should be very similiar to bitmapped one) and write quite a simple parser. + +

I've spent the (late) evening doing the init display string parsing and making +my logics classes homework :) Both is harder than I primarily thought, but fortunately +for me I can commit errors in one of those tasks. Guess which one? Argh. :) + +

January the 8th, 2000 + +

First of all, both the missing glutInit() and glutGet(GLUT_WINDOW_[X|Y]) issues are +fixed now. The first problem was solved thanks to Chris Purnell, who showed me the way +GLUT dealt with the problem. Good for me there's someone who reads it's source code (I +just felt it would be unfair for me to do so :D). The second problem was solved by +adding a XMoveWindow call just after the window creation and initial mapping. This is +strange. Maybe one of the Xlib calls between the creation and mapping spoiled the +window's coordinates? + +

This makes even more GLUT tests work fine. The tests can be found in any decent +GLUT 3.7 distribution. Following tests produce a FAIL message: test18.c (some layer +issues), test19.c (see the GLUT_NORMAL_DAMAGED issue on the progress page), test22.c +(window stacking/visibilty problems), test23.c (glutInitDisplayString() is unfinished), +test25.c (the freeglut fonts differ a bit from GLUT's), test28.c (-iconic handling +is missing(?)). Gee :) + +

I've spent another hour doing the glutInitDisplayString(), but it still is far from +being complete. And I've also started gathering information on doing the game mode +stuff. The video mode enumeration in both cases will be painful. + +

There is a big issue with the window contents redrawing. Right now, it is forced +every time there are no events pending in the main loop. I know it's wrong, but it +without such an approach some of the test programs freeze soon after starting. Could +someone peer-review the main loop code please? + +

I have decided to start the Win32 port this weekend. As for now, the code compiles +under vc++5.0. I will start making it work as soon as I download the pthreads library +and the newest version of GLib for Windows. It was quite a good idea to start the port, +as the Microsoft's compiler generates much more warnings and I had quite a few things +fixed for free. + +

January the 9th, 2000 + +

Doing the Win32 port all the day... Actually, there is enough code to make it work, +however I am sure only of that it compiles (more or less). I need to download the +pthreads-win32 library to get the GLib working first, and somehow I was unable to +do it during the weekend. Once again -- the Win32 port does not work yet. Oh, and +I need adding the __declspec(dllexport) thing... + +

After it starts working, I'll have to clean up the code a bit, I guess... + +

January the 10th, 2000 + +

Here I am at three o'clock am, half-awake, uploading and downloading things for +freeglut. I never thought I'd be able to force myself getting up that early :) + +

January the 16th, 2000 + +

Both the flu and a terrible feeling about the dialup bills made me slow down +a bit, the internet activity I mean :). But here I am again uploading the latest +snapshot. The biggest news about it is the Win32 port working, with nearly all +features you can find in the X11 version implemented (still, it needs some debugging). +For the Unix port, game mode support (loosely based on SDL source code posted at Neal +Tringham's www.pseudonymz.demon.co.uk) and numerous bug fixes have been introduced. + +

In order to compile the Win32 version, you'll need pthreads-win32 library (see +sourceware.cygnus.org), the GLib-1.2.x (www.gtk.org, I've been using the 1.2.6), +a working native compiler (Microsoft VisualC++ 5.0 in my case), and a bit of patience. +See the project files I've supplied for some definitions needed (FREEGLUT_LIBRARY_BUILD +needs to be declared when building the DLL), and don't forget freeglut joystick code +is making use of Win32 multimedia extensions (link against winmm.lib). + +

Be prepared to meet the fact Mesa 3.1 (or at least my compilation) doesn't work very +well with this snapshot -- something's messed up when changing WGL contexts. This is +really strange, as the Microsoft's OpenGL works pretty fine, as does Dominik Behr's +miniGL thing. The assumption is that I've taken some approach that somehow is valid +with Microsoft's drivers, but is not OpenGL conformant. Could anyone check this out +please? + +

My plan for next week is to add some lesser features missing, and start learning +maths as the session at my university is coming in really fast :) This way or another, +expect the next release not any sooner than next weekend (given that no nasty bugs get +digged out). + +

Argh. Don't be surprised if the code doesn't compile under X-11 other than XFree86. +It could fail when trying to include the X11/extensions/xf86vmode.h include header, +in that case just comment out that inclusion line (found in freeglut_internal.h). +Is there any intelligent way to detect the existence of an include header, and if +it's autoconf to be the answer, how to use it? + +

Back to the main page + +

+ diff --git a/freeglut/freeglut/doc/freeglut_logo.png b/freeglut/freeglut/doc/freeglut_logo.png new file mode 100755 index 0000000..36bf1b5 Binary files /dev/null and b/freeglut/freeglut/doc/freeglut_logo.png differ diff --git a/freeglut/freeglut/doc/index.html b/freeglut/freeglut/doc/index.html new file mode 100755 index 0000000..d511a9b --- /dev/null +++ b/freeglut/freeglut/doc/index.html @@ -0,0 +1,101 @@ + + +The freeglut project + + + + + + + + +
+ +
The freeglut logo
+
The free OpenGL utility toolkit
+ +
+ +
+ +

+
Hosted at SourceForge
+
+ +
+ + + + diff --git a/freeglut/freeglut/doc/ogl_sm.png b/freeglut/freeglut/doc/ogl_sm.png new file mode 100755 index 0000000..80baefc Binary files /dev/null and b/freeglut/freeglut/doc/ogl_sm.png differ diff --git a/freeglut/freeglut/doc/progress.html b/freeglut/freeglut/doc/progress.html new file mode 100755 index 0000000..8a84483 --- /dev/null +++ b/freeglut/freeglut/doc/progress.html @@ -0,0 +1,137 @@ + + + + + + + + + + The freeglut project + + + +
The freeglut logo
+
+I love reports. They are so full of brightness and hope... +
+ +

+ +

January the 16th, 2000 + +

It looks like both X11 and Win32 version have reached a comparable usability stage. +They are still missing many GLUT API 3 features, but the number is getting smaller and +smaller every day :) + +

  • input devices
  • + +

    Keyboard and mouse seems to work well. There is a big guess about the mouse buttons +count under X11 (always 3) -- I must remember to correct the menu activation code if +this shows to be invalid. + +

    None of the bizarre input devices found in GLUT API is supported (and probably won't). + +

    Steve Baker contributed the joystick code. It should work fine, as it did in PLIB, +but I haven't tested it out yet. It might not compile under FreeBSD, as I had to +convert it from C++ to C and had no possibility to compile it under FreeBSD (the Win32 +version had some typos, but I've already fixed them). + +

  • pull-down menus
  • + +

    Pull down menus seem to work. The menu is displayed using OpenGL, so it requires +the window's contents to be refreshed at an interactive rate, which sometimes does not +happen. That's why I'll consider adding optional window-system menu navigation later. +For now -- extensive testing is what I believe should be done with the menu system. + +

  • fonts
  • + +

    Bitmap fonts support is done. However it would be good to add two more API functions +-- glutBitmapString() and glutStrokeString(), which should limit the quantity of state +changes when drawing longer strings. + +

    Good that somebody finally told me where to get the stroke fonts data from... XFree86 +sources contain the ROMAN and MONO ROMAN stroke fonts data. For now stroke fonts are +rendered using the bitmap font GLUT_BITMAP_8_BY_13. + +

    What has changed is the way the fonts are specified. I moved to the GLUT's strange +way of supplying (fake for freeglut) font data pointers instead of some nice enums. +Hope it helps in achieving the binary compatibility between freeglut and GLUT. + +

    Added two new API calls: glutBitmapHeight() and glutStrokeHeight(), that return +a font's height. Hope this doesn't break the GLUT compatibility a lot. + +

  • mouse cursor
  • + +

    Need to have own cursor shapes, so that freeglut can pass them to the windowing +system, draw them using glBitmap() and/or texture mapping. The cursor shapes are very +probable to be found in XFree86 sources. + +

  • indexed color mode
  • + +

    This might work, however I have not tested it yet. glutGetColor/glutSetColor is not +implemented. Again, looks like a single Xlib call, but there might be some problems +with the colormap access. Need to switch into indexed color mode some day and check it +out (does Mesa 3.1 work with indexed color mode?) + +

  • planes
  • + +

    Overlays are not supported, but one of the GLUT conformance tests fails due to +glutLayerGet( GLUT_NORMAL_DAMAGED ) returning FALSE when the window has actually +been damaged. + +

    Layers would be good for drawing the menus and mouse cursor, as they wouldn't force +the application redraw to update their state. + +

  • init display string
  • + +

    I am in middle of the fight with the init display string. It's parsing OK, now it +would be cool to make it impress some effects on the display... + +

  • game mode
  • + +

    Is the game mode string parsed correctly? + +

  • geometry
  • + +

    Andreas Umbach has contributed the cube and sphere code. The teapot rendering is +done using free SGI code. I have also added the cone rendering, however it is missing +normal vectors (just as Andrea's wireframed cube does). All of the glut*hedron() +functions await to be implemented. + +

  • obvious bugs
  • + +

      +
    1. +the visibility/window status function is a conceptual mess. I had to peer into the GLUT +source code to see what actually happens inside. It helped me a bit, but still one of +the visibility tests fails. This is probably the reason for which a window covered by +enlightenment status bar is marked as hidden and does not get redrawn.
    2. + +
    3. +GLX 1.3 spec states that glXChooseVisual() et consortes are deprecated. Should move to +glXFBConfig.
    4. + +
    5. +need to investigate what happens when initial window position is set to (-1,-1). GLUT +specification says, that the window positioning should be left to the window system. +And I do not know how to force it do so...
    6. + +
    7. +I was told it is wrong to have the redisplay forced in the main loop. Is that right?
    8. + +

  • not so obvious bugs
  • + +

      +
    1. some of the tests freeze because they do not generate the glutPostRedisplay() call +every frame. Again, this is somehow handled by GLUT, but I can't see how. And why. + +

      Looks like I've fixed it (or rather hacked it?) by forcing a redisplay every +frame, but this is no good and kills interactiveness of my console :D

    2. + +
+ +Back to the main page + +
+ diff --git a/freeglut/freeglut/doc/structure.html b/freeglut/freeglut/doc/structure.html new file mode 100755 index 0000000..a460567 --- /dev/null +++ b/freeglut/freeglut/doc/structure.html @@ -0,0 +1,80 @@ + + + + + + + + + + The freeglut project + + + +
The freeglut logo
+
+I've got a master plan (to take your API down)... +
+ +

+ +

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. + +

  • freeglut-common
  • + +

    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. + +

  • freeglut-1.3
  • + +

    The GLUT API 3 compatible library. This is what's can be found now in the alpha +release (apart from the bugs, naturally :D). + +

  • freeglut-2.0
  • + +

    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. +Suggestions are welcome.

+ +

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...
+ +

  • glutBitmapHeight() and glutStrokeHeight() -- I have added them to the +freeglut-1.3 API, they are already implemented and should work fine,
  • +
  • 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.?)
  • +
  • texture mapped fonts -- this is easy and could be added to freeglut-1.3, but +would require adding the...
  • +
  • glutHint() function to tell freeglut to: use bitmapped/texture mapped fonts, +draw the menus and mouse cursor using OpenGL/window system, and stuff...
  • +
  • glutMainLoop() termination and glutMainLoopStep() function, which should +perform a single check of pending events, so that one can have his own main loop,
  • +
  • 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,
  • +
  • glutModifierFunc() could be added, or glutGetModifierState() should be allowed +to be called anywhere from the client's code
  • + +

    We might also think about:
    + +

  • freeglut-2.0 modularity via plugins, so that only the features that one +needs get loaded (plugins are easily supported by GLib),
  • +
  • OpenGL state management functions,
  • +
  • audio support -- using OpenAL maybe?,
  • +
  • a real menu system, not only the popups
  • +
  • non-OpenGL but portable UI, something like Java Swing
  • +
  • window-closing confirmation box (this is related to the above)
  • + +

    Following ideas are bad for freeglut:
    + +

  • more accurate timers under Win32 -- this goes to the GLib development afaik
  • +
  • portable file I/O, portable threads, plugins/modules -- this is already +done in GLib
  • + +

    Back to the main page + +
    +