File: TinyGL.html

package info (click to toggle)
vreng 1.6.3-3
  • links: PTS
  • area: main
  • in suites: potato
  • size: 2,400 kB
  • ctags: 3,097
  • sloc: ansic: 15,988; sh: 1,845; perl: 1,330; makefile: 59
file content (141 lines) | stat: -rw-r--r-- 4,595 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<TITLE> TinyGL : a Small, Free and Fast Subset of OpenGL* </TITLE>

<H1> <CENTER> TinyGL : a Small, Free and Fast Subset of OpenGL* </CENTER> </H1>

<H2> Download </H2>

Get it: <A HREF="ftp://ftp.enst.fr/pub/mbone/vreng/TinyGL-0.1.tar.gz"> TinyGL-0.1.tar.gz </A>

<H2> Introduction </H2>

TinyGL is intended to be a very small implementation of a subset of <A
HREF="http://www.opengl.org"> OpenGL </A> * for embedded systems or
games. It is a software only implementation. Only the main OpenGL
calls are implemented. All the calls I considered not important are
simply <I>not implemented</I>.
<P>

The main strength of TinyGL is that it is fast and simple because it
has not to be exactly compatible with OpenGL. In particular, the
texture mapping and the geometrical transformations are very
fast. TinyGL is a lot faster than Mesa or the software Solaris OpenWin
OpenGL implementation for the <A HREF="http://www.infres.enst.fr/net/vreng">
VReng Virtual Reality engine </A> for example.

<P>
The main features of TinyGL are:
<UL>
<LI> Header compatible with OpenGL (the headers are adapted from the very
good <A HREF="http://www.ssec.wisc.edu/~brianp/Mesa.html"> Mesa </A>
by Brian Paul et al.)

<LI> Zlib-like licence for easy integration in commercial designs (read
the LICENCE file).

<LI> Subset of GLX for easy testing with X Window.

<LI> OpenGL like lightening.

<LI> Complete OpenGL selection mode handling for object picking.

<LI> 16 bit Z buffer. 16 bit RGB display. High speed dithering to
paletted 8 bits if needed.

<LI> Fast Gouraud shadding optimized for 16 bit RGB.

<LI> Fast texture mapping capabilities, with perspective correction and
texture objects.

<LI> 32 bit float only arithmetic.

<LI> Very small: compiled code size of about 40 kB on x86.

<LI> C sources for GCC on 32 bit architectures. It has been tested
succesfully on x86-Linux and sparc-Solaris.

</UL>

<H2> Architecture </H2>

TinyGL is made up four main modules:
<UL>
<LI> Mathematical routines (zmath).

<LI> OpenGL-like emulation (zgl).

<LI> Z buffer and rasterisation (zbuffer).

<LI> GLX interface (zglx).
</UL>

To use TinyGL in an embedded system, you should look at the GLX layer
and modify it to suit your need. Adding a more user friendly
developper layer (as in Mesa) may be useful.

<H2>Why ?</H2>

TinyGL was developped as a student project for a Virtual Reality
network system called VReng (see the <A
HREF="http://www.infres.enst.fr/net/vreng"> VReng home page </A> ).
<P>
At that time (January 1997), my initial project was to write my own 3D
rasterizer based on some old sources I wrote. But I realized that it
would be better to use OpenGL to work on any platform. My problem was
that I wanted to use texture mapping which was (and is still) quite
slower on many software OpenGL implementation. I could have modified
Mesa to suit my needs, but I really wanted to use my old sources for
that project. 
<P>
I finally decided to use the same syntax as OpenGL but with my own
libraries, thinking that later it could ease the porting of VReng to
OpenGL.
<P>
Now VReng is at last compatible with OpenGL, and I managed to patch
TinyGL so that VReng can still work with it without any modifications.
<P>
Since TinyGL may be useful for some people, especially in the world of
embedded designs, I decided to release it 'as is', otherwise, it would
have been lost on my hard disk !

<H2>Links</H2>
<UL>
<LI>The <A HREF="http://www.ssec.wisc.edu/~brianp/Mesa.html"> Mesa </A> 3D
Graphics Library.

<LI> The <A HREF="http://www.opengl.org"> OpenGL </A> site.

<LI> The <A HREF="http://www.infres.enst.fr/net/vreng">VReng</A> Virtual
Reality engine.

</UL>

<HR>

<TABLE CELLSPACING=0 CELLPADDING=0 NOSAVE >

<TR ALIGN=CENTER VALIGN=BASELINE NOSAVE>

<TD NOSAVE><A HREF="http://www.anybrowser.org/campaign/"><IMG SRC="logos/anybrowser3.gif" ALT="anybrowser" NOSAVE BORDER=0 HEIGHT=30 WIDTH=88></A></TD>

<TD><A HREF="http://www.linux.org/"><IMG SRC="logos/linux.gif" ALT="www.linux.org" NOSAVE BORDER=0 HEIGHT=31 WIDTH=88></A></TD>

<TD NOSAVE><A HREF="http://www.opengl.org"><IMG SRC="logos/opengl.jpg" ALT="www.opengl.org" NOSAVE BORDER=0 HEIGHT=30 WIDTH=90></A></TD>

<TD NOSAVE><A HREF="http://slashdot.org"><IMG SRC="logos/slashdot.gif" ALT="slashdot.org" NOSAVE BORDER=0 HEIGHT=30 WIDTH=88></A></TD>

</TR>

</TABLE>

<HR>

* OpenGL(R) is a registered trademark of Silicon Graphics, Inc.

<HR>
If you have any questions or suggestions, write to <A
HREF="mailto:bellard@email.enst.fr">bellard@email.enst.fr</A> 
<P>

<A HREF="."> [Back to my home page] </A>

<H5> last update: May 26, 1998 </H5>