LDG
a GEM Dynamical Library system for TOS computer
Current version: LDG 2.32 (August 2004) & LDG-DEV 2.33 (02 Nov 2005)
What is LDG ?
LDG stands for Gem Dynamical Libraries (actually Librairies Dynamiques GEM in french). It's a system allowing GEM applications to load and to share externals modules. For example, an image viewer could use the JPEG.LDG plugin to load a jpeg image... and in the same time, another program can use the same JPEG.LDG plugin to load anothe rimage or to save an image. You'll find later some examples of program that uses LDG system.
The LDG system (and this web site) concerns two kind of audience :
- end-users who don't have to know anything about technical stuff
- programmers who want to develop a LDG or an application which uses external LDG
For end-user
Nothing has to be installed (although we encourage users to install the LDG system, as explained later). Any application can successfully load external LDG on a computer where the LDG system is not installed.
By the way, we encourage users to install the LDG system. Once the system is installed (LDG.PRG in AUTO, LDG.CPX in CPX, and a deamon to launch at startup... all of them automatically installed by a nice installer provided in the LDG package), the immediat benefit will be:
- the path where LDG are loaded is configurable (by using the CPX). You can then put your LDG directory wherever you want.
- LDG may be shareable : if several applications use the same LDG, then this LDG is loaded only once in memory (without installation, each application load its own copy of the LDG).
- LDG libraries and applications will use functions of the LDG system (AUTO program) instead of their built-in LDG functions. If you install a new LDG system with new features or bug fixes, then all your applications and LDG libraries will benefit from them.
For developper
For C programmers, the LDG-DEV package is what you need. This package contains C-library and header file to built LDG and applications that load LDG. The library is provided for GCC 2.95, GCC 2.81, sozobonx C and Pure C compilers.
If you want some more stuff (documentation, example...), then you should download the main LDG package.
If you want to develop LDG or applications that load LDG with another programming language, it is possible too (you have to "port" the LDG-DEV package to your language). You can also rely on the LDGM cookie, but your application will then only work if LDG2 is installed on the machine.
^up^
What's new ?
- Release of LDG-DEV 2.33 (new package for developpers only).
- Yes ! Finally LDG moves to SF in order to enhance multi authors development. Old LDG site will be removed.
- Adding new libs (December 2004): XML 1.10, TinyGL 0.45, SDL 1.1.
- Release of LDG 2.32 (August 2004). This release addresses just the legal use of LDG : LDG is now distributed under conditions specified by the LGPL license.
- Release of LDG 2.31 (somewhere in 2003) : This is minor
release never distributed.
- one bug has been fixed on the way LDG looks for a library when one specify its path with MiNT convention.
- For hackers : the devel C library is now totaly independant on the GEM library used. That means it is not necessary to link a LDG module with the GEM library and any GEM library can be used if needed. As LDG is independant of the GEM library, you need to specify the GEM header file before including 'ldg.h'.
- LDG and its utilities have been recompiled using the last version of Gemlib (pl43).
Older news ^up^
Download
Since the project is now hosted by SF.NET, we use its File Release System. All "new" packages may be downloaded from the sourceforge.net download page of our project.
At the moment, only LDG-DEV 2.33 package is available. There's no LDG package available there.
The main LDG package (last version released before we moved to SF.NET) is available just hereafter:
- ldg-2.32.zip is the complet distribution including a GEM intaller and devel libraries.
^up^
The LDG developper kit
The LDG package contains:
- the LDG system (TSR, CPX and Manager) with a GEM installer,
- an hypertext documentation,
- PureC, Gcc, Sozobon C-libraries to create LDG client and libraries
- tools to check your environment and libraries, to install and update properly your libraries,
- example of LDG-library and LDG-client,
- MEM.LDG, a memory manager for LDG-libraries,
- FILEUTIL.LDG (version 0.10) to copy, move and delete files and folders.
The LDG-DEV package contains:
- header file (ldg.h)
- library (libldg.a)
The LDG-DEV package is only usefull for developpers. The main interesting feature is the RPM version of LDG-DEV : the header file and the library are automatically installed in the right directory. The RPM version only exists for gcc target.
Please note that the LDG-DEV package doesn't come with any documentation nor example. It's recommanded to get the main LDG package. The LDG-DEV package is only usefull to upgrade your LDG developpement environment.
^up^
Available LDG libraries
Here is a list of LDG libraries :
| Name | Author | Version | Description |
|---|---|---|---|
| Mesa GL 2.5 | ported by Olivier Landemarre | 0.9 | A free clone of Open GL. |
| Mesa GL 6.2 | ported by Patrice Mandin | 1.4 | A free clone of Open GL. |
| SDL 1.2.7 | ported by Patrice Mandin | 1.1 | Simple Directmedia Layer : an universal multimedia library |
| Tiny GL |
ported by Olivier Landemarre | 0.45 | A light version of MesaGL, virtual reality oriented. |
| Screen | Olivier Landemarre | 2.00 | An universal true color screen driver including dithering functionalities. 10/04/2007 Thanks to Guillaume Tello, Eric Reboux and Arnaud Bercegeay for their huge technical assistance |
| Double | Olivier Landemarre | 1.00 | Convert diffrent format of double (double 80bits PureC, 96bits PureC, 64bit IEEE754 (GCC)). |
| ME | Arnaud Bercegeay | 1.00 | The Parx R&M protocol adapted to LDG. |
| Zview Image codecs | Zorro | 1.00 | Various image codecs (jpg,bmp,img,png,gif,tga,degas) used by Zview |
| Xml | Phillipe Castella & Arnaud Bercegeay | 1.10 | A module handling XML-files with PULL mode. Documentation is available from the previous version (xml 1.04) |
| Mem | Dominique Béréziat | 0.50 | A memory manager for shared libraries. It is a part of LDG package. |
| FileUtil | Dominique Béréziat | 0.20 | Files utilities. It is a part of LDG package. |
| MOD | Jean-Marc Stocklausen | 0.1a | Player of MOD soundtrack, ( PaulNG uses it). |
| PCI | Jean-Marc Stocklausen | 0.2b | A library to interface PCI Bios, there is a client, ( PCI Information which uses it). |
| Cookies | Nicolas Richeton | 1.01 | System CookieJar utilities. |
| DHST | Nicolas Richeton | ?? | Document HiSToric utilities (GEM protocol). |
You can browse our libs directory too. If you have developped some LDG-libraries, please contact us...
^up^
Example of LDG usage
Here is a list of some applications that use the LDG system:
- zView uses zcodecs LDG to load images
- Eureka uses MESA.LDG or TINY.LDG for opengl rendering
- MyAES uses LDG system for its windframe plugin, and SCREEN.LDG for dithering.
- TeaTime uses the XML.LDG plugin to parse a xml file
- riri2 uses ME.LDG to load images, and SCREEN.LDG to dither, zoom and display images.
^up^
Contributions
- LDG INFO is an powerfull tool to check and update yours LDG-libraries (by Arnaud Bercegeay).
- Libshare (by Arnaud Bercegeay): "A dirty patch to build shareable LDG against mintlib"
- Mon LDG is a LDG monitor which display in real time list of libraries used and their client applications.
- LDG system calls are specified in the TOS functions database GEMTOS.
^up^
Archives
- LDG version 2.11, news
- LDG version 2.10, news
- LDG version 2.01, news : first LDG 2.00 release.
- LDG version 1.20 : last LDG 1 version. A stable version.
- Older version.
^up^
Authors (and contacts)
LDG are developped by :
- Dominique Béréziat (Falcon, Mint, MagiC, PureC)
- Olivier Landemarre (MagicMac, Gcc, Aranym)
- Arnaud Bercegeay (gcc 295, SpareMint, Milan),