Purpose: Doris provides Lua bindings for OpenGL, GLUT and GLUI.
Copyright (c) 2001-2009 Nick Trout.
License: GNU GPL. See http://www.gnu.org/ & LICENSE.txt.
Developer info: http://sourceforge.net/apps/trac/doris
See http://sourceforge.net/project/showfiles.php?group_id=38461 for more
details on changes and latest files. See implementation notes below change
1.1 - "Remote Doris" support. Lua 5.0.2 & GLUI integration.
* New Lua version 5.0.2 included (just bug fixes, no new features).
* GLUT replaced with FreeGLUT (2.40) (see details below).
* GLUI 2.2 added to Doris project. GLUT is only external dependency now.
- Reverted the major GLUI refactoring due to bugs.
- Thanks to BaconTastesGood for the work, but no time to fix problems.
* Network listener support added using Luasocket.
- See the nettalk.lua and netlisten.lua examples for more details.
* Better error reporting for syntax errors (_TRACEBACK).
* Vector dot product fixed.
* LHFs lpack library added to help deal with binary data. See lpack.c.
* JPEG loading supported added (see notes below).
* Source code location can be set with DORIS_SOURCE in development mode.
* GLUI makefile removed from readme as no longer needed.
* Source lib tars now kept in src/libsrc for ease.
* Updated tolua++ to version 1.0.6.
* Added tolua++, luac and bin2c win32 executables to CVS for ease.
1.0 - Lua 5.0 and toLua++ 5.
* Lua language upgraded to Lua 5.0.
* toLua binding generator upgraded to toLua 5.0 alpha.
* ...then upgraded to toLua++ 5.0 v1.2 as toLua discontinued.
* Scripts (examples & wrappers) updated to Lua 5.0.
* Breakout game added (but unfinished).
0.5 - Beta build. Untested on platforms besides Windows and Cygwin.
* Updated to Lua 4.0.1.
* Fixed make klean to delete all source for clean CVS get latest.
* Image integrated with gllbuffer to provide texture support.
* GL binding updated to include gllbuffer functionality.
* Added idle, drag, move and key callbacks. See callback.lua example.
* Listboxs can now handle item maps of any type (previously just numbers).
* Added texture.lua & texgen.lua examples.
* Added -f option to command line for extra args.
* Added selfdoc documentation system. Current features are:
- Preprocesses code and uses simple Lua format for commenting.
- Generates content list and groups contents.
- Simple tag formating @Tcode@t @Bbold@b @Iitalics@i
- Parses parameters and makes list.
- Current formatted output only in HTML.
- Scans --! and //! comments so suitable for Lua, toLua and C/C++.
* GNU license details added and copyright notices attached to files as
* Fixed a few of cygwin compile problems. eg. GLU defines and CFLAGS.
* Render class renamed Quadric.
0.4 - Tidying up - previous releases were a bit scrappy.
* Added image support. Currently only supports TGA, a nice simple format.
Dont really want to add dependencies to image libraries.
* Added makefiles for *nix. This was done with Cygwin under Windows, not
tested under *nix system. Should be able to just "make all" from root.
* Removed any C++ hangover code in Lua so gcc doesnt complain.
* Few minor bug fixes.
* Commented more of the code.
* Credited authors for Lua!
* More example scripts & enhanced existing scripts.
* Title window text tag now "title".
* _DEVELOP helper scripts called from Doris not script.
* Scripts clear screen rather than Window.
0.3 - Adding functionality and fixing bugs.
* Fixed matrix bugs and made API more friendly.
* Added eg/hierarchy.lua example.
0.2 - First executable released - not all scripts work.
* Moved over to GLUI 2.1 beta which fixes some bugs.
* Please use GLUT 3.7.6 as 3.7.5 has freeze and exit bugs.
0.1 - Up and running.
You will need GLUT and GLUI. All of the code necessary for Lua and generating
the bindings is included in the source code here.
Please note: if you have earlier versions than these you may get problems with
newer video cards (ie. I had problems with pre GLUT 3.7.6 and GeForce3).
<< Doris >>
Latest code: http://sourceforge.net/project/showfiles.php?group_id=38461
<< FreeGLUT >>
Doris and GLUI now use FreeGLUT instead of GLUT. GLUI is no longer maintained
and has a strange distro license (can't alter code!). FreeGLUT fixes some
issues that GLUT has as well (e.g. returning from main loop).
Unpack into src directory in "freeglut" directory from src/libsrc.
Links as static library to avoid DLL distribution problems.
<< GLUI >>
GLUI has now been integrated into the Doris project. Development of GLUI
seems to have slowed and it would be nice to tidy some aspects of it up.
These changes will hopefully be integrated back into the original GLUI(s).
The Doris binding is compatible with GLUI 2.1 and 2.2.
SF user BaconTastesGood did refactor GLUI to try and add themes and double
buffered rendering but the tolua package files were not maintained and there
were some bugs which caused frame jittering. You can see this code by getting
on the label "PRE_REMOTE_DORIS".
GLUI details: The following is a GLUI fork/cleanup:
GLUI 2.2 - http://sourceforge.net/projects/glui/
The following is the original GLUI distribution:
GLUI 2.1 - http://www.cs.unc.edu/~rademach/glui/
<< Luasocket >>
Network support was added using Luasocket. This is currently linked
as a static library although is supposed to be a 5.1 style dynamically
linked library. This will probably change in a future version.
<< JPEG >>
JPEG loading support is provided by way of the IJG JPEG library code. This
can be found at http://www.ijg.org/. See the readme.txt in the src/jpeg
directory of Doris.
<< MSVC Notes >>
There are .dsw and .dsp project files for MSVC6 in the Doris root.
All code for Doris should be included in the project.
<< *nix/Cygwin >>
There are makefiles for *nix and Cygwin. They have all been modified so that
you can just "make all" from the Doris root directory.
<< Creating the bindings >>
The tl.bat batch file (in doris/src) creates the toLua bindings. First you must
build dtolua. Run tl so see the options.
ie. the wrapper/helper scripts do not need to be included as they are included
dorisgui.lua is a wrapper script for GLUI to make it easier to use.
render.lua is some miscellaneous helpers for OpenGL.
The bin directory zips up for distribution. It contains all docs and examples etc.
I use UPX to compress the executable.
Hope Doris is of some use and you have fun using it,
Nick (trout AT users sf net)