PLIB: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
(10 intermediate revisions by 9 users not shown)
Line 1: Line 1:
'''PLIB''' is a set of software libraries for writing games. [[FlightGear]] used PLIB for most of its development, but transitioned away from it 2006-2008. It is also used by the FlightGear related program [[Atlas]]. PLIB is open source, [[GPL]].  
'''PLIB''' (''Portable Game Library'') is a set of software libraries for writing games written by Steve J. Baker. [[FlightGear]] has used PLIB for most of its development. It is also used by the FlightGear-related program [[Atlas]]. PLIB is open-source and is released under the GNU Library General Public License, the predecessor to the Lesser GNU Public License.  


[[FlightGear 0.9.10]](released in 2005) was the last public release to only use PLIB, before the the transition to OpenSceneGraph ([[OSG]]).
[[FlightGear History#Version 1.0 .282008.29|FlightGear 1.0]] (released in 2007) was the last public release to use PLIB for the 3D scene graph, before the transition to OpenSceneGraph ([[OSG]]). FlightGear still uses PLIB for various tasks; for example, reading joystick inputs and showing a graphical user interface (GUI). In the latter usage, the [[PUI]] component of PLIB will eventually be replaced in FlightGear by [[Canvas]] and [[Phi]], which will vastly improve that capabilities of the current GUI beyond what PUI offers.


PLIB libaries:
PLIB is needed when [[building FlightGear]].


*Picoscopic User Interface Library (PUI)
== PLIB libraries ==
*Sound Library (SL)
; [[PUI|Picoscopic User Interface]] (PUI)
*Standard Geometry Library(SG)
: A fully portable set of GUI widgets that need OpenGL and C++ to operate. Useful for games because rendering these widgets is performed very quickly by your 3D hardware.
*Simple Scene Graph Library (SSG)
; Sound Library (SL)
*PUI Auxiliary Library (PUAUX)
: A fully portable Audio driver suited to C++, GLUT and realtime applications that need low latency. Includes a simple 'MOD' music loader/player.
*SSG Auxiliary Library (SSGA)
; Standard Geometry Library (SG)
*Joystick wrappers (JS)
: A set of matrix and vector math functions that was specifically written to simplify the writing of efficient OpenGL programs. You need to include this code into any SSG applications. Widely used within PLIB itself.
*Fonts'n'Text Library (FNT)
; Simple Scene Graph Library (SSG)
*Utility Library (UL)
: A scene graph library layered on top of OpenGL. Also contains code to load and save lots of 3D file formats.
*Pegasus Network Library (NET)
; PUI Auxiliary Library (PUAUX)
*PLIB Scripting Language (PSL)
: Additional functionality layered onto PUI — not every PUI program will need these but they can perhaps save you some effort.
*PLIB Windowing Library (PW)
; SSG Auxiliary Library (SSGA)
: Additional functionality layered onto SSG — not every SSG program will need these but they can perhaps save you some effort.
; Joystick wrappers (JS)
: Supports more Joysticks with more axes and buttons than GLUT.
; Fonts'n'Text Library (FNT)
: Supports text output in OpenGL using texture mapped fonts. These are much faster to render than GLUT's fonts.
; Utility Library (UL)
: A simple portability library to hide basic operating system incompatibilities. Widely used within PLIB itself.
; Pegasus Network Library (NET)
: Pegasus is a C++ library for assist you in adding networking to your games.
; PLIB Scripting Language (PSL)
: A very lightweight, stackless C-like scripting language.
; PLIB Windowing Library (PW)
: A lightweight windowing library. This is a very basic library — it only supports a single, double-buffered RGB OpenGL window, with support for keyboard and mouse. Simple though it is, it's usually plenty for OpenGL games and other simple OpenGL applications.


==Link==
== Recommended version ==
*http://plib.sourceforge.net/index.html
Even if version 1.8.5, shipped with most of the GNU/Linux distributions, does work for FlightGear and related software, it is [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg20793.html recommended] to use the latest source from its SVN repo:
<syntaxhighlight lang="shell">
$ svn checkout svn://svn.code.sf.net/p/plib/code/trunk plib-code
$ cd plib-code
$ sed s/PLIB_TINY_VERSION\ \ 5/PLIB_TINY_VERSION\ \ 6/ -i src/util/ul.h
</syntaxhighlight>


== External links ==
* [http://plib.sourceforge.net/ PLIB website]
[[pt:PLIB]]
[[Category:Software]]
[[Category:Software]]

Revision as of 15:28, 30 April 2016

PLIB (Portable Game Library) is a set of software libraries for writing games written by Steve J. Baker. FlightGear has used PLIB for most of its development. It is also used by the FlightGear-related program Atlas. PLIB is open-source and is released under the GNU Library General Public License, the predecessor to the Lesser GNU Public License.

FlightGear 1.0 (released in 2007) was the last public release to use PLIB for the 3D scene graph, before the transition to OpenSceneGraph (OSG). FlightGear still uses PLIB for various tasks; for example, reading joystick inputs and showing a graphical user interface (GUI). In the latter usage, the PUI component of PLIB will eventually be replaced in FlightGear by Canvas and Phi, which will vastly improve that capabilities of the current GUI beyond what PUI offers.

PLIB is needed when building FlightGear.

PLIB libraries

Picoscopic User Interface (PUI)
A fully portable set of GUI widgets that need OpenGL and C++ to operate. Useful for games because rendering these widgets is performed very quickly by your 3D hardware.
Sound Library (SL)
A fully portable Audio driver suited to C++, GLUT and realtime applications that need low latency. Includes a simple 'MOD' music loader/player.
Standard Geometry Library (SG)
A set of matrix and vector math functions that was specifically written to simplify the writing of efficient OpenGL programs. You need to include this code into any SSG applications. Widely used within PLIB itself.
Simple Scene Graph Library (SSG)
A scene graph library layered on top of OpenGL. Also contains code to load and save lots of 3D file formats.
PUI Auxiliary Library (PUAUX)
Additional functionality layered onto PUI — not every PUI program will need these but they can perhaps save you some effort.
SSG Auxiliary Library (SSGA)
Additional functionality layered onto SSG — not every SSG program will need these but they can perhaps save you some effort.
Joystick wrappers (JS)
Supports more Joysticks with more axes and buttons than GLUT.
Fonts'n'Text Library (FNT)
Supports text output in OpenGL using texture mapped fonts. These are much faster to render than GLUT's fonts.
Utility Library (UL)
A simple portability library to hide basic operating system incompatibilities. Widely used within PLIB itself.
Pegasus Network Library (NET)
Pegasus is a C++ library for assist you in adding networking to your games.
PLIB Scripting Language (PSL)
A very lightweight, stackless C-like scripting language.
PLIB Windowing Library (PW)
A lightweight windowing library. This is a very basic library — it only supports a single, double-buffered RGB OpenGL window, with support for keyboard and mouse. Simple though it is, it's usually plenty for OpenGL games and other simple OpenGL applications.

Recommended version

Even if version 1.8.5, shipped with most of the GNU/Linux distributions, does work for FlightGear and related software, it is recommended to use the latest source from its SVN repo:

$ svn checkout svn://svn.code.sf.net/p/plib/code/trunk plib-code
$ cd plib-code
$ sed s/PLIB_TINY_VERSION\ \ 5/PLIB_TINY_VERSION\ \ 6/ -i src/util/ul.h

External links