Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
RenderOGL Software Package | ||||||||
Line: 68 to 68 | ||||||||
If you want to learn more about tmk , or need to edit a TMakefile (you typically won't have to in the first while),
please have a look at the documentation![]() | ||||||||
Added: | ||||||||
> > | More links: | |||||||
RenderOGL Documentation |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
RenderOGL Software Package | ||||||||
Line: 42 to 42 | ||||||||
You will also have to install tmk (see next section). I can give you some advice on this, just ask. | ||||||||
Deleted: | ||||||||
< < |
Compiling with TMK | |||||||
Added: | ||||||||
> > | Compiling with TMK | |||||||
To generate executables, we use an elegant Tcl-based make utility called tmk![]() tmk is that makefiles should be as simple and platform independent as possible. With tmk , the whole burden of platform-dependent specifications is placed on the maintainer of the tcl installation (me), not on the programmer using it. A tmk Makefile (called TMakefile) is for that reason usually only about 1-5 lines long. |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
RenderOGL Software Package | ||||||||
Line: 23 to 23 | ||||||||
> svn co file:///imager/project/ModelingAndRendering/SVNRepository/RenderOGL![]() | ||||||||
Added: | ||||||||
> > | Note: SVN path now moved to the following (need to confirm this is the latest one):
> svn co file:///ubc/cs/research/imager/project/psm/SVNRepository/RenderOGL | |||||||
For this, however, you need to be a member of the UNIX group heidrich . Please talk to me if you aren't.
This will generate a subdirectory containign the code of the project. Please read the man page of Subversion (svn) to learn how to merge your changes back into the repository. NOTE: other people are relying on RenderOGL to do their research. Please do only submit tested code! Make sure you don't break other people's work! |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
RenderOGL Software Package | ||||||||
Line: 17 to 17 | ||||||||
Packages to check out | ||||||||
Changed: | ||||||||
< < | You need two different projects from the Subversion Repository to get started:
| |||||||
> > | You need to check out the project from the Subversion Repository to get started. You can get your own copy of the code by using the following command: | |||||||
Deleted: | ||||||||
< < | > svn co file:///imager/project/ModelingAndRendering/SVNRepository/OGLutil![]() | |||||||
> svn co file:///imager/project/ModelingAndRendering/SVNRepository/RenderOGL![]() For this, however, you need to be a member of the UNIX group heidrich . Please talk to me if you aren't. | ||||||||
Changed: | ||||||||
< < | IMPORTANT: you need to issue these two commands in the same directory (I use ~/Projects)! This will generate two subdirectories,one for each of the two projects. Please read the man pages of CVS to learn how to merge your changes back into the repository. NOTE: other people are relying on RenderOGL to do their research. Please do only submit tested code! Make sure you don't break other people's work! | |||||||
> > | This will generate a subdirectory containign the code of the project. Please read the man page of Subversion (svn) to learn how to merge your changes back into the repository. NOTE: other people are relying on RenderOGL to do their research. Please do only submit tested code! Make sure you don't break other people's work! | |||||||
Working from home | ||||||||
Changed: | ||||||||
< < | If you would like to work from home or on your laptop, you can do that (provided you run Linux or MacOS X) by issuing the following commands | |||||||
> > | If you would like to work from home or on your laptop, you can do that (provided you run Linux or MacOS X) by issuing the following command | |||||||
Deleted: | ||||||||
< < | > svn co svn+ssh:// | |||||||
> svn co svn+ssh:// | ||||||||
Line: 54 to 44 | ||||||||
To generate executables, we use an elegant Tcl-based make utility called tmk![]() tmk is that makefiles should be as simple and platform independent as possible. With tmk , the whole burden of platform-dependent specifications is placed on the maintainer of the tcl installation (me), not on the programmer using it. A tmk Makefile (called TMakefile) is for that reason usually only about 1-5 lines long.
In the simplest mode of operation, tmk only needs to be told in the TMakefile, which subdirectories there are, | ||||||||
Changed: | ||||||||
< < | and which programming language to deal with in the individual directories. In the case of OGLutil and RenderOGL, that is C++. Tmk will automatically traverse the subdirectories, compile all C++ files it finds, and put the resulting files into a shared library, one for each subdirectory. The only files that do NOT get put into these libraries are those which contain a main function. These files are also compiled, but then they are then linked with the previously generated library to form an executable. | |||||||
> > | and which programming language to deal with in the individual directories. In the case of RenderOGL, that is C++. Tmk will automatically traverse the subdirectories, compile all C++ files it finds, and put the resulting files into a shared library, one for each subdirectory. The only files that do NOT get put into these libraries are those which contain a main function. These files are also compiled, but then they are then linked with the previously generated library to form an executable. | |||||||
In order to allow for binary versions for multiple platforms to be around at the same time, tmk puts everything it
generates into subdirectories that are called like the current OS release. For example, on a SuSE Linux Version 9.1, the debug version would be put into a directory called SuSE9.1 , while the version with maximum optimization
would be put into SuSE9.1_max . | ||||||||
Changed: | ||||||||
< < | In order to compile the two projects OGLutil and RenderOGL, you have to issue the following command sequence: | |||||||
> > | In order to compile the two projects RenderOGL, you have to issue the following command sequence: | |||||||
> use tmk # put tmk in your path - you can do this in your .cshrc, but then use the options "-fq" | ||||||||
Changed: | ||||||||
< < | > cd OGLutil #do this project before RenderOGL! > tmk > cd ../RenderOGL | |||||||
> > | > cd RenderOGL # change into the project's root directory | |||||||
> tmk |
Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Added: | ||||||||
> > |
RenderOGL Software PackageThis page contains a little primer for getting started with the RenderOGL project. It contains the following sections:
Subversion RepositoryThe RenderOGL project is kept in a Subversion Repository. Subversion![]() Packages to check outYou need two different projects from the Subversion Repository to get started:
> svn co file:///imager/project/ModelingAndRendering/SVNRepository/OGLutil > svn co file:///imager/project/ModelingAndRendering/SVNRepository/RenderOGLFor this, however, you need to be a member of the UNIX group heidrich . Please talk to me if you aren't.
IMPORTANT: you need to issue these two commands in the same directory (I use ~/Projects)!
This will generate two subdirectories,one for each of the two projects. Please read the man pages of CVS to learn
how to merge your changes back into the repository. NOTE: other people are relying on RenderOGL to do their research. Please do only submit tested code! Make sure you don't break other people's work!
Working from homeIf you would like to work from home or on your laptop, you can do that (provided you run Linux or MacOS X) by issuing the following commands> svn co svn+ssh://<username>@cascade.cs.ubc.ca/imager/project/ModelingAndRendering/SVNRepository/OGLutil > svn co svn+ssh://<username>@cascade.cs.ubc.ca/imager/project/ModelingAndRendering/SVNRepository/RenderOGLYou will also have to install tmk (see next section). I can give you some advice on this, just ask.
Compiling with TMKTo generate executables, we use an elegant Tcl-based make utility called tmk![]() tmk is that makefiles should be as simple and platform independent as possible. With tmk , the whole burden of platform-dependent specifications is placed on the maintainer of the tcl installation (me), not on the programmer using it. A tmk Makefile (called TMakefile) is for that reason usually only about 1-5 lines long.
In the simplest mode of operation, tmk only needs to be told in the TMakefile, which subdirectories there are,
and which programming language to deal with in the individual directories. In the case of OGLutil and RenderOGL, that is C++. Tmk will automatically traverse the subdirectories, compile all C++ files it finds, and put the resulting files into a shared library, one for each subdirectory. The only files that do NOT get put into these libraries are those which contain a main function. These files are also compiled, but then they are then linked with the previously generated library to form an executable.
In order to allow for binary versions for multiple platforms to be around at the same time, tmk puts everything it
generates into subdirectories that are called like the current OS release. For example, on a SuSE Linux Version 9.1, the debug version would be put into a directory called SuSE9.1 , while the version with maximum optimization
would be put into SuSE9.1_max .
In order to compile the two projects OGLutil and RenderOGL, you have to issue the following command sequence:
> use tmk # put tmk in your path - you can do this in your .cshrc, but then use the options "-fq" > cd OGLutil #do this project before RenderOGL! > tmk > cd ../RenderOGL > tmkIf you call tmk with the option -max , you will generate a maximum optimized version for the current platform,
rather than a debug version.
If you want to learn more about tmk , or need to edit a TMakefile (you typically won't have to in the first while),
please have a look at the documentation![]() RenderOGL DocumentationRenderOGL is a code base that expands over time, and includes a lot of individual research pojects. There is a core base of of classes in a handful of subdirectories. These are used in virtually all projects. Then there are project specific subdirectories which are usually of no concern to anybody not working in that project. Major changes in the core classes should always be discussed with me prior to their introduction. The core directories are:
![]() ![]() > use doxygen > cd RenderOGL/doc > tmk Coding StyleHere are some general guidelines for code devlopment in RenderOGL. Please follow these as closely as you can, since it makes the code much more readable if everybody uses the same style.
Editor fun...If you don't already have a favourite UNIX editor, you should probably use emacs. If configured correctly (see below), this will make your life much easier in the long run! If you are running emacs, but haven't configured it much, you may want to consider copying my .emacs file (~heidrich/.emacs) to your home directory. It contains a number of useful settings that simplify code development. If you have your own, highly customized version of emacs, you should at least consider adding the following piece of code to your .emacs file. It takes care of the correct indentation pattern:(custom-set-variables '(c-offsets-alist (quote ((inline-open . 0) (knr-argdecl-intro . 5) (statement-case-open . +) (substatement-open . 0) (label . 0) (arglist-intro . c-lineup-arglist-intro-after-paren) (arglist-close . c-lineup-arglist)))))Of course you are also free to use any other editor you like, but then you will have to watch out for the indentation yourself. -- WolfgangHeidrich - 13 Jul 2006 |