Difference between revisions of "Graphics libraries"

From Free Pascal wiki
(Removed game libraries and frameworks, added links and ordered the table alphabetically.)
Line 1: Line 1:
 +
This is a list of libraries designed '''only''' to work with graphics.  If you're looking for a library to be used for [[Portal:Game Development|game development]] you should use a [[Game framework|game framework]] instead.
 +
 +
==Graphics libraries==
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 
! Name
 
! Name
Line 9: Line 12:
 
! Supported File Formats
 
! Supported File Formats
 
! Color formats or framework
 
! Color formats or framework
|-
 
| Lazarus [[Developing_with_Graphics#Working_with_TCanvas|TCanvas]] || Lazarus developers || All supported by the LCL || Modified LGPL || {{Yes}} || {{No}} || {{No}} ||BMP, ICO, ICNS, PNG, JPEG, GIF, etc || Represents the native canvas of the widgetset
 
|-
 
| Lazarus [[Developing_with_Graphics#Working_with_TLazIntfImage.2C_TRawImage_and_TLazCanvas|TLazCanvas+TLazIntfImage]] || Lazarus developers || All supported by the LCL || Modified LGPL || {{Yes}} || {{No}} || {{No}} || Only via fcl-image || Supports almost any pixel format. Cannot render to the screen directly, but instead is utilized in connection with something that can, like TCanvas or LCL-CustomDrawn
 
 
|-
 
|-
 
| [http://www.crossgl.com/aggpas/ AggPas] || Milano || Windows, Linux, Mac OS || [http://www.crossgl.com/aggpas/aggpas-licence.htm Custom] || {{Yes}} || {{Yes}} ||{{No}} || BMP, SVG, Flash (TXT), True Type Font || 8-bit grayscale, 15-bit, 16-bit, 24-bit RGB and 32-bit RGB with alpha
 
| [http://www.crossgl.com/aggpas/ AggPas] || Milano || Windows, Linux, Mac OS || [http://www.crossgl.com/aggpas/aggpas-licence.htm Custom] || {{Yes}} || {{Yes}} ||{{No}} || BMP, SVG, Flash (TXT), True Type Font || 8-bit grayscale, 15-bit, 16-bit, 24-bit RGB and 32-bit RGB with alpha
|-
 
| [[FPC_and_Allegro|Allegro]] || Guillermo Martínez Jiménez for Pascal wraper || Windows and Linux. It may work on MacOS X and Android as well. || Custom (Version 4 and previous) or zlib/libpng License (version 5 and up) || {{Yes}} || {{No}} ||{{Yes}} || BMP, LBM, PCX, TGA (and MIDI, VOC, WAV audio).  Version 5 adds JPEG, PNG, (FLAC, OGG, opus, IT, MOD, S3M, XM audio).  || 8, 15, 16, 24 and 32 bit RGB with alpha
 
 
|-
 
|-
 
| [http://andorra.sourceforge.net/ Andorra 2D] || [http://andorra.sourceforge.net/index1013.html?section=credits Team] || Windows and Linux || Common Public License, GNU GPL || {{Yes}} || {{No}} ||{{No}} || BMP, PNG, TGA || DirectX and OpenGL
 
| [http://andorra.sourceforge.net/ Andorra 2D] || [http://andorra.sourceforge.net/index1013.html?section=credits Team] || Windows and Linux || Common Public License, GNU GPL || {{Yes}} || {{No}} ||{{No}} || BMP, PNG, TGA || DirectX and OpenGL
|-
 
| [[Castle Game Engine]] || [http://michalis.ii.uni.wroc.pl/~michalis/ Michalis Kamburelis] || Very portable (desktop: Windows, Linux, MacOSX, FreeBSD, ..., mobile: Android, iOS) || Modified LGPL || {{Yes}} || {{No}} || {{Yes}} || Common: PNG, JPEG, GIF, TGA, XPM, PSD, PCX, PNM, BMP (some supported using fcl-image). Special: DDS (for GPU textures), RGBE (simple HDR). And some more. And there are a lot of 3D/animation formats supported too :) || OpenGL, OpenGL ES 2
 
 
|-
 
|-
 
| [[BGRABitmap|BGRABitmap]] || Circular || Win32, Win64, Linux (Gtk & Qt), Mac OS (Carbon) || Modified LGPL || {{Yes}} || {{Yes}} ||{{Yes}} || read-write: BMP, JPEG, PNG, static GIF, PCX, LZP, ORA, OXO, TGA, TIFF, XWD, XPM; read-only: PDN, PSD, ICO, animated GIF || 32 bit BGRA, Canvas2d (like HTML5), CanvasBGRA (like TCanvas), OpenGL, ZenGL
 
| [[BGRABitmap|BGRABitmap]] || Circular || Win32, Win64, Linux (Gtk & Qt), Mac OS (Carbon) || Modified LGPL || {{Yes}} || {{Yes}} ||{{Yes}} || read-write: BMP, JPEG, PNG, static GIF, PCX, LZP, ORA, OXO, TGA, TIFF, XWD, XPM; read-only: PDN, PSD, ICO, animated GIF || 32 bit BGRA, Canvas2d (like HTML5), CanvasBGRA (like TCanvas), OpenGL, ZenGL
Line 28: Line 23:
 
| [[fpvectorial|fpVectorial]] || || || || {{Yes}} || {{Yes}} || {{Yes}} || PDF, Corel Draw, SVG, DXF || Supports raster images placed inside the vectorial document. Supports documents with multiple pages.
 
| [[fpvectorial|fpVectorial]] || || || || {{Yes}} || {{Yes}} || {{Yes}} || PDF, Corel Draw, SVG, DXF || Supports raster images placed inside the vectorial document. Supports documents with multiple pages.
 
|-  
 
|-  
| [http://graphics32.org Graphics32] || Team Graphics32 || Win32 and OS X || MPL and LGPL || {{Yes}} || {{No}} || {{No}} || BMP, JPG, WMF, EMF || 32-bit RGBA
+
| [http://graphics32.org Graphics32] || Team Graphics32 || Win32 and OS X || MPL and LGPL || {{Yes}} || {{No}} || {{No}} || BMP, JPG, WMF, EMF || 32-bit RGBA
 +
|-
 +
| Lazarus [[Developing_with_Graphics#Working_with_TCanvas|TCanvas]] || Lazarus developers || All supported by the LCL || Modified LGPL || {{Yes}} || {{No}} || {{No}} ||BMP, ICO, ICNS, PNG, JPEG, GIF, etc || Represents the native canvas of the widgetset
 +
|-
 +
| Lazarus [[Developing_with_Graphics#Working_with_TLazIntfImage.2C_TRawImage_and_TLazCanvas|TLazCanvas+TLazIntfImage]] || Lazarus developers || All supported by the LCL || Modified LGPL || {{Yes}} || {{No}} || {{No}} || Only via fcl-image || Supports almost any pixel format. Cannot render to the screen directly, but instead is utilized in connection with something that can, like TCanvas or LCL-CustomDrawn
 
|-
 
|-
 
| [[LazRGBGraphics|LazRGBGraphics]] || Abandoned (formerly Tom Gregorovic) || || Modified LGPL || {{Yes}} || {{No}} || {{No}} || || 8-bit grayscale and 32 bit RGB without alpha
 
| [[LazRGBGraphics|LazRGBGraphics]] || Abandoned (formerly Tom Gregorovic) || || Modified LGPL || {{Yes}} || {{No}} || {{No}} || || 8-bit grayscale and 32 bit RGB without alpha
 
|-
 
|-
 
| [http://imaginglib.sourceforge.net/ Vampyre Imaging Library] || Marek Mauder || Windows x86/AMD64, Linux x86/AMD64, FreeBSD x86/AMD64, Mac OS X on Intel || Mozilla Public License, GNU LGPL || {{Yes}} || {{No}} || {{No}} || BMP, JPEG, PNG/APNG, GIF, DDS, TGA, MNG, JNG, JPEG2000, TIFF, PSD, PBM, PGM, PPM, PAM, PFM, PCX, XPM, and more || 8, 16, 24, 32, 48 and 64 bit RGB and ARGB formats, indexed formats, grayscale formats, floating point formats (IEEE754 and half precision), compressed formats like DXT1/3/5, 3Dc, and BTC
 
| [http://imaginglib.sourceforge.net/ Vampyre Imaging Library] || Marek Mauder || Windows x86/AMD64, Linux x86/AMD64, FreeBSD x86/AMD64, Mac OS X on Intel || Mozilla Public License, GNU LGPL || {{Yes}} || {{No}} || {{No}} || BMP, JPEG, PNG/APNG, GIF, DDS, TGA, MNG, JNG, JPEG2000, TIFF, PSD, PBM, PGM, PPM, PAM, PFM, PCX, XPM, and more || 8, 16, 24, 32, 48 and 64 bit RGB and ARGB formats, indexed formats, grayscale formats, floating point formats (IEEE754 and half precision), compressed formats like DXT1/3/5, 3Dc, and BTC
|-
 
| [http://zengl.org ZenGL] || [http://zengl.org/contacts.html Andru] || GNU/Linux i386/x86_64, Windows i386/x86_64, MacOS X i386/PowerPC, iOS, Android 2.1+ || [http://zengl.org/license.html zlib] || {{Yes}} || {{No}} || {{No}} || JPG, PNG, TGA || OpenGL, OpenGL ES 1.x, Direct3D
 
 
|}
 
|}
 +
 +
==See also==
 +
* [[Game framework]]
  
 
[[Category:Graphics]]
 
[[Category:Graphics]]
 
[[Category:Comparisons]]
 
[[Category:Comparisons]]

Revision as of 13:47, 22 March 2018

This is a list of libraries designed only to work with graphics. If you're looking for a library to be used for game development you should use a game framework instead.

Graphics libraries

Name Developers Platforms License Raster Vectors 3D Supported File Formats Color formats or framework
AggPas Milano Windows, Linux, Mac OS Custom Yes Yes No BMP, SVG, Flash (TXT), True Type Font 8-bit grayscale, 15-bit, 16-bit, 24-bit RGB and 32-bit RGB with alpha
Andorra 2D Team Windows and Linux Common Public License, GNU GPL Yes No No BMP, PNG, TGA DirectX and OpenGL
BGRABitmap Circular Win32, Win64, Linux (Gtk & Qt), Mac OS (Carbon) Modified LGPL Yes Yes Yes read-write: BMP, JPEG, PNG, static GIF, PCX, LZP, ORA, OXO, TGA, TIFF, XWD, XPM; read-only: PDN, PSD, ICO, animated GIF 32 bit BGRA, Canvas2d (like HTML5), CanvasBGRA (like TCanvas), OpenGL, ZenGL
fcl-image Team All platforms Modified LGPL Yes No No BMP, JPG, PCX, PNG, TGA Various formats up to 64-bit RGBA
fpVectorial Yes Yes Yes PDF, Corel Draw, SVG, DXF Supports raster images placed inside the vectorial document. Supports documents with multiple pages.
Graphics32 Team Graphics32 Win32 and OS X MPL and LGPL Yes No No BMP, JPG, WMF, EMF 32-bit RGBA
Lazarus TCanvas Lazarus developers All supported by the LCL Modified LGPL Yes No No BMP, ICO, ICNS, PNG, JPEG, GIF, etc Represents the native canvas of the widgetset
Lazarus TLazCanvas+TLazIntfImage Lazarus developers All supported by the LCL Modified LGPL Yes No No Only via fcl-image Supports almost any pixel format. Cannot render to the screen directly, but instead is utilized in connection with something that can, like TCanvas or LCL-CustomDrawn
LazRGBGraphics Abandoned (formerly Tom Gregorovic) Modified LGPL Yes No No 8-bit grayscale and 32 bit RGB without alpha
Vampyre Imaging Library Marek Mauder Windows x86/AMD64, Linux x86/AMD64, FreeBSD x86/AMD64, Mac OS X on Intel Mozilla Public License, GNU LGPL Yes No No BMP, JPEG, PNG/APNG, GIF, DDS, TGA, MNG, JNG, JPEG2000, TIFF, PSD, PBM, PGM, PPM, PAM, PFM, PCX, XPM, and more 8, 16, 24, 32, 48 and 64 bit RGB and ARGB formats, indexed formats, grayscale formats, floating point formats (IEEE754 and half precision), compressed formats like DXT1/3/5, 3Dc, and BTC

See also