diff options
Diffstat (limited to 'SixenseSDK/src/sixense_simple3d/doc')
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/Makefile.am | 5 | ||||
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/Makefile.in | 341 | ||||
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/download.html | 42 | ||||
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/freeglut.html | 163 | ||||
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/freeglut_logo.png | bin | 0 -> 15887 bytes | |||
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/freeglut_user_interface.html | 1956 | ||||
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/index.html | 101 | ||||
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/ogl_sm.png | bin | 0 -> 1586 bytes | |||
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/progress.html | 137 | ||||
-rwxr-xr-x | SixenseSDK/src/sixense_simple3d/doc/structure.html | 80 |
10 files changed, 2825 insertions, 0 deletions
diff --git a/SixenseSDK/src/sixense_simple3d/doc/Makefile.am b/SixenseSDK/src/sixense_simple3d/doc/Makefile.am new file mode 100755 index 0000000..754637b --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/Makefile.am @@ -0,0 +1,5 @@ +EXTRA_DIST = \ + download.html freeglut.html freeglut_logo.png \ + freeglut_user_interface.html index.html \ + ogl_sm.png progress.html structure.html + diff --git a/SixenseSDK/src/sixense_simple3d/doc/Makefile.in b/SixenseSDK/src/sixense_simple3d/doc/Makefile.in new file mode 100755 index 0000000..52711bd --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/Makefile.in @@ -0,0 +1,341 @@ +# Makefile.in generated by automake 1.10.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = doc +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AR = @AR@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DSYMUTIL = @DSYMUTIL@ +ECHO = @ECHO@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +EXPORT_FLAGS = @EXPORT_FLAGS@ +F77 = @F77@ +FFLAGS = @FFLAGS@ +GL_LIBS = @GL_LIBS@ +GREP = @GREP@ +HEADER = @HEADER@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LDFLAGS = @LDFLAGS@ +LIBM = @LIBM@ +LIBOBJS = @LIBOBJS@ +LIBRARY = @LIBRARY@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIBTOOL_DEPS = @LIBTOOL_DEPS@ +LIBXI = @LIBXI@ +LIBXXF86VM = @LIBXXF86VM@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAKEINFO = @MAKEINFO@ +MKDIR_P = @MKDIR_P@ +NMEDIT = @NMEDIT@ +OBJEXT = @OBJEXT@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +VERSION_INFO = @VERSION_INFO@ +XMKMF = @XMKMF@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_F77 = @ac_ct_F77@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = \ + download.html freeglut.html freeglut_logo.png \ + freeglut_user_interface.html index.html \ + ogl_sm.png progress.html structure.html + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --gnu doc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-exec-am: + +install-html: install-html-am + +install-info: install-info-am + +install-man: + +install-pdf: install-pdf-am + +install-ps: install-ps-am + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/SixenseSDK/src/sixense_simple3d/doc/download.html b/SixenseSDK/src/sixense_simple3d/doc/download.html new file mode 100755 index 0000000..b9baab2 --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/download.html @@ -0,0 +1,42 @@ +<!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 downloads page"> + <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 upload it, you download it. That's the ying-yang nature of the Buddha. +</font></font></i></dt></center> + +<center><table WIDTH="620"><tr><td><hr WIDTH="100%"> + +<p><i>January the 16th, 2000</i> +<p>Here is a list of files you can download: +<p> + +<ul> +<li> + <a href="freeglut-1.3-alpha-2000-01-04.tar.gz"> + freeglut-1.3-alpha-2000-01-04.tar.gz</a> (approx. 210kB) +<li> + <a href="freeglut-1.3-alpha-2000-01-06.tar.gz"> + freeglut-1.3-alpha-2000-01-06.tar.gz</a> (approx. 220kB) +<li> + <a href="freeglut-1.3-alpha-2000-01-09.tar.gz"> + freeglut-1.3-alpha-2000-01-09.tar.gz</a> (approx. 230kB) +<li> + <a href="freeglut-1.3-alpha-2000-01-16.tar.gz"> + freeglut-1.3-alpha-2000-01-16.tar.gz</a> (approx. 230kB) +</ul> + +</table></center></body></html> + diff --git a/SixenseSDK/src/sixense_simple3d/doc/freeglut.html b/SixenseSDK/src/sixense_simple3d/doc/freeglut.html new file mode 100755 index 0000000..7357dea --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/freeglut.html @@ -0,0 +1,163 @@ +<!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="A bit about me and the freeglut project"> + <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 am best at what I do worst and for this gift I feel blessed... +</font></font></i></dt></center> + +<center><table WIDTH="620"><tr><td><hr WIDTH="100%"> + +<p><i>January the 2nd, 2000</i> + +<p>The alpha version has been released yesterday. Today I have been busy with moving +the project site to the <a href="http://www.sourceforge.net">SourceForge</a>. 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. + +<p>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. + +<p><i>January the 4th, 2000</i> + +<p>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 <a href="structure.html">structure page</a>). + +<p>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? + +<p>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 <a href="structure.html">here</a>. + +<p><i>January the 6th, 2000</i> + +<p>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. + +<p>The enumerations for GLUT_KEY_UP and GLUT_KEY_RIGHT were accidentally swapped. +They should be OK now. Hope the rest is OK :) + +<p>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. + +<p>The <a href="structure.html">structure</a> plans page has been updated. The numerous +feature hints from opengl-gamedev-l readers have been added. + +<p>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. + +<p>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. :) + +<p><i>January the 8th, 2000</i> + +<p>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? + +<p>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 :) + +<p>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. + +<p>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? + +<p>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. + +<p><i>January the 9th, 2000</i> + +<p>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... + +<p>After it starts working, I'll have to clean up the code a bit, I guess... + +<p><i>January the 10th, 2000</i> + +<p>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 :) + +<p><i>January the 16th, 2000</i> + +<p>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. + +<p>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). + +<p>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? + +<p>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). + +<p>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? + +<br><br><a href="index.html"><i>Back to the main page</i></a> + +</table></center></body></html> + diff --git a/SixenseSDK/src/sixense_simple3d/doc/freeglut_logo.png b/SixenseSDK/src/sixense_simple3d/doc/freeglut_logo.png Binary files differnew file mode 100755 index 0000000..36bf1b5 --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/freeglut_logo.png diff --git a/SixenseSDK/src/sixense_simple3d/doc/freeglut_user_interface.html b/SixenseSDK/src/sixense_simple3d/doc/freeglut_user_interface.html new file mode 100755 index 0000000..20d1e42 --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/freeglut_user_interface.html @@ -0,0 +1,1956 @@ +<!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="John F. Fay"> + + <meta name="GENERATOR" content="Mozilla/4.77 [en] (Windows NT 5.0; U) [Netscape]"> + <title>FREEGLUT Application Program Interface</title> +</head> + <body> + +<dl> +<center> +<h1> The Open-Source</h1> + </center> +<center> +<h1> OpenGL Utility Toolkit</h1> + </center> +<center> +<h1> (<i>freeglut</i> 2.0.0)</h1> + </center> +<center> +<h1> Application Programming Interface</h1> + </center> +</dl> + +<center> +<h1> Version 4.0</h1> + </center> + +<center> +<h2> The <i>freeglut</i> Programming Consortium</h2> + </center> + +<center> +<h2> July, 2003</h2> + </center> + +<p><br> + OpenGL is a trademark of Silicon Graphics, Inc. X Window System is a trademark +of X Consortium, Inc. Spaceball is a registered trademark of Spatial +Systems Inc. <br> + The authors have taken care in preparation of this documentation but make +no expressed or implied warranty of any kind and assumes no responsibility + for errors or omissions. No liability is assumed for incidental or consequential + damages in connection with or arising from the use of information or programs + contained herein. <br> + </p> + +<h1> 1.0 <a name="Contents"></a> + Contents</h1> + 1.0 <a href="#Contents">Contents</a> + +<p>2.0 <a href="#Introduction">Introduction</a> + </p> + +<p>3.0 <a href="#Background">Background</a> + </p> + +<blockquote>3.1 Design Philosophy <br> + 3.2 Conventions <br> + 3.3 Terminology <br> + 3.4 Differences from GLUT 3.7</blockquote> + + <p><br> + 4.0 <a href="#Initialization">Initialization Functions</a> + </p> + + <blockquote>4.1 glutInit <br> + 4.2 glutInitWindowPosition, glutInitWindowSize <br> + 4.3 glutInitDisplayMode <br> + 4.4 glutInitDisplayString</blockquote> + + <p><br> + 5.0 <a href="#EventProcessing">Event Processing Functions</a> + </p> + + <blockquote>5.1 glutMainLoop <br> + 5.2 glutMainLoopEvent <br> + 5.3 glutLeaveMainLoop</blockquote> + + <p><br> + 6.0 <a href="#Window">Window Functions</a> + </p> + + <blockquote>6.1 glutCreateWindow <br> + 6.2 glutCreateSubwindow <br> + 6.3 glutDestroyWindow <br> + 6.4 glutSetWindow, glutGetWindow <br> + 6.5 glutSetWindowTitle, glutSetIconTitle <br> + 6.6 glutReshapeWindow <br> + 6.7 glutPositionWindow <br> + 6.8 glutShowWindow, glutHideWindow, glutIconifyWindow <br> + 6.9 glutPushWindow, glutPopWindow <br> + 6.10 glutFullScreen</blockquote> + + <p><br> + 7.0 <a href="#Display">Display Functions</a> + </p> + + <blockquote>7.1 glutPostRedisplay <br> + 7.2 glutPostWindowRedisplay <br> + 7.3 glutSwapBuffers</blockquote> + + <p><br> + 8.0 <a href="#MouseCursor">Mouse Cursor Functions</a> + </p> + + <blockquote>8.1 glutSetCursor <br> + 8.2 glutWarpPointer</blockquote> + + <p><br> + 9.0 <a href="#Overlay">Overlay Functions</a> + </p> + + <blockquote>9.1 glutEstablishOverlay <br> + 9.2 glutRemoveOverlay <br> + 9.3 glutUseLayer <br> + 9.4 glutPostOverlayRedisplay <br> + 9.5 glutPostWindowOverlayRedisplay <br> + 9.6 glutShowOverlay, glutHideOverlay</blockquote> + + <p><br> + 10.0 <a href="#Menu">Menu Functions</a> + </p> + + <blockquote>10.1 glutCreateMenu <br> + 10.2 glutDestroyMenu <br> + 10.3 glutGetMenu, glutSetMenu <br> + 10.4 glutAddMenuEntry <br> + 10.5 glutAddSubMenu <br> + 10.6 glutChangeToMenuEntry <br> + 10.7 glutChangeToSubMenu <br> + 10.8 glutRemoveMenuItem <br> + 10.9 glutAttachMenu, glutDetachMenu</blockquote> + + <p><br> + 11.0 <a href="#GlobalCallback">Global Callback Registration Functions</a> + </p> + + <blockquote>11.1 glutTimerFunc <br> + 11.2 glutIdleFunc</blockquote> + + <p><br> + 12.0 <a href="#WindowCallback">Window-Specific Callback Registration + Functions</a> + </p> + + <blockquote>12.1 glutDisplayFunc <br> + 12.2 glutOverlayDisplayFunc <br> + 12.3 glutReshapeFunc <br> + 12.4 glutCloseFunc <br> + 12.5 glutKeyboardFunc <br> + 12.6 glutSpecialFunc <br> + 12.7 glutKeyboardUpFunc <br> + 12.8 glutSpecialUpFunc <br> + 12.9 glutMouseFunc <br> + 12.10 glutMotionFunc, glutPassiveMotionFunc <br> + 12.11 glutVisibilityFunc <br> + 12.12 glutEntryFunc <br> + 12.13 glutJoystickFunc <br> + 12.14 glutSpaceballMotionFunc <br> + 12.15 glutSpaceballRotateFunc <br> + 12.16 glutSpaceballButtonFunc <br> + 12.17 glutButtonBoxFunc <br> + 12.18 glutDialsFunc <br> + 12.19 glutTabletMotionFunc <br> + 12.20 glutTabletButtonFunc + <p>12.21 glutMenuStatusFunc <br> + 12.22 glutWindowStatusFunc</p> + </blockquote> + + <p><br> + 13.0 <a href="#StateSetting">State Setting and Retrieval Functions</a> + </p> + + <blockquote>13.1 glutSetOption <br> + 13.2 glutGet <br> + 13.3 glutDeviceGet <br> + 13.4 glutGetModifiers <br> + 13.5 glutLayerGet <br> + 13.6 glutExtensionSupported<br> +13.7 glutGetProcAddress<br> + </blockquote> + + <p><br> + 14.0 <a href="#FontRendering">Font Rendering Functions</a> + </p> + + <blockquote>14.1 glutBitmapCharacter <br> + 14.2 glutBitmapString <br> + 14.3 glutBitmapWidth <br> + 14.4 glutBitmapLength <br> + 14.5 glutBitmapHeight <br> + 14.6 glutStrokeCharacter <br> + 14.7 glutStrokeString <br> + 14.8 glutStrokeWidth <br> + 14.9 glutStrokeLength <br> + 14.10 glutStrokeHeight</blockquote> + + <p><br> + 15.0 <a href="#GeometricObject">Geometric Object Rendering Functions</a> + </p> + + <blockquote>15.1 glutWireSphere, glutSolidSphere + <br> + 15.2 glutWireTorus, glutSolidTorus <br> + 15.3 glutWireCone, glutSolidCone <br> + 15.4 glutWireCube, glutSolidCube <br> + 15.5 glutWireTetrahedron, glutSolidTetrahedron <br> + 15.6 glutWireOctahedron, glutSolidOctahedron <br> + 15.7 glutWireDodecahedron, glutSolidDodecahedron <br> + 15.8 glutWireIcosahedron, glutSolidIcosahedron <br> + 15.9 glutWireRhombicDodecahedron, glutSolidRhombicDodecahedron <br> + 15.10 glutWireTeapot, glutSolidTeapot</blockquote> + + <p><br> + 16.0 <a href="#GameMode">Game Mode Functions</a> + </p> + + <blockquote>16.1 glutGameModeString <br> + 16.2 glutEnterGameMode, glutLeaveGameMode <br> + 16.3 glutGameModeGet</blockquote> + + <p><br> + 17.0 <a href="#VideoResize">Video Resize Functions</a> + </p> + + <blockquote>17.1 glutVideoResizeGet <br> + 17.2 glutSetupVideoResizing, glutStopVideoResizing <br> + 17.3 glutVideoResize <br> + 17.4 glutVideoPan</blockquote> + + <p><br> + 18.0 <a href="#ColorMap">Color Map Functions</a> + </p> + + <blockquote>18.1 glutSetColor, glutGetColor + <br> + 18.2 glutCopyColormap</blockquote> + + <p><br> + 19.0 <a href="#Miscellaneous">Miscellaneous Functions</a> + </p> + + <blockquote>19.1 glutIgnoreKeyRepeat, +glutSetKeyRepeat <br> + 19.2 glutForceJoystickFunc <br> + 19.3 glutReportErrors</blockquote> + + <p><br> + 20.0 <a href="#UsageNotes">Usage Notes</a> + </p> + + <p>21.0 <a href="#ImplementationNotes"> + Implementation Notes</a> + </p> + + <p>22.0 <a href="#GLUT_State">GLUT +State</a> + </p> + + <p>23.0 <a href="#Freeglut.h_Header"> + "freeglut.h" Header File</a> + </p> + + <p>24.0 <a href="#References">References</a> + </p> + + <p>25.0 <a href="#Index">Index</a> + <br> + <br> + </p> + + <h1> 2.0 <a name="Introduction"></a> + Introduction</h1> + + <h1> 3.0 <a name="Background"></a> + Background</h1> + The OpenGL programming world owes a tremendous debt to Mr. Mark J. Kilgard + for writing the OpenGL Utility Toolkit, or GLUT. The GLUT library +of functions allows an application programmer to create, control, and manipulate + windows independent of what operating system the program is running on. + By hiding the dependency on the operating system from the application programmer, + he allowed people to write truly portable OpenGL applications. + + <p> Mr. Kilgard copyrighted +his library and gave it a rather unusual license. Under his license, +people are allowed freely to copy and distribute the libraries and the source +code, but they are not allowed to modify it. For a long time this did +not matter because the GLUT library worked so well and because Mr. Kilgard +was releasing updates on a regular basis. But with the passage of time, +people started wanting some slightly different behaviours in their windowing +system. When Mr. Kilgard stopped supporting the GLUT library in 1999, +having moved on to bigger and better things, this started to become a problem. + </p> + + <p> In December 1999, +Mr. Pawel Olzsta started work on an open-source clone of the GLUT library. +This open-source clone, which does not use any of the GLUT source code, has +evolved into the present <i>freeglut</i> library. This documentation +specifies the application program interface to the <i>freeglut</i> library. + </p> + + <h2> 3.1 Design Philosophy</h2> + + <h2> 3.2 Conventions</h2> + + <h2> 3.3 Terminology</h2> + + <h2> 3.4 Differences from GLUT 3.7</h2> + Since the <i>freeglut</i> library was developed in order to update GLUT, + it is natural that there will be some differences between the two. +Each function in the API notes any differences between the GLUT and the <i> +freeglut</i> function behaviours. The important ones are summarized +here. + <h3> 3.4.1 glutMainLoop Behaviour</h3> + One of the commonest complaints about the GLUT library was that once an +application called "<tt>glutMainLoop</tt>", it never got control back. +There was no way for an application to loop in GLUT for a while, possibly +as a subloop while a specific window was open, and then return to the calling +function. A new function, "<tt>glutMainLoopEvent</tt>", has been added +to allow this functionality. Another function, "<tt>glutLeaveMainLoop</tt> +", has also been added to allow the application to tell <i>freeglut</i> to clean +up and close down. + <h3> 3.4.2 Action on Window Closure</h3> + Another difficulty with GLUT, especially with multiple-window programs, +is that if the user clicks on the "x" in the window header the application +exits immediately. The application programmer can now set an option, +"<tt> GLUT_ACTION_ON_WINDOW_CLOSE</tt>", to specify whether execution should +continue, whether GLUT should return control to the main program, or whether +GLUT should simply exit (the default). + + <h3>3.4.3 Changes to Callbacks<br> + </h3> + Several new callbacks have been added and several callbacks which were specific +to Silicon Graphics hardware have not been implemented. Most or all +of the new callbacks are listed in the GLUT Version 4 "glut.h" header file +but did not make it into the documentation. The new callbacks consist +of regular and special key release callbacks, a joystick callback, a window +status callback, window closure callbacks, a menu closure callback, and a +mouse wheel callback. Unsupported callbacks are the three Spaceball +callbacks, the ButtonBox callback, and the two Tablet +callbacks. If the user has a need for an unsupported callback he should +contact the <i>freeglut</i> development team.<br> + + <h3>3.4.4 String Rendering<br> + </h3> + New functions have been added to render full character strings (including +carriage returns) rather than rendering one character at a time. More +functions return the widths of character strings and the font heights, in +pixels for bitmapped fonts and in OpenGL units for the stroke fonts.<br> + + <h3>3.4.5 Geometry Rendering<br> + </h3> + Functions have been added to render a wireframe and a solid rhombic +dodecahedron, a cylinder, and a Sierpinski sponge. + <h3> 3.4.5 Extension Function Queries</h3> + glutGetProcAddress is a wrapper for the glXGetProcAddressARB and wglGetProcAddress +functions. + <h1> 4.0 <a name="Initialization"></a> + Initialization Functions</h1> + + <h2> 4.1 glutInit</h2> + + <h2> 4.2 glutInitWindowPosition, glutInitWindowSize</h2> + The "<tt>glutInitWindowPosition</tt> " and "<tt>glutInitWindowSize</tt> +" functions specify a desired position and size for windows that <i>freeglut</i> + will create in the future. + <p><b>Usage</b> </p> + + <p><tt>void glutInitWindowPosition ( int +x, int y ) ;</tt> <br> + <tt>void glutInitWindowSize ( int width, +int height ) ;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutInitWindowPosition</tt> + " and "<tt>glutInitWindowSize</tt>" functions specify a desired position +and size for windows that <i>freeglut</i> will create in the future. +The position is measured in pixels from the upper left hand corner of the +screen, with "x" increasing to the right and "y" increasing towards the bottom +of the screen. The size is measured in pixels. <i>Freeglut</i> + does not promise to follow these specifications in creating its windows, +it certainly makes an attempt to. </p> + + <p>The position and size of a window are +a matter of some subtlety. Most windows have a usable area surrounded +by a border and with a title bar on the top. The border and title bar +are commonly called "decorations." The position of the window unfortunately +varies with the operating system. On Linux, it is the coordinates of +the upper left-hand corner of its decorations. On Windows, it is the +coordinates of the upper left hand corner of its usable interior. For +both operating systems, the size of the window is the size of the usable interior. + </p> + + <p>Windows has some additional quirks which +the application programmer should know about. First, the minimum y-coordinate +of a window decoration is zero. (This is a feature of <i>freeglut</i> + and can be adjusted if so desired.) Second, there appears to be a +minimum window width on Windows which is 104 pixels. The user may specify +a smaller width, but the Windows system calls ignore it. It is also +impossible to make a window narrower than this by dragging on its corner. + </p> + + <p><b>Changes From GLUT</b> </p> + + <p>For some reason, GLUT is not affected +by the 104-pixel minimum window width. If the user clicks on the corner +of a window which is narrower than this amount, the window will immediately +snap out to this width, but the application can call "<tt>glutReshapeWindow</tt> + " and make a window narrower again. </p> + + <h2> 4.3 glutInitDisplayMode</h2> + + <h2> 4.4 glutInitDisplayString</h2> + + <h1> 5.0 <a name="EventProcessing"></a> + Event Processing Functions</h1> + After an application has finished initializing its windows and menus, it + enters an event loop. Within this loop, <i>freeglut</i> polls the +data entry devices (keyboard, mouse, etc.) and calls the application's appropriate +callbacks. + <p>In GLUT, control never returned from +the event loop (as invoked by the "<tt>glutMainLoop</tt>" function) to the +calling function. This prevented an application from having re-entrant +code, in which GLUT could be invoked from within a callback, and it prevented +the application from doing any post-processing (such as freeing allocated +memory) after GLUT had closed down. <i>Freeglut</i> allows the application +programmer to specify more direct control over the event loop by means of +two new functions. The first, "<tt>glutMainLoopEvent</tt>", processes +a single iteration of the event loop and allows the application to use a different +event loop controller or to contain re-entrant code. The second, "<tt> +glutLeaveMainLoop</tt>", causes the event loop to exit nicely; this is preferable +to the application's calling "<tt>exit</tt>" from within a GLUT callback. + </p> + + <h2> 5.1 glutMainLoop</h2> + The "<tt>glutMainLoop</tt>" function enters the event loop. + + <p><b>Usage</b> </p> + + <p><tt>void glutMainLoop ( void ) ;</tt> + </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutMainLoop</tt>" function +causes the program to enter the window event loop. An application should +call this function at most once. It will call any application callback +functions as required to process mouse clicks, mouse motion, key presses, +and so on. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>In GLUT, there was absolutely no way +for the application programmer to have control return from the "<tt>glutMainLoop</tt> + " function to the calling function. <i>Freeglut</i> allows the programmer +to force this by setting the "<tt>GLUT_ACTION_ON_WINDOW_CLOSE</tt>" option +and invoking the "<tt>glutLeaveMainLoop</tt>" function from one of the callbacks. + Stopping the program this way is preferable to simply calling "<tt>exit</tt> + " from within a callback because this allows <i>freeglut</i> to free allocated + memory and otherwise clean up after itself. (I know I just said this, + but I think it is important enough that it bears repeating.) </p> + + <h2> 5.2 glutMainLoopEvent</h2> + The "<tt>glutMainLoopEvent</tt>" function processes a single iteration +in the <i>freeglut</i> event loop. + <p><b>Usage</b> </p> + + <p><tt>void glutMainLoopEvent ( void ) ;</tt> + </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutMainLoopEvent</tt> + " function causes <i>freeglut</i> to process one iteration's worth of events +in its event loop. This allows the application to control its own event +loop and still use the <i>freeglut</i> windowing system. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include this function. + </p> + + <h2> 5.3 glutLeaveMainLoop</h2> + The "<tt>glutLeaveMainLoop</tt>" function causes <i>freeglut</i> to stop + its event loop. + <p><b>Usage</b> </p> + + <p><tt>void glutLeaveMainLoop ( void ) ;</tt> + </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutLeaveMainLoop</tt> + " function causes <i>freeglut</i> to stop the event loop. If the +"<tt> GLUT_ACTION_ON_WINDOW_CLOSE</tt>" option has been set to "<tt>GLUT_ACTION_CONTINUE_EXECUTION</tt> + ", control will return to the function which called "<tt>glutMainLoop</tt> + "; otherwise the application will exit. </p> + + <p>If the application has two nested calls +to "<tt>glutMainLoop</tt>" and calls "<tt>glutLeaveMainLoop</tt>", the behaviour +of <i>freeglut</i> is undefined. It may leave only the inner nested +loop or it may leave both loops. If the reader has a strong preference +for one behaviour over the other he should contact the <i>freeglut</i> Programming +Consortium and ask for the code to be fixed. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include this function. + </p> + + <h1> 6.0 <a name="Window"></a> + Window Functions</h1> + + <h2> 6.1 glutCreateWindow</h2> + + <h2> 6.2 glutCreateSubwindow</h2> + + <h2> 6.3 glutDestroyWindow</h2> + + <h2> 6.4 glutSetWindow, glutGetWindow</h2> + + <h2> 6.5 glutSetWindowTitle, glutSetIconTitle</h2> + + <h2> 6.6 glutReshapeWindow</h2> + + <h2> 6.7 glutPositionWindow</h2> + + <h2> 6.8 glutShowWindow, glutHideWindow, +glutIconifyWindow</h2> + + <h2> 6.9 glutPushWindow, glutPopWindow</h2> + + <h2> 6.10 glutFullScreen</h2> + + <h1> 7.0 <a name="Display"></a> + Display Functions</h1> + + <h2> 7.1 glutPostRedisplay</h2> + + <h2> 7.2 glutPostWindowRedisplay</h2> + + <h2> 7.3 glutSwapBuffers</h2> + + <h1> 8.0 <a name="MouseCursor"></a> + Mouse Cursor Functions</h1> + + <h2> 8.1 glutSetCursor</h2> + + <h2> 8.2 glutWarpPointer</h2> + + <h1> 9.0 <a name="Overlay"></a> + Overlay Functions</h1> + <i>Freeglut</i> does not allow overlays, although it does "answer the mail" + with function stubs so that GLUT-based programs can compile and link against + <i>freeglut</i> without modification. +If the reader needs overlays, he should contact the <i>freeglut</i> Programming +Consortium and ask for them to be implemented. He should also be prepared +to assist in the implementation. + <h2> 9.1 glutEstablishOverlay</h2> + The "<tt>glutEstablishOverlay</tt>" function is not implemented in <i>freeglut</i> + . + <p><b>Usage</b> </p> + + <p><tt>void glutEstablishOverlay ( void +) ;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutEstablishOverlay</tt>" function +is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT implements this function. </p> + + <h2> 9.2 glutRemoveOverlay</h2> + The "<tt>glutRemoveOverlay</tt>" function is not implemented in <i>freeglut</i> + . + <p><b>Usage</b> </p> + + <p><tt>void glutRemoveOverlay ( void ) ;</tt> + </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutRemoveOverlay</tt>" function +is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT implements this function. </p> + + <h2> 9.3 glutUseLayer</h2> + The "<tt>glutUseLayer</tt>" function is not implemented in <i>freeglut</i> + . + <p><b>Usage</b> </p> + + <p><tt>void glutUseLayer ( GLenum +layer ) ;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutUseLayer</tt>" function +is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT implements this function. </p> + + <h2> 9.4 glutPostOverlayRedisplay</h2> + The "<tt>glutPostOverlayRedisplay</tt> " function is not implemented in + <i> freeglut</i>. + + <p><b>Usage</b> </p> + + <p><tt>void glutPostOverlayRedisplay ( void +) ;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutPostOverlayRedisplay</tt> + " function is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT implements this function. </p> + + <h2> 9.5 glutPostWindowOverlayRedisplay</h2> + The "<tt>glutPostWindowOverlayRedisplay</tt> " function is not implemented + in <i>freeglut</i>. + <p><b>Usage</b> </p> + + <p><tt>void glutPostWindowOverlayRedisplay +( int window ) ;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutPostWindowOverlayRedisplay</tt> + " function is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT implements this function. </p> + + <h2> 9.6 glutShowOverlay, glutHideOverlay</h2> + The "<tt>glutShowOverlay</tt>" and "<tt>glutHideOverlay</tt>" functions +are not implemented in <i>freeglut</i> . + + <p><b>Usage</b> </p> + + <p><tt>void glutShowOverlay( void ) ;</tt> + <br> + <tt>void glutHideOverlay( void ) ;</tt> + </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutShowOverlay</tt>" and "<tt> +glutHideOverlay</tt>" functions are not implemented in <i>freeglut</i> . + </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT implements these functions. </p> + + <h1> 10.0 <a name="Menu"></a> + Menu Functions</h1> + + <h2> 10.1 glutCreateMenu</h2> + + <h2> 10.2 glutDestroyMenu</h2> + + <h2> 10.3 glutGetMenu, glutSetMenu</h2> + + <h2> 10.4 glutAddMenuEntry</h2> + + <h2> 10.5 glutAddSubMenu</h2> + + <h2> 10.6 glutChangeToMenuEntry</h2> + + <h2> 10.7 glutChangeToSubMenu</h2> + + <h2> 10.8 glutRemoveMenuItem</h2> + + <h2> 10.9 glutAttachMenu, glutDetachMenu</h2> + + <h1> 11.0 <a name="GlobalCallback"></a> + Global Callback Registration Functions</h1> + + <h2> 11.1 glutTimerFunc</h2> + + <h2> 11.2 glutIdleFunc</h2> + The "<tt>glutIdleFunc</tt>" function sets the global idle callback. <i> +Freeglut</i> calls the idle callback when there are no inputs from the user. + + <p><b>Usage</b> </p> + + <p><tt>void glutIdleFunc ( void (*func) +( void ) ) ;</tt> </p> + + <p><tt>func </tt>The new +global idle callback function </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutIdleFunc</tt>" function +specifies the function that <i>freeglut</i> will call to perform background +processing tasks such as continuous animation when window system events are +not being received. If enabled, this function is called continuously +from <i>freeglut</i> while no events are received. The callback function +has no parameters and returns no value. <i>Freeglut</i> does not change +the <i>current window</i> or the <i>current menu</i> before invoking the idle +callback; programs with multiple windows or menus must explicitly set the + <i>current window</i> and <i>current menu</i> + and not rely on its current setting. <br> + The amount of computation and rendering done in an idle +callback should be minimized to avoid affecting the program's interactive + response. In general, no more than a single frame of rendering should + be done in a single invocation of an idle callback. <br> + Calling "<tt>glutIdleFunc</tt>" with a NULL argument +disables the call to an idle callback. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>Application programmers should note that +if they have specified the "continue execution" action on window closure, + <i>freeglut</i> will continue to call the +idle callback after the user has closed a window by clicking on the "x" in +the window header bar. If the idle callback renders a particular window +(this is considered bad form but is frequently done anyway), the programmer +should supply a window closure callback for that window which changes or disables +the idle callback. </p> + + <h1> 12.0 <a name="WindowCallback"></a> + Window-Specific Callback Registration Functions</h1> + + <h2> 12.1 glutDisplayFunc</h2> + + <h2> 12.2 glutOverlayDisplayFunc</h2> + + <h2> 12.3 glutReshapeFunc</h2> + + <h2> 12.4 glutCloseFunc</h2> + + <h2> 12.5 glutKeyboardFunc</h2> + + <h2> 12.6 glutSpecialFunc</h2> + The "<tt>glutSpecialFunc</tt>" function sets the window's special key press + callback. <i>Freeglut</i> calls the special key press callback when the +user presses a special key. + <p><b>Usage</b> </p> + + <p><tt>void glutSpecialFunc ( void (*func) +( int key, int x, int y ) ) ;</tt> </p> + + <p><tt>func </tt>The window's +new special key press callback function <br> + <tt>key </tt>The +key whose press triggers the callback <br> + <tt>x + </tt>The x-coordinate of the mouse relative +to the window at the time the key is pressed <br> + <tt>y + </tt>The y-coordinate of the mouse relative +to the window at the time the key is pressed </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutSpecialFunc</tt>" +function specifies the function that <i>freeglut</i> will call when the user +presses a special key on the keyboard. The callback function has one +argument: the name of the function to be invoked ("called back") at +the time at which the special key is pressed. The function returns no +value. <i>Freeglut</i> sets the <i>current window</i> to the window +which is active when the callback is invoked. "Special keys" are the +function keys, the arrow keys, the Page Up and Page Down keys, and the Insert +key. The Delete key is considered to be a regular key. <br> + Calling "<tt>glutSpecialUpFunc</tt>" with a NULL argument +disables the call to the window's special key press callback. </p> + + <p> The "<tt>key</tt> +" argument may take one of the following defined constant values: </p> + + <ul> + <li> <tt>GLUT_KEY_F1, GLUT_KEY_F2, ..., GLUT_KEY_F12</tt> + - F1 through F12 keys</li> + <li> <tt>GLUT_KEY_PAGE_UP, GLUT_KEY_PAGE_DOWN</tt> + - Page Up and Page Down keys</li> + <li> <tt>GLUT_KEY_HOME, GLUT_KEY_END</tt> + - Home and End keys</li> + <li> <tt>GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN</tt> + - arrow keys</li> + <li> <tt>GLUT_KEY_INSERT</tt> + - Insert key</li> + + </ul> + <b>Changes From GLUT</b> + <p>None. </p> + + <h2> 12.7 glutKeyboardUpFunc</h2> + The "<tt>glutKeyboardUpFunc</tt>" function sets the window's key release + callback. <i>Freeglut</i> calls the key release callback when the user releases +a key. + <p><b>Usage</b> </p> + + <p><tt>void glutKeyboardUpFunc ( void (*func) +( unsigned char key, int x, int y ) ) ;</tt> </p> + + <p><tt>func </tt>The window's +new key release callback function <br> + <tt>key </tt>The +key whose release triggers the callback <br> + <tt>x + </tt>The x-coordinate of the mouse relative +to the window at the time the key is released <br> + <tt>y + </tt>The y-coordinate of the mouse relative +to the window at the time the key is released </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutKeyboardUpFunc</tt> +" function specifies the function that <i>freeglut</i> will call when the +user releases a key from the keyboard. The callback function has one +argument: the name of the function to be invoked ("called back") at +the time at which the key is released. The function returns no value. + <i>Freeglut</i> sets the <i>current window</i> + to the window which is active when the callback is invoked. <br> + While <i>freeglut</i> checks for upper or lower case +letters, it does not do so for non-alphabetical characters. Nor does +it account for the Caps-Lock key being on. The operating system may +send some unexpected characters to <i>freeglut</i>, such as "8" when the +user is pressing the Shift key. <i>Freeglut</i> also invokes the callback +when the user releases the Control, Alt, or Shift keys, among others. +Releasing the Delete key causes this function to be invoked with a value +of 127 for "<tt>key</tt>". <br> + Calling "<tt>glutKeyboardUpFunc</tt>" with a NULL argument +disables the call to the window's key release callback. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>This function is not implemented in GLUT +versions before Version 4. It has been designed to be as close to GLUT +as possible. Users who find differences should contact the + <i>freeglut</i> Programming Consortium to +have them fixed. </p> + + <h2> 12.8 glutSpecialUpFunc</h2> + The "<tt>glutSpecialUpFunc</tt>" function sets the window's special key +release callback. <i>Freeglut</i> calls the special key release callback +when the user releases a special key. + <p><b>Usage</b> </p> + + <p><tt>void glutSpecialUpFunc ( void (*func) +( int key, int x, int y ) ) ;</tt> </p> + + <p><tt>func </tt>The window's +new special key release callback function <br> + <tt>key </tt>The +key whose release triggers the callback <br> + <tt>x + </tt>The x-coordinate of the mouse relative +to the window at the time the key is released <br> + <tt>y + </tt>The y-coordinate of the mouse relative +to the window at the time the key is released </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutSpecialUpFunc</tt> +" function specifies the function that <i>freeglut</i> will call when the +user releases a special key from the keyboard. The callback function +has one argument: the name of the function to be invoked ("called back") +at the time at which the special key is released. The function returns +no value. <i>Freeglut</i> sets the <i>current window</i> to the window +which is active when the callback is invoked. "Special keys" are the +function keys, the arrow keys, the Page Up and Page Down keys, and the Insert +key. The Delete key is considered to be a regular key. <br> + Calling "<tt>glutSpecialUpFunc</tt>" with a NULL argument +disables the call to the window's special key release callback. </p> + + <p> The "<tt>key</tt> +" argument may take one of the following defined constant values: </p> + + <ul> + <li> <tt>GLUT_KEY_F1, GLUT_KEY_F2, ..., GLUT_KEY_F12</tt> + - F1 through F12 keys</li> + <li> <tt>GLUT_KEY_PAGE_UP, GLUT_KEY_PAGE_DOWN</tt> + - Page Up and Page Down keys</li> + <li> <tt>GLUT_KEY_HOME, GLUT_KEY_END</tt> + - Home and End keys</li> + <li> <tt>GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN</tt> + - arrow keys</li> + <li> <tt>GLUT_KEY_INSERT</tt> + - Insert key</li> + + </ul> + <b>Changes From GLUT</b> + <p>This function is not implemented in GLUT +versions before Version 4. It has been designed to be as close to GLUT +as possible. Users who find differences should contact the + <i>freeglut</i> Programming Consortium to +have them fixed. </p> + + <h2> 12.9 glutMouseFunc</h2> + + <h2> 12.10 glutMotionFunc, glutPassiveMotionFunc</h2> + + <h2> 12.11 glutVisibilityFunc</h2> + + <h2> 12.12 glutEntryFunc</h2> + + <h2> 12.13 glutJoystickFunc</h2> + + <h2> 12.14 glutSpaceballMotionFunc</h2> + The "<tt>glutSpaceballMotionFunc</tt>" function is not implemented in + <i>freeglut</i>, although the library does +"answer the mail" to the extent that a call to the function will not produce +an error.. + <p><b>Usage</b></p> + + <p><tt>void glutSpaceballMotionFunc ( void +(* callback)( int x, int y, int z )</tt><tt> ) ;</tt></p> + + <p><b>Description</b></p> + + <p>The "<tt>glutSpaceballMotionFunc</tt> + " function is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b></p> + + <p>GLUT implements this function. </p> + + <h2> 12.15 glutSpaceballRotateFunc</h2> + The "<tt>glutSpaceballRotateFunc</tt>" function is not implemented in + <i>freeglut</i>, although the library does +"answer the mail" to the extent that a call to the function will not produce +an error.. + <p><b>Usage</b></p> + + <p><tt>void glutSpaceballRotateFunc ( void +(* callback)( int x, int y, int z )</tt><tt> ) ;</tt></p> + + <p><b>Description</b></p> + + <p>The "<tt>glutSpaceballRotateFunc</tt> + " function is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b></p> + + <p>GLUT implements this function. </p> + + <h2> 12.16 glutSpaceballButtonFunc</h2> + The "<tt>glutSpaceballButtonFunc</tt>" function is not implemented in + <i>freeglut</i>, although the library does +"answer the mail" to the extent that a call to the function will not produce +an error.. + <p><b>Usage</b></p> + + <p><tt>void glutSpaceballButtonFunc ( void +(* callback)( int button, int updown )</tt><tt> ) ;</tt></p> + + <p><b>Description</b></p> + + <p>The "<tt>glutSpaceballButtonFunc</tt> + " function is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b></p> + + <p>GLUT implements this function. </p> + + <h2> 12.17 glutButtonBoxFunc</h2> + The "<tt>glutSpaceballButtonBoxFunc</tt>" function is not implemented +in <i>freeglut</i>, although the library does "answer the mail" to the extent +that a call to the function will not produce an error.. + + <p><b>Usage</b></p> + + <p><tt>void glutSpaceballButtonBoxFunc ( +void (* callback)( int button, int updown )</tt><tt> ) ;</tt></p> + + <p><b>Description</b></p> + + <p>The "<tt>glutSpaceballButtonBoxFunc</tt> + " function is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b></p> + + <p>GLUT implements this function. </p> + + <h2> 12.18 glutDialsFunc</h2> + The "<tt>glutDialsFunc</tt>" function is not implemented in <i>freeglut</i> + , although the library does "answer the mail" to the extent that a call +to the function will not produce an error.. + + <p><b>Usage</b></p> + + <p><tt>void glutDialsFunc ( void (* callback)( +int dial, int value )</tt><tt> ) ;</tt></p> + + <p><b>Description</b></p> + + <p>The "<tt>glutDialsFunc</tt>" function +is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b></p> + + <p>GLUT implements this function. </p> + + <h2> 12.19 glutTabletMotionFunc</h2> + The "<tt>glutTabletMotionFunc</tt>" function is not implemented in <i> + freeglut</i>, although the library does "answer the mail" to the extent +that a call to the function will not produce an error.. + + <p><b>Usage</b></p> + + <p><tt>void glutTabletMotionFunc ( void +(* callback)( int x, int y )</tt><tt> ) ;</tt></p> + + <p><b>Description</b></p> + + <p>The "<tt>glutTabletMotionFunc</tt>" function +is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b></p> + + <p>GLUT implements this function. </p> + + <h2> 12.20 glutTabletButtonFunc</h2> + The "<tt>glutTabletButtonFunc</tt>" function is not implemented in <i> + freeglut</i>, although the library does "answer the mail" to the extent +that a call to the function will not produce an error.. + + <p><b>Usage</b></p> + + <p><tt>void glutTabletButtonFunc ( void +(* callback)( int button, int updown, int x, int y )</tt><tt> ) ;</tt></p> + + <p><b>Description</b></p> + + <p>The "<tt>glutTabletButtonFunc</tt>" function +is not implemented in <i>freeglut</i>. </p> + + <p><b>Changes From GLUT</b></p> + + <p>GLUT implements this function. </p> + + <h2> 12.21 glutMenuStatusFunc</h2> + + <h2> 12.22 glutWindowStatusFunc</h2> + + <h1> 13.0 <a name="StateSetting"></a> + State Setting and Retrieval Functions</h1> + + <h2> 13.1 glutSetOption</h2> + + <h2> 13.2 glutGet</h2> + + +<p> +The following state variables may be queried with "<tt>glutGet</tt>". +The returned value is an integer. +</p> + +<p> +These queries are with respect to the current window: +</p> + +<ul> +<li>GLUT_WINDOW_X - window X position +<li>GLUT_WINDOW_Y - window Y position +<li>GLUT_WINDOW_WIDTH - window width +<li>GLUT_WINDOW_HEIGHT - window height +<li>GLUT_WINDOW_BUFFER_SIZE - number of color or color index bits per pixel +<li>GLUT_WINDOW_STENCIL_SIZE - number of bits per stencil value +<li>GLUT_WINDOW_DEPTH_SIZE - number of bits per depth value +<li>GLUT_WINDOW_RED_SIZE - number of bits per red value +<li>GLUT_WINDOW_GREEN_SIZE - number of bits per green value +<li>GLUT_WINDOW_BLUE_SIZE - number of bits per blue value +<li>GLUT_WINDOW_ALPHA_SIZE - number of bits per alpha value +<li>GLUT_WINDOW_ACCUM_RED_SIZE - number of red bits in the accumulation buffer +<li>GLUT_WINDOW_ACCUM_GREEN_SIZE - number of green bits in the accumulation buffer +<li>GLUT_WINDOW_ACCUM_BLUE_SIZE - number of blue bits in the accumulation buffer +<li>GLUT_WINDOW_ACCUM_ALPHA_SIZE - number of alpha bits in the accumulation buffer +<li>GLUT_WINDOW_DOUBLEBUFFER - 1 if the color buffer is double buffered, 0 otherwise +<li>GLUT_WINDOW_RGBA - 1 if the color buffers are RGB[A], 0 for color index +<li>GLUT_WINDOW_PARENT - parent window ID +<li>GLUT_WINDOW_NUM_CHILDREN - number of child windows +<li>GLUT_WINDOW_COLORMAP_SIZE - number of entries in the window's colormap +<li>GLUT_WINDOW_NUM_SAMPLES - number of samples per pixel if using multisampling +<li>GLUT_WINDOW_STEREO - 1 if the window supports stereo, 0 otherwise +<li>GLUT_WINDOW_CURSOR - current cursor +<li>GLUT_WINDOW_FORMAT_ID - on Windows, return the pixel format number of the current window +</ul> + +<p> +These queries do not depend on the current window. +</p> + +<ul> +<li>GLUT_SCREEN_WIDTH - width of the screen in pixels +<li>GLUT_SCREEN_HEIGHT - height of the screen in pixels +<li>GLUT_SCREEN_WIDTH_MM - width of the screen in millimeters +<li>GLUT_SCREEN_HEIGHT_MM - height of the screen in millimeters +<li>GLUT_MENU_NUM_ITEMS - number of items in the current menu +<li>GLUT_DISPLAY_MODE_POSSIBLE - return 1 if the current display mode is supported, 0 otherwise +<li>GLUT_INIT_WINDOW_X - X position last set by glutInitWindowPosition +<li>GLUT_INIT_WINDOW_Y - Y position last set by glutInitWindowPosition +<li>GLUT_INIT_WINDOW_WIDTH - width last set by glutInitWindowSize +<li>GLUT_INIT_WINDOW_HEIGHT - height last set by glutInitWindowSize +<li>GLUT_INIT_DISPLAY_MODE - display mode last set by glutInitDisplayMode +<li>GLUT_ELAPSED_TIME - time (in milliseconds) elapsed since glutInit or glutGet(GLUT_ELAPSED_TIME) was first called +<li>GLUT_INIT_STATE - ? +<li>GLUT_VERSION - Return value will be X*10000+Y*100+Z where X is the + major version, Y is the minor version and Z is the patch level. + This query is only supported in <i>freeglut</i> (version 2.0.0 or later). +</ul> + + + <h2> 13.3 glutDeviceGet</h2> + + <h2> 13.4 glutGetModifiers</h2> + + <h2> 13.5 glutLayerGet</h2> + + <h2> 13.6 glutExtensionSupported</h2> + + <h2> 13.7 glutGetProcAddress</h2> + <p><tt>glutGetProcAddress</tt> returns +a pointer to a named GL or <i>freeglut</i> function. </p> + <p><b>Usage</b></p> + <p><tt>void *glutGetProcAddress ( const +char *procName ) ;</tt></p> + <p><tt>procName + </tt>Name of an OpenGL or GLUT function. + </p> + <p><b>Description</b></p> + <p><tt>glutGetProcAddress</tt> is useful +for dealing with OpenGL extensions. If an application calls OpenGL extension +functions directly, that application will only link/run with an OpenGL library +that supports the extension. By using a function pointer returned from glutGetProcAddress(), +the application will avoid this hard dependency and be more portable and interoperate +better with various implementations of OpenGL. </p> + <p> Both OpenGL functions and <i>freeglut</i> +functions can be queried with this function. </p> + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include this function. + </p> + + <h1> 14.0 <a name="FontRendering"></a> + Font Rendering Functions</h1> + <i>Freeglut</i> supports two types of font rendering: bitmap fonts, + which are rendered using the "<tt>glBitmap</tt>" function call, and stroke + fonts, which are rendered as sequences of OpenGL line segments. Because + they are rendered as bitmaps, the bitmap fonts tend to render more quickly + than stroke fonts, but they are less flexible in terms of scaling and rendering. + Bitmap font characters are positioned with calls to the "<tt>glRasterPos*</tt> + " functions while stroke font characters use the OpenGL transformations +to position characters. + <p> It should be noted +that <i>freeglut</i> fonts are similar but not identical to GLUT fonts. +At the moment, <i>freeglut</i> fonts do not support the "`" (backquote) and +"|" (vertical line) characters; in their place it renders asterisks. </p> + + <p> <i>Freeglut</i> supports +the following bitmap fonts: </p> + + <ul> + <li> <tt>GLUT_BITMAP_8_BY_13</tt> - A variable-width font with every character + fitting in a rectangle of 13 pixels high by at most 8 pixels wide.</li> + <li> <tt>GLUT_BITMAP_9_BY_15</tt> - A variable-width font with every character + fitting in a rectangle of 15 pixels high by at most 9 pixels wide.</li> + <li> <tt>GLUT_BITMAP_TIMES_ROMAN_10</tt> - A 10-point variable-width Times +Roman font.</li> + <li> <tt>GLUT_BITMAP_TIMES_ROMAN_24</tt> - A 24-point variable-width Times +Roman font.</li> + <li> <tt>GLUT_BITMAP_HELVETICA_10</tt> - A 10-point variable-width Helvetica + font.</li> + <li> <tt>GLUT_BITMAP_HELVETICA_12</tt> - A 12-point variable-width Helvetica + font.</li> + <li> <tt>GLUT_BITMAP_HELVETICA_18</tt> - A 18-point variable-width Helvetica + font.</li> + + </ul> + <i>Freeglut</i> calls "<tt>glRasterPos4v</tt>" to advance the cursor by +the width of a character and to render carriage returns when appropriate. + It does not use any display lists in it rendering in bitmap fonts. + + <p> <i>Freeglut</i> supports +the following stroke fonts: </p> + + <ul> + <li> <tt>GLUT_STROKE_ROMAN</tt> - A proportionally-spaced Roman Simplex +font</li> + <li> <tt>GLUT_STROKE_MONO_ROMAN</tt> - A fixed-width Roman Simplex font</li> + + </ul> + <i>Freeglut</i> does not use any display lists in its rendering of stroke + fonts. It calls "<tt>glTranslatef</tt>" to advance the cursor by the +width of a character and to render carriage returns when appropriate. + + <h2> 14.1 glutBitmapCharacter</h2> + The "<tt>glutBitmapCharacter</tt>" function renders a single bitmapped +character in the <i>current window</i> using the specified font. + + <p><b>Usage</b> </p> + + <p><tt>void glutBitmapCharacter ( void *font, +int character ) ;</tt> </p> + + <p><tt>font + </tt>The bitmapped font to use in rendering +the character <br> + <tt>character </tt>The ASCII +code of the character to be rendered </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutBitmapCharacter</tt> + " function renders the given character in the specified bitmap font. + <i>Freeglut</i> automatically sets the necessary +pixel unpack storage modes and restores the existing modes when it has finished. +Before the first call to "<tt>glutBitMapCharacter</tt> " the application +program should call "<tt>glRasterPos*</tt>" to set the position of the character +in the window. The "<tt>glutBitmapCharacter</tt> " function advances +the cursor position as part of its call to "<tt>glBitmap</tt> " and so the +application does not need to call "<tt>glRasterPos*</tt>" again for successive +characters on the same line. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>Nonexistent characters are rendered as +asterisks. The rendering position in <i>freeglut</i> is apparently off +from GLUT's position by a few pixels vertically and one or two pixels horizontally. + </p> + + <h2> 14.2 glutBitmapString</h2> + The "<tt>glutBitmapString</tt>" function renders a string of bitmapped +characters in the <i>current window</i> using the specified font. + + <p><b>Usage</b> </p> + + <p><tt>void glutBitmapString ( void *font, +char *string ) ;</tt> </p> + + <p><tt>font + </tt>The bitmapped font to use in rendering +the character string <br> + <tt>string </tt>String +of characters to be rendered </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutBitmapString</tt> + " function renders the given character string in the specified bitmap font. + <i>Freeglut</i> automatically sets the necessary +pixel unpack storage modes and restores the existing modes when it has finished. +Before calling "<tt>glutBitMapString</tt>" the application program should +call "<tt>glRasterPos*</tt>" to set the position of the string in the window. +The "<tt>glutBitmapString</tt>" function handles carriage returns. +Nonexistent characters are rendered as asterisks. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include this function. + </p> + + <h2> 14.3 glutBitmapWidth</h2> + The "<tt>glutBitmapWidth</tt>" function returns the width in pixels of +a single bitmapped character in the specified font. + + <p><b>Usage</b> </p> + + <p><tt>int glutBitmapWidth ( void *font, +int character ) ;</tt> </p> + + <p><tt>font + </tt>The bitmapped font to use in calculating +the character width <br> + <tt>character </tt>The ASCII +code of the character </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutBitmapWidth</tt>" +function returns the width of the given character in the specified bitmap +font. Because the font is bitmapped, the width is an exact integer. + </p> + + <p><b>Changes From GLUT</b> </p> + + <p>Nonexistent characters return the width +of an asterisk. </p> + + <h2> 14.4 glutBitmapLength</h2> + The "<tt>glutBitmapLength</tt>" function returns the width in pixels of +a string of bitmapped characters in the specified font. + + <p><b>Usage</b> </p> + + <p><tt>int glutBitmapLength ( void *font, +char *string ) ;</tt> </p> + + <p><tt>font </tt>The bitmapped +font to use in calculating the character width <br> + <tt>string </tt>String of characters +whose width is to be calculated </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutBitmapLength</tt> + " function returns the width in pixels of the given character string in +the specified bitmap font. Because the font is bitmapped, the width +is an exact integer: the return value is identical to the sum of the +character widths returned by a series of calls to "<tt>glutBitmapWidth</tt> +". The width of nonexistent characters is counted to be the width of +an asterisk. </p> + + <p> If the string contains +one or more carriage returns, <i>freeglut</i> calculates the widths in pixels +of the lines separately and returns the largest width. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include this function. + </p> + + <h2> 14.5 glutBitmapHeight</h2> + The "<tt>glutBitmapHeight</tt>" function returns the height in pixels of + the specified font. + <p><b>Usage</b> </p> + + <p><tt>int glutBitmapHeight ( void *font +) ;</tt> </p> + + <p><tt>font + </tt>The bitmapped font to use in calculating +the character height </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutBitmapHeight</tt> + " function returns the height of a character in the specified bitmap font. +Because the font is bitmapped, the height is an exact integer. The fonts +are designed such that all characters have (nominally) the same height. + </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include this function. + </p> + + <h2> 14.6 glutStrokeCharacter</h2> + The "<tt>glutStrokeCharacter</tt>" function renders a single stroke character + in the <i>current window</i> using the specified font. + + <p><b>Usage</b> </p> + + <p><tt>void glutStrokeCharacter ( void *font, +int character ) ;</tt> </p> + + <p><tt>font + </tt>The stroke font to use in rendering +the character <br> + <tt>character </tt>The ASCII +code of the character to be rendered </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutStrokeCharacter</tt> + " function renders the given character in the specified stroke font. +Before the first call to "<tt>glutStrokeCharacter</tt>" the application program +should call the OpenGL transformation (positioning and scaling) functions +to set the position of the character in the window. The "<tt>glutStrokeCharacter</tt> + " function advances the cursor position by a call to "<tt>glTranslatef</tt> + " and so the application does not need to call the OpenGL positioning functions + again for successive characters on the same line. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>Nonexistent characters are rendered as +asterisks. </p> + + <h2> 14.7 glutStrokeString</h2> + The "<tt>glutStrokeString</tt>" function renders a string of characters +in the <i>current window</i> using the specified stroke font. + + <p><b>Usage</b> </p> + + <p><tt>void glutStrokeString ( void *font, +char *string ) ;</tt> </p> + + <p><tt>font + </tt>The stroke font to use in rendering +the character string <br> + <tt>string </tt>String +of characters to be rendered </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutStrokeString</tt> + " function renders the given character string in the specified stroke font. +Before calling "<tt>glutStrokeString</tt>" the application program should +call the OpenGL transformation (positioning and scaling) functions to set +the position of the string in the window. The "<tt>glutStrokeString</tt> + " function handles carriage returns. Nonexistent characters are rendered +as asterisks. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include this function. + </p> + + <h2> 14.8 glutStrokeWidth</h2> + The "<tt>glutStrokeWidth</tt>" function returns the width in pixels of +a single character in the specified stroke font. + + <p><b>Usage</b> </p> + + <p><tt>int glutStrokeWidth ( void *font, +int character ) ;</tt> </p> + + <p><tt>font + </tt>The stroke font to use in calculating +the character width <br> + <tt>character </tt>The ASCII +code of the character </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutStrokeWidth</tt>" +function returns the width of the given character in the specified stroke +font. Because the font is a stroke font, the width is actually a floating-point +number; the function rounds it to the nearest integer for the return value. + </p> + + <p><b>Changes From GLUT</b> </p> + + <p>Nonexistent characters return the width +of an asterisk. </p> + + <h2> 14.9 glutStrokeLength</h2> + The "<tt>glutStrokeLength</tt>" function returns the width in pixels of +a string of characters in the specified stroke font. + + <p><b>Usage</b> </p> + + <p><tt>int glutStrokeLength ( void *font, +char *string ) ;</tt> </p> + + <p><tt>font </tt>The stroke +font to use in calculating the character width <br> + <tt>string </tt>String of characters +whose width is to be calculated </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutStrokeLength</tt> + " function returns the width in pixels of the given character string in +the specified stroke font. Because the font is a stroke font, the width +of an individual character is a floating-point number. <i>Freeglut</i> + adds the floating-point widths and rounds the funal result to return the +integer value. Thus the return value may differ from the sum of the +character widths returned by a series of calls to "<tt>glutStrokeWidth</tt> + ". The width of nonexistent characters is counted to be the width +of an asterisk. </p> + + <p> If the string contains +one or more carriage returns, <i>freeglut</i> calculates the widths in pixels +of the lines separately and returns the largest width. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include this function. + </p> + + <h2> 14.10 glutStrokeHeight</h2> + The "<tt>glutStrokeHeight</tt>" function returns the height in pixels of + the specified font. + <p><b>Usage</b> </p> + + <p><tt>GLfloat glutStrokeHeight ( void *font +) ;</tt> </p> + + <p><tt>font + </tt>The stroke font to use in calculating +the character height </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutStrokeHeight</tt> + " function returns the height of a character in the specified stroke font. +The application programmer should note that, unlike the other <i>freeglut</i> + font functions, this one returns a floating-point number. The fonts +are designed such that all characters have (nominally) the same height. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include this function. + </p> + + <h1> 15.0 <a name="GeometricObject"></a> + Geometric Object Rendering Functions</h1> + <i>Freeglut</i> includes eighteen routines for generating easily-recognizable + 3-d geometric objects. These routines are effectively the same ones + that are included in the GLUT library, and reflect the functionality available + in the <i>aux</i> toolkit described in the <i>OpenGL Programmer's Guide</i> + . They are included to allow programmers to create with a single +line of code a three-dimensional object which can be used to test a variety +of OpenGL functionality. None of the routines generates a display list +for the object which it draws. The functions generate normals appropriate +for lighting but, except for the teapon functions, do not generate texture +coordinates. + <h2> 15.1 glutWireSphere, glutSolidSphere</h2> + The "<tt>glutWireSphere</tt>" and "<tt>glutSolidSphere</tt>" functions +draw a wireframe and solid sphere respectively. + + <p><b>Usage</b> </p> + + <p><tt>void glutWireSphere ( GLdouble dRadius, +GLint slices, GLint stacks ) ;</tt> </p> + + <p><tt>void glutSolidSphere ( GLdouble dRadius, +GLint slices, GLint stacks ) ;</tt> </p> + + <p><tt>dRadius + </tt>The desired radius of the sphere </p> + + <p><tt>slices + </tt>The desired number of slices (divisions +in the longitudinal direction) in the sphere </p> + + <p><tt>stacks + </tt>The desired number of stacks (divisions +in the latitudinal direction) in the sphere. The number of points in +this direction, including the north and south poles, is <tt>stacks+1</tt> + </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireSphere</tt>" and "<tt> + glutSolidSphere</tt>" functions render a sphere centered at the origin +of the modeling coordinate system. The north and south poles of the +sphere are on the positive and negative Z-axes respectively and the prime +meridian crosses the positive X-axis. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>None that we know of. </p> + + <h2> 15.2 glutWireTorus, glutSolidTorus</h2> + The "<tt>glutWireTorus</tt>" and "<tt>glutSolidTorus</tt>" functions draw + a wireframe and solid torus (donut shape) respectively. + + <p><b>Usage</b> </p> + + <p><tt>void glutWireTorus ( GLdouble dInnerRadius, +GLdouble dOuterRadius, GLint nSides, GLint nRings ) ;</tt> </p> + + <p><tt>void glutSolidTorus ( GLdouble dInnerRadius, +GLdouble dOuterRadius, GLint nSides, GLint nRings ) ;</tt> </p> + + <p><tt>dInnerRadius + </tt>The desired inner radius of the torus, +from the origin to the circle defining the centers of the outer circles </p> + + <p><tt>dOuterRadius + </tt>The desired outer radius of the torus, +from the center of the outer circle to the actual surface of the torus </p> + + <p><tt>nSides + </tt>The desired number of segments in a +single outer circle of the torus </p> + + <p><tt>nRings + </tt>The desired number of outer circles +around the origin of the torus </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireTorus</tt>" and "<tt> + glutSolidTorus</tt>" functions render a torus centered at the origin of +the modeling coordinate system. The torus is circularly symmetric about +the Z-axis and starts at the positive X-axis. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>None that we know of. </p> + + <h2> 15.3 glutWireCone, glutSolidCone</h2> + The "<tt>glutWireCone</tt>" and "<tt>glutSolidCone</tt>" functions draw +a wireframe and solid cone respectively. + + <p><b>Usage</b> </p> + + <p><tt>void glutWireCone ( GLdouble base, +GLdouble height, GLint slices, GLint stacks ) ;</tt> </p> + + <p><tt>void glutSolidCone ( GLdouble base, +GLdouble height, GLint slices, GLint stacks ) ;</tt> </p> + + <p><tt>base + </tt>The desired radius of the base of the +cone </p> + + <p><tt>height + </tt>The desired height of the cone </p> + + <p><tt>slices + </tt>The desired number of slices around +the base of the cone </p> + + <p><tt>stacks + </tt>The desired number of segments between +the base and the tip of the cone (the number of points, including the tip, +is <tt>stacks + 1</tt>) </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireCone</tt>" and "<tt> + glutSolidCone</tt>" functions render a right circular cone with a base +centered at the origin and in the X-Y plane and its tip on the positive Z-axis. +The wire cone is rendered with triangular elements. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>None that we know of. </p> + + <h2> 15.4 glutWireCube, glutSolidCube</h2> + The "<tt>glutWireCube</tt>" and "<tt>glutSolidCube</tt>" functions draw +a wireframe and solid cube respectively. + + <p><b>Usage</b> </p> + + <p><tt>void glutWireCube ( GLdouble dSize +) ;</tt> </p> + + <p><tt>void glutSolidCube ( GLdouble dSize +) ;</tt> </p> + + <p><tt>dSize + </tt>The desired length of an edge of the +cube </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireCube</tt>" and "<tt> + glutSolidCube</tt>" functions render a cube of the desired size, centered +at the origin. Its faces are normal to the coordinate directions. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>None that we know of. </p> + + <h2> 15.5 glutWireTetrahedron, glutSolidTetrahedron</h2> + The "<tt>glutWireTetrahedron</tt>" and "<tt>glutSolidTetrahedron</tt>" +functions draw a wireframe and solid tetrahedron (four-sided Platonic solid) +respectively. + <p><b>Usage</b> </p> + + <p><tt>void glutWireTetrahedron ( void ) +;</tt> </p> + + <p><tt>void glutSolidTetrahedron ( void +) ;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireTetrahedron</tt>" and +"<tt>glutSolidTetrahedron</tt>" functions render a tetrahedron whose corners +are each a distance of one from the origin. The length of each side +is 2/3 sqrt(6). One corner is on the positive X-axis and another is +in the X-Y plane with a positive Y-coordinate. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>None that we know of. </p> + + <h2> 15.6 glutWireOctahedron, glutSolidOctahedron</h2> + The "<tt>glutWireOctahedron</tt>" and "<tt>glutSolidOctahedron</tt>" functions + draw a wireframe and solid octahedron (eight-sided Platonic solid) respectively. + + <p><b>Usage</b> </p> + + <p><tt>void glutWireOctahedron ( void ) +;</tt> </p> + + <p><tt>void glutSolidOctahedron ( void ) +;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireOctahedron</tt>" and +"<tt>glutSolidOctahedron</tt>" functions render an octahedron whose corners +are each a distance of one from the origin. The length of each side +is sqrt(2). The corners are on the positive and negative coordinate +axes. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>None that we know of. </p> + + <h2> 15.7 glutWireDodecahedron, glutSolidDodecahedron</h2> + The "<tt>glutWireDodecahedron</tt>" and "<tt>glutSolidDodecahedron</tt> +" functions draw a wireframe and solid dodecahedron (twelve-sided Platonic +solid) respectively. + <p><b>Usage</b> </p> + + <p><tt>void glutWireDodecahedron ( void +) ;</tt> </p> + + <p><tt>void glutSolidDodecahedron ( void +) ;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireDodecahedron</tt>" and +"<tt>glutSolidDodecahedron</tt>" functions render a dodecahedron whose corners +are each a distance of sqrt(3) from the origin. The length of each +side is sqrt(5)-1. There are twenty corners; interestingly enough, +eight of them coincide with the corners of a cube with sizes of length 2. + </p> + + <p><b>Changes From GLUT</b> </p> + + <p>None that we know of. </p> + + <h2> 15.8 glutWireIcosahedron, glutSolidIcosahedron</h2> + The "<tt>glutWireIcosahedron</tt>" and "<tt>glutSolidIcosahedron</tt>" +functions draw a wireframe and solid icosahedron (twenty-sided Platonic solid) +respectively. + <p><b>Usage</b> </p> + + <p><tt>void glutWireIcosahedron ( void ) +;</tt> </p> + + <p><tt>void glutSolidIcosahedron ( void +) ;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireIcosahedron</tt>" and +"<tt>glutSolidIcosahedron</tt>" functions render an icosahedron whose corners +are each a unit distance from the origin. The length of each side is +slightly greater than one. Two of the corners lie on the positive and +negative X-axes. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>None that we know of. </p> + + <h2> 15.7 glutWireRhombicDodecahedron, +glutSolidRhombicDodecahedron</h2> + The "<tt>glutWireRhombicDodecahedron</tt>" and "<tt>glutSolidRhombicDodecahedron</tt> + " functions draw a wireframe and solid rhombic dodecahedron (twelve-sided + semi-regular solid) respectively. + <p><b>Usage</b> </p> + + <p><tt>void glutWireRhombicDodecahedron +( void ) ;</tt> </p> + + <p><tt>void glutSolidRhombicDodecahedron +( void ) ;</tt> </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireRhombicDodecahedron</tt> + " and "<tt>glutSolidRhombicDodecahedron</tt>" functions render a rhombic +dodecahedron whose corners are at most a distance of one from the origin. +The rhombic dodecahedron has faces which are identical rhombuses (rhombi?) +but which have some vertices at which three faces meet and some vertices at +which four faces meet. The length of each side is sqrt(3)/2. Vertices +at which four faces meet are found at (0, 0, <u>+</u>1) and (<u> +</u>sqrt(2)/2, + <u>+</u>sqrt(2)/2, 0). </p> + + <p><b>Changes From GLUT</b> </p> + + <p>GLUT does not include these functions. + </p> + + <h2> 15.10 glutWireTeapot, glutSolidTeapot</h2> + The "<tt>glutWireTeapot</tt>" and "<tt>glutSolidTeapot</tt>" functions +draw a wireframe and solid teapot respectively. + + <p><b>Usage</b> </p> + + <p><tt>void glutWireTeapot ( GLdouble dSize +) ;</tt> </p> + + <p><tt>void glutSolidTeapot ( GLdouble dSize +) ;</tt> </p> + + <p><tt>dSize + </tt>The desired size of the teapot </p> + + <p><b>Description</b> </p> + + <p>The "<tt>glutWireTeapot</tt>" and "<tt> + glutSolidTeapot</tt>" functions render a teapot of the desired size, centered +at the origin. This is the famous OpenGL teapot [add reference]. </p> + + <p><b>Changes From GLUT</b> </p> + + <p>None that we know of. </p> + + <h1> 16.0 <a name="GameMode"></a> + Game Mode Functions</h1> + + <h2> 16.1 glutGameModeString</h2> + + <h2> 16.2 glutEnterGameMode, glutLeaveGameMode</h2> + + <h2> 16.3 glutGameModeGet</h2> + + <h1> 17.0 <a name="VideoResize"></a> + Video Resize Functions</h1> + + <h2> 17.1 glutVideoResizeGet</h2> + + <h2> 17.2 glutSetupVideoResizing, +glutStopVideoResizing</h2> + + <h2> 17.3 glutVideoResize</h2> + + <h2> 17.4 glutVideoPan</h2> + + <h1> 18.0 <a name="ColorMap"></a> + Color Map Functions</h1> + + <h2> 18.1 glutSetColor, glutGetColor</h2> + + <h2> 18.2 glutCopyColormap</h2> + + <h1> 19.0 <a name="Miscellaneous"></a> + Miscellaneous Functions</h1> + + <h2> 19.1 glutIgnoreKeyRepeat, glutSetKeyRepeat</h2> + + <h2> 19.2 glutForceJoystickFunc</h2> + + <h2> 19.3 glutReportErrors</h2> + + <h1> 20.0 <a name="UsageNotes"></a> + Usage Notes</h1> + + <p> The following environment variables +are recognized by <i>freeglut</i>: </p> + <ul> + <li>DISPLAY - specifies a display name.<br> + </li> + <li>GLUT_FPS - specifies a time interval +(in milliseconds) for reporting framerate messages to stderr. For example, +if FREEGLUT_FPS is set to 5000, every 5 seconds a message will be printed +to stderr showing the current frame rate. The frame rate is measured by counting +the number of times glutSwapBuffers() is called over the time interval.</li> + <li>GLUT_ICON - specifies the icon that +goes in the upper left-hand corner of the <i>freeglut</i><i> </i>windows </li> + </ul> + <h1> 21.0 <a name="ImplementationNotes"></a> + Implementation Notes</h1> + +<h1> 22.0 <a name="GLUT_State"></a> +GLUT State</h1> + +<h1> 23.0 <a name="Freeglut.h_Header"></a> +"freeglut.h" Header File</h1> + + +<p> +Application programmers who are porting their GLUT programs to <i>freeglut</i> may continue +to include <tt><GL/glut.h></tt> in their programs. +Programs which use the <i>freeglut</i>-specific extensions to GLUT should include +<tt><GL/freeglut.h></tt>. One possible arrangement is as follows: +</p> + +<pre> +#ifdef FREEGLUT +#include <GL/freeglut_ext.h> +#else +#include <GL/glut.h> +#endif +</pre> + +<p> +Compile-time <i>freeglut</i> version testing can be done as follows: +</p> + +<pre> +#ifdef FREEGLUT_VERSION_2_0 + code specific to freeglut 2.0 or later here +#endif +</pre> + +<p> +In future releases, FREEGLUT_VERSION_2_1, FREEGLUT_VERSION_2_2, etc will +be defined. This scheme mimics OpenGL conventions. +</p> + +<p> +The <i>freeglut</i> version can be queried at runtime by calling +glutGet(GLUT_VERSION). +The result will be X*10000+Y*100+Z where X is the major version, Y is the +minor version and Z is the patch level. +</p> +<p> +This may be used as follows: +</p> + +<pre> +if (glutGet(GLUT_VERSION) < 20001) { + printf("Sorry, you need freeglut version 2.0.1 or later to run this program.\n"); + exit(1); +} +</pre> + + + +<h1> 24.0 <a name="References"></a> +References</h1> + +<h1> 25.0 <a name="Index"></a> +Index</h1> + +<p> <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + </p> + + </body> + </html> diff --git a/SixenseSDK/src/sixense_simple3d/doc/index.html b/SixenseSDK/src/sixense_simple3d/doc/index.html new file mode 100755 index 0000000..d511a9b --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/index.html @@ -0,0 +1,101 @@ +<html> +<head> +<title>The freeglut project</title> +</head> +<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" alink="#FF0000"> + +<table> +<tr> +<td> + +<center><img SRC="freeglut_logo.png" ALT="The freeglut logo"></center> +<center><i><font size=+1> The free OpenGL utility toolkit </font></i></center> + +</td> +<td> + +<center><a href="http://sourceforge.net"> +<img src="http://sourceforge.net/sflogo.php?group_id=0&type=1" border="0"> +</a></center><br> +<center><i>Hosted at SourceForge</i></center> +</td> +</tr> +</table> + +<hr> + +<ul> + +<li><b><font size=+2>What</font></b> +<p> +freeglut is a completely OpenSourced alternative to the OpenGL Utility +Toolkit (GLUT) library. GLUT was originally written by Mark Kilgard +to support the sample programs in the second edition OpenGL 'RedBook'. +Since then, GLUT has been used in a wide variety of practical applications +because it is simple, universally available and highly portable. +<p> +GLUT (and hence freeglut) allows the user to create and manage +windows containing OpenGL contexts on a wide range of platforms and +also read the mouse, keyboard and joystick functions. +<p> +freeglut is released under the X-Consortium license. +<p> + +<li><b><font size=+2>Why</font></b> +<p> +The original GLUT library seems to have been abandoned with the most +recent version (3.7) dating back to August 1998. It's license does +not allow anyone to distribute modified the library code. This would +be OK, if not for the fact that GLUT is getting old and really needs +improvement. Also, GLUT's license is incompatible with some software +distributions (eg Xfree86). +<p> + +<li><b><font size=+2>Who</font></b> +<p> +freeglut was originally written by Pawel W. Olszta with contributions +from Andreas Umbach and Steve Baker. Steve is now the official +owner/maintainer of freeglut. +<p> + +<li><b><font size=+2>When</font></b> +<p> +Pawel started freeglut development on December 1st, 1999. +The project is now a virtually 100% replacement for the original +GLUT with only a few departures (such as the abandonment of SGI-specific +features such as the Dials&Buttons box and Dynamic Video Resolution). +<p> + +<li><b><font size=+2>Downloads</font></b> +<p> +Check the <a href="download.html"> +downloads page</a> for the latest release. +<p> + +<li><b><font size=+2>Support</font></b> +<p> +Send freeglut related questions to the appropriate freeglut mailing list: +<ul> +<li><a href="mailto:freeglut-developer@lists.sourceforge.net">freeglut-developer</a>, +<li><a href="mailto:freeglut-announce@lists.sourceforge.net">freeglut-announce</a> and +<li><a href="mailto:freeglut-bugs@lists.sourceforge.net">freeglut-bugs</a>. +</ul> +You can subscribe to them via the + <a href="http://sourceforge.net/project/?group_id=1032"> +SourceForge project interface</a>. +<p> + +<li><b><font size=+2>Documentation</font></b> +<p> +I believe this is enough for a short introduction. +If you are not tired of reading yet, check out the +<a href="freeglut.html">freeglut project log</a>. Here you will find the +yet-to-be-introduced new project <a href="structure.html">structure +description</a>. Finally, here you will find the latest +<a href="progress.html">work progress report</a>. Since freeglut is +a re-implementation of the original GLUT API, you can find API +documentation at <A HREF="http://www.opengl.org">http://www.opengl.org</A>. +<p> +</ul> +</body></html> + diff --git a/SixenseSDK/src/sixense_simple3d/doc/ogl_sm.png b/SixenseSDK/src/sixense_simple3d/doc/ogl_sm.png Binary files differnew file mode 100755 index 0000000..80baefc --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/ogl_sm.png diff --git a/SixenseSDK/src/sixense_simple3d/doc/progress.html b/SixenseSDK/src/sixense_simple3d/doc/progress.html new file mode 100755 index 0000000..8a84483 --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/progress.html @@ -0,0 +1,137 @@ +<!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 development progress reports"> + <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 love reports. They are so full of brightness and hope... +</font></font></i></dt></center> + +<center><table WIDTH="620" ><tr><td><hr WIDTH="100%"> + +<p><i>January the 16th, 2000</i> + +<p>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 :) + +<br><ul><li><b><font size=+2>input devices</font></b></li> + +<p>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. + +<p>None of the bizarre input devices found in GLUT API is supported (and probably won't). + +<p>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). + +<br><br><li><b><font size=+2>pull-down menus</font></b></li> + +<p>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. + +<br><br><li><b><font size=+2>fonts</font></b></li> + +<p>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. + +<p>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. + +<p>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. + +<p>Added two new API calls: glutBitmapHeight() and glutStrokeHeight(), that return +a font's height. Hope this doesn't break the GLUT compatibility a lot. + +<br><br><li><b><font size=+2>mouse cursor</font></b></li> + +<p>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. + +<br><br><li><b><font size=+2>indexed color mode</font></b></li> + +<p>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?) + +<br><br><li><b><font size=+2>planes</font></b></li> + +<p>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. + +<p>Layers would be good for drawing the menus and mouse cursor, as they wouldn't force +the application redraw to update their state. + +<br><br><li><b><font size=+2>init display string</font></b></li> + +<p>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... + +<br><br><li><b><font size=+2>game mode</font></b></li> + +<p>Is the game mode string parsed correctly? + +<br><br><li><b><font size=+2>geometry</font></b></li> + +<p>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. + +<br><br><li><b><font size=+2>obvious bugs</font></b></li> + +<br><br><ol> +<li> +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.</li> + +<li> +GLX 1.3 spec states that glXChooseVisual() et consortes are deprecated. Should move to +glXFBConfig.</li> + +<li> +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...</li> + +<li> +I was told it is wrong to have the redisplay forced in the main loop. Is that right?</li> + +</ol><br><li><b><font size=+2>not so obvious bugs</font></b></li> + +<br><br><ol> +<li>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. + +<p>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</li> + +</ol></ul> + +<a href="index.html"><i>Back to the main page</i></a> + +</table></center></body></html> + diff --git a/SixenseSDK/src/sixense_simple3d/doc/structure.html b/SixenseSDK/src/sixense_simple3d/doc/structure.html new file mode 100755 index 0000000..a460567 --- /dev/null +++ b/SixenseSDK/src/sixense_simple3d/doc/structure.html @@ -0,0 +1,80 @@ +<!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> + |