NGL Reference Manual
0.8.0
NGL is a cross-platform C++ programming framework for OpenGL applications. In other words, its purpose is to help programmers write multi-platform code that deals with window managing, network, files, timers and other services - with a simple knowledge in C++ and OpenGL.
NGL was designed with the following guidelines in mind :
- Simple and powerful : basic usage must be trivial, for instance opening a window, handling mouse clic events and drawing should be fairly easy and require a few lines of code. However all classes should be fully featured and let the user play with advanced settings if desired.
- Portable : designing a common interface for system services for different platforms such as Linux, MS Windows or Mac OS can be rather tricky. Every platform has its own philosophy and consistency. NGL was designed from the user point of view, and tries to present abstract services and common semantics for all platforms.
- Deep usage of platform specific APIs : while NGL presents a uniform interface, it uses internally most advanced and modern services offered by each OS. Things like X extensions, Linux input devices, MLang or DirectInput are used when available.
- High level API : if a wheel is reinvented, it must be better. This is either more portable, more efficient, higher level abstraction or all of these qualities ! We hope that the file, stream and string abstractions have good reasons to be implemented into NGL, transparent support for internationalisation and endianness being desirable features.
- Maintainability : we use common (and pedantic) methodology to ensure consistent and quality releases. We use version control (CVS), streamlined documentation (Doxygen), strict coding conventions, automated build and packaging, an extensive test suite, and various home grown tools to keep every developers accurately informed about the code state (cvsreport, htgrep).
- Extensibility : NGL is designed to let user do a lot of things, but not necessarily implement them. When users request features, we first explore how the API could be improved to support that feature. That is why NGL has a rather flat and consistent abstraction level throughout the different classes, and that is also why NGL will never sport a scene graph for instance.
NGL is Free Software, you are encouraged to grab the source, compile it, modify it and redistribute it (with compatible licensing terms). Fetch the latest source distribution for your favourite platform, either by downloading the latest tarballs or by anonymous CVS. Have a look at the INSTALL instructions. When you have succesfully built the library and the examples, you're ready to make your own programs. If you had some trouble building from source and the INSTALL document could not help you much, you are welcome to report your experience and fill in a bug report.
Depending on your platform and on the available packaging solutions, you might also be able to download a binary SDK (library binaries and header files), which lets you go to the essential : build your code ! Note that you will loose some insight on the library and some debugging facilities.
To start a project, you can take one of the available examples and modify it. You can then go into the details of project and build settings later. You'll most certainly need the documentation at hand, downloading an offline copy should be more comfortable than browsing the online one.
Generated on Thu Feb 3 22:26:09 2005 for NGL by
1.4.1