Language bindings: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
Re-added OpenTK with up to date link |
||
(46 intermediate revisions by 21 users not shown) | |||
Line 5: | Line 5: | ||
All OpenGL applications produce consistent visual display results on any OpenGL API-compliant hardware, regardless of operating system or windowing system. | All OpenGL applications produce consistent visual display results on any OpenGL API-compliant hardware, regardless of operating system or windowing system. | ||
=== | === Ada === | ||
* [http:// | * [http://flyx.github.io/OpenGLAda/ OpenGLAda] is a thick Ada binding for OpenGL and GLFW. | ||
* [http://adaopengl.sourceforge.net/ Ada OpenGL bindings] supports GL & GLU and GLUT. | |||
* [http://globe3d.sourceforge.net/ Ada OpenGL binding] GLOBE_3D is a free, open-source, real-time 3D Engine written in Ada, based on OpenGL. | |||
=== Common Lisp === | === Common Lisp === | ||
Line 13: | Line 15: | ||
* [http://common-lisp.net/project/cl-opengl/ cl-opengl] is a set of CFFI bindings to OpenGL. It works with any implementation that supports CFFI and also includes optional bindings to GLU and GLUT. | * [http://common-lisp.net/project/cl-opengl/ cl-opengl] is a set of CFFI bindings to OpenGL. It works with any implementation that supports CFFI and also includes optional bindings to GLU and GLUT. | ||
* [http://repo.or.cz/w/cl-glfw.git cl-glfw] includes, in addition to the GLFW bindings, a set of automatically generated OpenGL bindings, and a hand-written interface to GLU. | * [http://repo.or.cz/w/cl-glfw.git cl-glfw] includes, in addition to the GLFW bindings, a set of automatically generated OpenGL bindings, and a hand-written interface to GLU. (last update in mid-2008) | ||
=== C# === | |||
* [https://github.com/latet-party/LTP.Interop.OpenGL LTP.Interop.OpenGL] provides unsafe low-level bindings for OpenGL Core 3.2 - 4.6, and GLFW 3.3.2. | |||
* [http://sourceforge.net/projects/ogl4net/ OpenGL4Net] is a simple wrapper of OpenGL 4.3 for .NET platform. | |||
* [https://github.com/giawa/opengl4csharp OpenGL4Csharp] is a wrapper for modern OpenGL 4.5 and includes several math helpers (Vector, Quaternion, Matrix, etc) as well as helpful constructs such as loading textures and shaders. | |||
* [https://github.com/taylaninan/opengldotnet OpenGLDotNet] is a full-featured OpenGL, GLU, GLUT/FREEGLUT, [http://openil.sourceforge.net/ DevIL/ILU/ILUT] wrapper, supporting up to OpenGL version 4.5 and over 610+ OpenGL Extensions as of April 2016. | |||
* [https://github.com/luca-piccioni/OpenGL.Net OpenGL.Net] is a complete wrapper library supporting OpenGL 4.6, OpenGL ES 3.2, EGL, WGL and GLX APIs. Exposes all enumerations and commands managed by the Khronos registry. | |||
* [https://github.com/opentk/opentk OpenTK] is a low-level wrapper for OpenGL, OpenAL and OpenCL. It also provides windowing and input. | |||
* [https://github.com/Ultz/Silk.NET Silk.NET] is a collection of bindings for OpenGL, OpenAL, and Vulkan among many other APIs. Works with C# and F#. | |||
* [http://sourceforge.net/projects/taoframework/ The Tao Framework] for .NET is a collection of bindings to facilitate cross-platform game-related development utilizing the .NET platform. | |||
=== Delphi/Free Pascal (Object Pascal) === | === Delphi/Free Pascal (Object Pascal) === | ||
* [http://glscene.sourceforge.net GlScene] Delphi and Lazarus/FreePascal. High level (GUI) components and bindings, only for 32 bit compilers, CrossPlatform with many designers, options and support for multiple 3D and image formats. | * [http://glscene.sourceforge.net GlScene] Delphi and Lazarus/FreePascal. High level (GUI) components and bindings, only for 32 bit compilers, CrossPlatform with many designers, options and support for multiple 3D and image formats. | ||
* [http://www.freepascal.org FreePascal] CrossPlatform OpenGL headers are included for all platforms and CPUs, based on those from Delphi3D. | * [http://www.freepascal.org FreePascal] CrossPlatform OpenGL headers are included for all platforms and CPUs, based on those from Delphi3D. | ||
* [http://www.lazarus.freepascal.org Lazarus IDE] Has support for OpenGL using TOpenGlControl and other components. | * [http://www.lazarus.freepascal.org Lazarus IDE] Has support for OpenGL using TOpenGlControl and other components. | ||
* [http://wiki.delphigl.com/index.php/dglOpenGL.pas/en Delphi OpenGL Bindings] (german) | |||
=== Fortran === | === Fortran === | ||
* [http://math.nist.gov/f90gl/ FORTRAN OpenGL (f90gl) bindings] is a public domain implementation of the official Fortran 90 bindings for OpenGL. With the new bindings, a Fortran programmer can write standard-conforming graphics applications that will be portable over most computing platforms. The current version is Version 1.2.3 This version implements the interface for OpenGL 1.2, GLU 1.2, GLUT 3.7, and several extensions. It supports several Unix workstations and Windows 95/98/NT. It is also the Fortran interface for Mesa. | * [http://math.nist.gov/f90gl/ FORTRAN OpenGL (f90gl) bindings] is a public domain implementation of the official Fortran 90 bindings for OpenGL. With the new bindings, a Fortran programmer can write standard-conforming graphics applications that will be portable over most computing platforms. The current version is Version 1.2.3 This version implements the interface for OpenGL 1.2, GLU 1.2, GLUT 3.7, and several extensions. It supports several Unix workstations and Windows 95/98/NT. It is also the Fortran interface for Mesa. | ||
=== FreeBASIC === | |||
* The [http://code.google.com/p/freebasic-headers/downloads/detail?name=fb-opengl-2011-2.zip&can=2&q= download-package] contains an OpenGL header supporting GL and GLU. | |||
=== Haskell === | === Haskell === | ||
* [http://www.haskell.org/ | * [http://www.haskell.org/haskellwiki/Opengl Haskell OpenGL bindings] support GL, GLU and GLUT. | ||
=== Java === | === Java === | ||
* [ | * [http://jogamp.org/jogl/www/ Java OpenGL (JOGL) bindings] - the JOGL project hosts an implementation of the Java Bindings for OpenGL (JSR-231), and is designed to provide hardware-supported 3D graphics to applications written in Java. JOGL provides full access to the APIs in the OpenGL 1.3 - 3.0, 3.1 - 3.3, ≥ 4.0, ES 1.x and ES 2.x specification as well as nearly all vendor extensions, and integrates with the AWT and Swing widget sets. [https://jogl-demos.dev.java.net Coding demos] are available. | ||
* [http://lwjgl.org/ Lightweight Java Game Library] is aimed at professional and amateur Java programmers alike with support for OpenGL, OpenAL, Gamepads, Steering wheel and Joysticks. | * [http://lwjgl.org/ Lightweight Java Game Library] is aimed at professional and amateur Java programmers alike with support for OpenGL, OpenAL, Gamepads, Steering wheel and Joysticks. | ||
* [http://www.oracle.com/technetwork/java/javase/tech/java3d-137523.html?ssSourceSiteId=ocomen Java 3D] - Oracle's retained mode library layered on OpenGL. | |||
* [http:// | |||
* [http://www.jausoft.com/gl4java.html OpenGL for Java (GL4Java)] | * [http://www.jausoft.com/gl4java.html OpenGL for Java (GL4Java)] | ||
* [http://www.cmlab.csie.ntu.edu.tw/%7Erobin/JavaGL/index.html jGL] is a 3D graphics library for the JavaTM Programming Language with an API which is similar to that of OpenGL. | |||
* [http://www.sgi.com/products/?/6.5_java3d_1.3.1/ Java 3D for IRIX] | |||
* [http://www.palevich.com/3dfx/JavaOpenGL.html JavaOpenGL 1.0a3] JavaOpenGL is a set of Java classes that let you program the OpenGL API on a Windows 95 or Windows NT box. | |||
=== Lua === | |||
=== | |||
* [http:// | * [http://luagl.sourceforge.net LuaGl] support GL (old school 1.0/20 mainly), GLU, sources found at [https://github.com/LuaDist/luagl Git]. | ||
=== Perl === | === Perl === | ||
* [http://graphcomp.com/ | * [http://graphcomp.com/pogl.cgi The Official Perl OpenGL (POGL) Website] - a binary Perl OpenGL/GLU/GLUT binding that supports GPGPU processing. Documentation, examples and the latest updates. | ||
* [http://search.cpan.org/dist/OpenGL/ CPAN OpenGL (POGL)]. | * [http://search.cpan.org/dist/OpenGL/ CPAN OpenGL (POGL)]. | ||
* [http://search.cpan.org/dist/OpenGL-Image/ CPAN OpenGL::Image]. | * [http://search.cpan.org/dist/OpenGL-Image/ CPAN OpenGL::Image]. | ||
* [http://search.cpan.org/dist/OpenGL-Shader/ CPAN OpenGL::Shader]. | * [http://search.cpan.org/dist/OpenGL-Shader/ CPAN OpenGL::Shader]. | ||
* [http://graphcomp.com/pogl.cgi?v=0111s3m3 OpenGL Benchmarks] - C vs Perl vs Python. | |||
* [http://graphcomp.com/ | |||
=== PowerBASIC === | === PowerBASIC === | ||
* Allows use of OpenGL up to version | * Allows use of OpenGL up to version 4.0 and GLU and GLUT using [http://www.jose.it-berater.org/smfforum/index.php?topic=3759.0 header file included in "Windows API headers" package] | ||
* [http://www.jose.it-berater.org/smfforum/index.php?topic=2814.msg8420#msg8420 GLFW headers] | * [http://www.jose.it-berater.org/smfforum/index.php?topic=2814.msg8420#msg8420 GLFW headers] | ||
Line 97: | Line 83: | ||
=== Python === | === Python === | ||
* [https://github.com/cprogrammer1994/ModernGL ModernGL] is a "100% Pythonic" binding that focuses on modern OpenGL techniques with minimal code. It claims to be simpler and faster than PyOpenGL. | |||
* [http://pyopengl.sourceforge.net PyOpenGL] is a cross-platform open source Python binding to the standard OpenGL API providing 2-D and 3-D graphic drawing. PyOpenGL supports the GL, GLU, and GLUT libraries. The library can be used with the Tkinter, wxPython, FxPy, and Win32GUI windowing libraries (or almost any windowing library which can provide an OpenGL context). | * [http://pyopengl.sourceforge.net PyOpenGL] is a cross-platform open source Python binding to the standard OpenGL API providing 2-D and 3-D graphic drawing. PyOpenGL supports the GL, GLU, and GLUT libraries. The library can be used with the Tkinter, wxPython, FxPy, and Win32GUI windowing libraries (or almost any windowing library which can provide an OpenGL context). | ||
* [https://github.com/FabriceSalvaire/PyOpenGLng PyOpenGLng] is a new OpenGL Python binding which generates the requested OpenGL API from the OpenGL XML API Registry and use an automatic translator to map the C API to Python. The interface between C and Python is supported by CFFI and ctypes. It also provides a high level API compatible with Qt5. | |||
* [https://github.com/FabriceSalvaire/pyglfw-cffi pyglfw-cffi] is a GLFW CFFI binding for Python. | |||
* [http://www.hoogli.com/~ahcox/old/PyGlut/index.html PyGLUT] makes GLUT available from the Python interpreter. | |||
=== Racket === | |||
* [http://github.com/stephanh42/RacketGL OpenGL] package: Exhaustive Racket bindings to OpenGL. An automatically-generated wrapper around the OpenGL library. | |||
* [http://docs.racket-lang.org/sgl/index.html SGL] libraries provide access to the rendering functions of OpenGL 1.5 and GLU 1.3 libraries. | |||
=== Ruby === | === Ruby === | ||
* [ | * [https://github.com/vaiorabbit/ruby-opengl ruby OpenGL bindings] supports GL 3.0+, GLU , GLUT, and GLFW. | ||
=== ThinBASIC === | === ThinBASIC === |
Latest revision as of 01:57, 24 April 2021
OpenGL Language Bindings
OpenGL is supported on every major operating system, it works with every major windowing system, and it is callable from most programming languages. It offers complete independence from network protocols and topologies.
All OpenGL applications produce consistent visual display results on any OpenGL API-compliant hardware, regardless of operating system or windowing system.
Ada
- OpenGLAda is a thick Ada binding for OpenGL and GLFW.
- Ada OpenGL bindings supports GL & GLU and GLUT.
- Ada OpenGL binding GLOBE_3D is a free, open-source, real-time 3D Engine written in Ada, based on OpenGL.
Common Lisp
- cl-opengl is a set of CFFI bindings to OpenGL. It works with any implementation that supports CFFI and also includes optional bindings to GLU and GLUT.
- cl-glfw includes, in addition to the GLFW bindings, a set of automatically generated OpenGL bindings, and a hand-written interface to GLU. (last update in mid-2008)
C#
- LTP.Interop.OpenGL provides unsafe low-level bindings for OpenGL Core 3.2 - 4.6, and GLFW 3.3.2.
- OpenGL4Net is a simple wrapper of OpenGL 4.3 for .NET platform.
- OpenGL4Csharp is a wrapper for modern OpenGL 4.5 and includes several math helpers (Vector, Quaternion, Matrix, etc) as well as helpful constructs such as loading textures and shaders.
- OpenGLDotNet is a full-featured OpenGL, GLU, GLUT/FREEGLUT, DevIL/ILU/ILUT wrapper, supporting up to OpenGL version 4.5 and over 610+ OpenGL Extensions as of April 2016.
- OpenGL.Net is a complete wrapper library supporting OpenGL 4.6, OpenGL ES 3.2, EGL, WGL and GLX APIs. Exposes all enumerations and commands managed by the Khronos registry.
- OpenTK is a low-level wrapper for OpenGL, OpenAL and OpenCL. It also provides windowing and input.
- Silk.NET is a collection of bindings for OpenGL, OpenAL, and Vulkan among many other APIs. Works with C# and F#.
- The Tao Framework for .NET is a collection of bindings to facilitate cross-platform game-related development utilizing the .NET platform.
Delphi/Free Pascal (Object Pascal)
- GlScene Delphi and Lazarus/FreePascal. High level (GUI) components and bindings, only for 32 bit compilers, CrossPlatform with many designers, options and support for multiple 3D and image formats.
- FreePascal CrossPlatform OpenGL headers are included for all platforms and CPUs, based on those from Delphi3D.
- Lazarus IDE Has support for OpenGL using TOpenGlControl and other components.
- Delphi OpenGL Bindings (german)
Fortran
- FORTRAN OpenGL (f90gl) bindings is a public domain implementation of the official Fortran 90 bindings for OpenGL. With the new bindings, a Fortran programmer can write standard-conforming graphics applications that will be portable over most computing platforms. The current version is Version 1.2.3 This version implements the interface for OpenGL 1.2, GLU 1.2, GLUT 3.7, and several extensions. It supports several Unix workstations and Windows 95/98/NT. It is also the Fortran interface for Mesa.
FreeBASIC
- The download-package contains an OpenGL header supporting GL and GLU.
Haskell
- Haskell OpenGL bindings support GL, GLU and GLUT.
Java
- Java OpenGL (JOGL) bindings - the JOGL project hosts an implementation of the Java Bindings for OpenGL (JSR-231), and is designed to provide hardware-supported 3D graphics to applications written in Java. JOGL provides full access to the APIs in the OpenGL 1.3 - 3.0, 3.1 - 3.3, ≥ 4.0, ES 1.x and ES 2.x specification as well as nearly all vendor extensions, and integrates with the AWT and Swing widget sets. Coding demos are available.
- Lightweight Java Game Library is aimed at professional and amateur Java programmers alike with support for OpenGL, OpenAL, Gamepads, Steering wheel and Joysticks.
- Java 3D - Oracle's retained mode library layered on OpenGL.
- OpenGL for Java (GL4Java)
- jGL is a 3D graphics library for the JavaTM Programming Language with an API which is similar to that of OpenGL.
- Java 3D for IRIX
- JavaOpenGL 1.0a3 JavaOpenGL is a set of Java classes that let you program the OpenGL API on a Windows 95 or Windows NT box.
Lua
Perl
- The Official Perl OpenGL (POGL) Website - a binary Perl OpenGL/GLU/GLUT binding that supports GPGPU processing. Documentation, examples and the latest updates.
- CPAN OpenGL (POGL).
- CPAN OpenGL::Image.
- CPAN OpenGL::Shader.
- OpenGL Benchmarks - C vs Perl vs Python.
PowerBASIC
- Allows use of OpenGL up to version 4.0 and GLU and GLUT using header file included in "Windows API headers" package
Note: File archives with headers are visible after login on linked site
Python
- ModernGL is a "100% Pythonic" binding that focuses on modern OpenGL techniques with minimal code. It claims to be simpler and faster than PyOpenGL.
- PyOpenGL is a cross-platform open source Python binding to the standard OpenGL API providing 2-D and 3-D graphic drawing. PyOpenGL supports the GL, GLU, and GLUT libraries. The library can be used with the Tkinter, wxPython, FxPy, and Win32GUI windowing libraries (or almost any windowing library which can provide an OpenGL context).
- PyOpenGLng is a new OpenGL Python binding which generates the requested OpenGL API from the OpenGL XML API Registry and use an automatic translator to map the C API to Python. The interface between C and Python is supported by CFFI and ctypes. It also provides a high level API compatible with Qt5.
- pyglfw-cffi is a GLFW CFFI binding for Python.
- PyGLUT makes GLUT available from the Python interpreter.
Racket
- OpenGL package: Exhaustive Racket bindings to OpenGL. An automatically-generated wrapper around the OpenGL library.
- SGL libraries provide access to the rendering functions of OpenGL 1.5 and GLU 1.3 libraries.
Ruby
- ruby OpenGL bindings supports GL 3.0+, GLU , GLUT, and GLFW.
ThinBASIC
- Allows use of OpenGL up to version 2.1 and GLU in default installation
- Supports TBGL higher level abstraction over OpenGL
Visual Basic
- An ActiveX control implementing OpenGL 1.1 for use with Visual Basic