# LWJGL

LWJGL (en anglès, Lightweight Java Game Library) és una llibreria de codi obert per a Java destinada a desenvolupadors de videojocs. Proporciona llibreries multiplataforma d'alt nivell generalment utilitzades en desenvolupament de videojocs i títols multimèdia, com ara OpenGL, Vulkan, OpenAL i OpenCL. A més, proporciona accés multiplataforma a controladors, com ara controladors de videojoc (gamepads), volants i palanques de control (o joysticks).
L'objectiu principal del projecte és proporcionar una manera de que els desenvolupadors de Java, tinguin accés a recursos que són altrament inutilitzables o mal implementats en la plataforma actual de Java. La filosofia principal és proporcionar tecnologia subjacent com un embolcall prim, i així es crea una API propera a l'original. També es la base d'altres motors de jocs d'alt nivell, com ara libGDX o jMonkeyEngine.
LWJGL es troba disponible sota llicència BSD.
El 13 de novembre de 2014, es va anunciar la versió 3, alliberada com a versió alfa el 27 d'abril de 2015. És una reescriptura completa de LWJGL. Es van incloure molts enllaços nous com GLFW, EGL i Objective-C[5]. El suport per al desenvolupament d'Oculus Rift es va afegir amb enllaços a LibOVR. La nova versió va ser alliberada el 4 de juny de 2016, després de més de 3 anys i mig de desenvolupament.

## Vinculacions

La biblioteca accedeix a codi C natiu a través de la Interficie Nativa de Java (JNI). Les vinculacions de cada llibreria nativa existeixen com a diferents mòduls, d'aquesta manera els desenvolupadors poden generar programes només amb les coses que necessiten.
Mentre que les classes d'utilitat estan escrites en Java pur, la majoria de les classes vincluades són automàticament generades per un generador implementat a Kotlin.
Des de la versió 3.1 LWJGL està dividida en uns 20 mòduls que es poden descarregar i usar separadament. Per fer aquest procés més fàcil, el projecte proporciona un configurador en línia, el qual permet als usuaris descarregar combinacions de mòduls i automàticament genera arxius Maven i Gradle de configuració per alleujar el seu ús amb projectes existents. Nuklear (Llibreria)
Proporcionat bindings :
| Vincle | Descripció | Notes |
| EGL | Interfície entre la renderització de les APIs de Khronos i la finestra de plataforma nativa subjacent al sistema. |
| OpenCL | API multiplataforma per computació paral·lela. |
| OpenGL | 3D especificació de gràfics implementada per la majoria de venedors de GPU. | La majoria d'extensions suportades, però les menys populars seran afegides a sol·licitud. |
| OpenGL ES | OpenGL Per embedded sistemes com telèfons mòbils, tauletas o consoles. |
| Vulkan | Properament una API de gràfics en 3D multi plataforma. |
| GLFW | Biblioteca d'administració de la finestra necessitada per manejar OpenGL i Vulkan així com l'entrada d'usuari. |
| JAWT | interficie nativa d'AWT. |
| nfd | Petita biblioteca multiplataforma nativa de diàlegs d'arxius. |
| tinyfd | Petita llibreria de diàleg natiu. |
| OpenAL | API d'àudio tridimensional. | ALC i altres extensions són donats suport. |
| OpenAL Soft | Implementació de codi lliure d'OpenAL. |
| bgfx | Biblioteca multiplataforma de renderització que dona suport a múltiples mòduls posteriors gràfics. |
| LibOVR | API d'Oculus Rift SDK. |
| NanoVG | Llibreria de renderització de vectors en 2D fent servir OpenGL. |
| Biblioteca senzilla de GUIs. |
| par shapes | Generador per paramètric i altres formes senzilles. |
| STB | Biblioteca d'arxiu sol lleugera per carregar imatges, sons i fonts. |
| dyncall | Biblioteca per cridar dinàmicament funcions C d'una manera portable. |
| jemalloc | Llibreria de baix nivell per al management de la memòria. |
| LMDB | Biblioteca de base de dades ràpida que utilitza memory-mapped files. |
| xxHash | Algoritme ràpid de hash. |

## Usos notables

* Minecraft

## Referències

* ↑ «LWJGL 3.0.0 Released!», 04-06-2016. [Consulta: 29 maig 2017].
* ↑ «LWJGL 3.1.0 Released!». , 30-10-2016 [Consulta: 11 novembre 2016].
* ↑ «Download – LWJGL». [Consulta: 11 novembre 2016].
* ↑ «minecraft.net – Credits». [Consulta: 6 agost 2016].

## Enllaços externs

* LWJGL - Lloc web oficial
* LWJGL a Github