AminetAminet
Search:
82123 packages online
About
Recent
Browse
Search
Upload
Setup
Services

dev/lib/libTinyGL.lha

Mirror:Random
Showing:m68k-amigaosgeneric
No screenshot available
Short:TinyGL
Author:Norbert Kett <anchor at rocketmail.com>
Uploader:Norbert Kett <anchor rocketmail com>
Type:dev/lib
Version:0.6
Architecture:m68k-amigaos
Date:2017-03-07
Download:http://aminet.net/dev/lib/libTinyGL.lha - View contents
Readme:http://aminet.net/dev/lib/libTinyGL.readme
Downloads:282
DESCRIPTION

TinyGL 0.4 (c) 1997-2002 Fabrice Bellard.
TinySDGL 0.5, 2005 a port to libSDL by Gerald Franz (gfz at o2online.de).
TinyGL 0.6, 2017 Norbert Kett (anchor at rocketmail.com)

TinyGL is intended to be a very small implementation of a subset of
OpenGL 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 *not implemented*.

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.

The main features of TinyGL are:

- Header compatible with OpenGL (gl.h is simply copied from Mesa 12.0)

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

- SDL based platform independent examples that show TinyGL usage.
  (http://www.libsdl,org)

- OpenGL like lighting. (see tgl_light.c for more info)

- 16 bit Z buffer. 16/24/32 bit RGB rendering. High speed dithering to
paletted 8 bits if needed. High speed conversion to 24 bit packed
pixel or 32 bit RGBA if needed.

- Fast Gouraud shading optimized for 16 bit RGB.

- Fast texture mapping capabilities, with perspective correction and
texture objects.

- 32 bit float only arithmetic.

- Very small size. The file tgl_zbuffer.h can be used to remove
  some unused features from TinyGL.

- C sources for GCC on 32/64 bit architectures. It has been tested
successfully on Windows and AmigaOS3.1.

- GLQuake is working fine now with TinyGL.

EXAMPLES

I took three simple examples from the Mesa package to test the main
functions of TinyGL. You can link them to either TinyGL, Mesa or any
other OpenGL implementation. If you want to run the precompiled
examples, please make sure the SDL.library is installed. (SDL uses
RTG and AHI)

NOTES

- some pixel format combinations seems not to work correctly.

- Lightening is not produces correct colors. I replaced it with a fake
but very quick light calculation until its not fixed.

- No user clipping planes are supported.

- No color index mode (no longer useful, but some related code are kept)

- The mipmapping is not implemented.

- The perspecture correction in the mapping code does not use W but
1/Z. In any 'normal scene' it should work.

WHY?

Fabrice Bellard:
TinyGL was developed as a student project for a Virtual Reality
network system called VReng (see the VReng home page at
http://www-inf.enst.fr/vreng).

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. 

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.

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.

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 !

Norbert Kett:
In 2017 I found this lib, and started to work with. I strongly reorganized
the code, fixed many issues, removed some unused functions, and added many
new features. Now it works with GLQuake. The pixel blending is still missing.
My goal is to make a nice and fast OpenGL lib for Vampire cards :)

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


Contents of dev/lib/libTinyGL.lha
PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
-rw-rw-rw- ancho/0        1994    4101  48.6% -lh5- c5cd Mar  7 02:55 libTinyGL.readme
-rw-rw-rw- ancho/0        1088    2236  48.7% -lh5- f258 Mar  7 02:30 libTinyGL/changelog
drw-rw-rw- ancho/0           0       0 ****** -lhd- 0000 Mar  7 02:56 libTinyGL/examples/
-rwxrwxrwx ancho/0        2705    8789  30.8% -lh5- d1ef Mar  7 02:04 libTinyGL/examples/gears.c
-rw-rw-rw- ancho/0         692    1327  52.1% -lh5- 1e1f Mar  6 10:31 libTinyGL/examples/gears.make
-rw-rw-rw- ancho/0       95588  219744  43.5% -lh5- 01ed Mar  7 01:14 libTinyGL/examples/gears68k
-rwxrwxrwx ancho/0        2133    5697  37.4% -lh5- f89f Mar  7 02:03 libTinyGL/examples/texobj.c
-rw-rw-rw- ancho/0         695    1329  52.3% -lh5- 6dcf Mar  7 01:30 libTinyGL/examples/texobj.make
-rw-rw-rw- ancho/0       93209  210004  44.4% -lh5- bbba Mar  7 01:31 libTinyGL/examples/texobj68k
-rwxrwxrwx ancho/0        1485    3336  44.5% -lh5- 7435 Mar  7 02:03 libTinyGL/examples/triangle.c
-rw-rw-rw- ancho/0         694    1333  52.1% -lh5- f844 Mar  7 00:23 libTinyGL/examples/triangle.make
-rw-rw-rw- ancho/0       92793  209332  44.3% -lh5- d1a1 Mar  7 01:12 libTinyGL/examples/triangle68k
drw-rw-rw- ancho/0           0       0 ****** -lhd- 0000 Mar  7 02:56 libTinyGL/lib/
-rw-rw-rw- ancho/0       28616   70852  40.4% -lh5- 93b5 Mar  7 00:14 libTinyGL/lib/libTinyGL.a
-rw-rw-rw- ancho/0         529    1012  52.3% -lh5- ceff Mar  7 02:09 libTinyGL/license
drw-rw-rw- ancho/0           0       0 ****** -lhd- 0000 Mar  7 02:56 libTinyGL/src/
drw-rw-rw- ancho/0           0       0 ****** -lhd- 0000 Mar  7 02:56 libTinyGL/src/TGL/
-rw-rw-rw- ancho/0       14512   80615  18.0% -lh5- 4b38 Jan 17  2016 libTinyGL/src/TGL/gl.h
-rw-rw-rw- ancho/0         623    1167  53.4% -lh5- f0e6 Mar  6 09:42 libTinyGL/src/makefile.os3
-rw-rw-rw- ancho/0        3143    9558  32.9% -lh5- 0a56 Mar  7 00:43 libTinyGL/src/tgl.h
-rwxrwxrwx ancho/0         856    2746  31.2% -lh5- c7f5 Mar  2 20:42 libTinyGL/src/tgl_api.c
-rwxrwxrwx ancho/0         972    3665  26.5% -lh5- f622 Mar  6 07:50 libTinyGL/src/tgl_arrays.c
-rwxrwxrwx ancho/0        1117    2639  42.3% -lh5- d7ef Mar  6 08:01 libTinyGL/src/tgl_bitmap.c
-rwxrwxrwx ancho/0         202     438  46.1% -lh5- d2fd Mar  1 01:54 libTinyGL/src/tgl_blend.c
-rwxrwxrwx ancho/0         314     695  45.2% -lh5- 6089 Mar  1 04:04 libTinyGL/src/tgl_clear.c
-rwxrwxrwx ancho/0        2972   10777  27.6% -lh5- ebc1 Mar  6 10:14 libTinyGL/src/tgl_clip.c
-rwxrwxrwx ancho/0        1516    3473  43.7% -lh5- 98c2 Mar  1 08:16 libTinyGL/src/tgl_dither.c
-rwxrwxrwx ancho/0         844    2811  30.0% -lh5- 5992 Mar  6 08:07 libTinyGL/src/tgl_enable.c
-rwxrwxrwx ancho/0         678    2129  31.8% -lh5- cb7e Mar  2 20:41 libTinyGL/src/tgl_get.c
-rwxrwxrwx ancho/0        1011    3514  28.8% -lh5- 4b04 Mar  6 08:23 libTinyGL/src/tgl_image_util.c
-rwxrwxrwx ancho/0        1446    4211  34.3% -lh5- 3e92 Mar  6 08:10 libTinyGL/src/tgl_init.c
-rwxrwxrwx ancho/0        2465    7935  31.1% -lh5- fe06 Mar  6 23:46 libTinyGL/src/tgl_light.c
-rwxrwxrwx ancho/0         575    1832  31.4% -lh5- b25a Mar  1 03:37 libTinyGL/src/tgl_line.c
-rw-rw-rw- ancho/0         141     272  51.8% -lh5- af60 Mar  1 01:56 libTinyGL/src/tgl_line.h
-rw-rw-rw- ancho/0         985    2643  37.3% -lh5- c37a Feb 27 20:51 libTinyGL/src/tgl_line_inc.h
-rwxrwxrwx ancho/0        1627    5594  29.1% -lh5- bec5 Mar  1 01:58 libTinyGL/src/tgl_math.c
-rw-rw-rw- ancho/0         362     943  38.4% -lh5- 4137 Mar  1 04:24 libTinyGL/src/tgl_math.h
-rwxrwxrwx ancho/0        1660    5985  27.7% -lh5- ee7f Mar  6 07:56 libTinyGL/src/tgl_matrix.c
-rwxrwxrwx ancho/0         148     250  59.2% -lh5- 0bb0 Mar  1 01:48 libTinyGL/src/tgl_memory.c
-rwxrwxrwx ancho/0         798    2370  33.7% -lh5- f543 Mar  1 01:48 libTinyGL/src/tgl_misc.c
-rwxrwxrwx ancho/0         455    1159  39.3% -lh5- 4d0d Mar  6 07:48 libTinyGL/src/tgl_msghandling.c
-rwxrwxrwx ancho/0         599    1408  42.5% -lh5- 044c Mar  2 20:37 libTinyGL/src/tgl_specbuf.c
-rw-rw-rw- ancho/0         275     489  56.2% -lh5- d4f7 Mar  1 03:39 libTinyGL/src/tgl_specbuf.h
-rwxrwxrwx ancho/0        2135    7166  29.8% -lh5- 60d1 Mar  6 07:43 libTinyGL/src/tgl_texture.c
-rwxrwxrwx ancho/0        2020    8476  23.8% -lh5- dd42 Mar  4 07:20 libTinyGL/src/tgl_triangle.c
-rw-rw-rw- ancho/0         269     713  37.7% -lh5- d518 Mar  4 06:37 libTinyGL/src/tgl_triangle.h
-rw-rw-rw- ancho/0        1937    6927  28.0% -lh5- 41e8 Mar  6 09:44 libTinyGL/src/tgl_triangle_inc.h
-rwxrwxrwx ancho/0        2562    9319  27.5% -lh5- 45e4 Mar  6 08:20 libTinyGL/src/tgl_vertex.c
-rwxrwxrwx ancho/0        2577   10737  24.0% -lh5- f43b Mar  1 08:27 libTinyGL/src/tgl_zbuffer.c
-rw-rw-rw- ancho/0        1304    3878  33.6% -lh5- 4234 Mar  6 10:20 libTinyGL/src/tgl_zbuffer.h
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total        50 files  375321  945626  39.7%            Mar  7 21:08

Aminet © 1992-2017 Urban Müller and the Aminet team. Aminet contact address: <aminetaminet net>