GLFW
# GLFW

GLFW es una biblioteca de utilidad ligera para uso con OpenGL. Proporciona a los programadores la capacidad de crear y dirigir ventanas y aplicaciones OpenGL, así como recibir la entrada de joystick, teclado y ratón.

## Arquitectura de software

GLFW Es una pequeña librería de C que habilita la creación y administración de ventanas con OpenGL, enumerar monitores y modos de vídeo, así como entradas de teclado, ratón, joystick. GLFW Proporciona una delgada capa de compatibilidad, principalmente para aplicaciones cuya representación gráfica es a través de OpenGL API. GLFW provee una sencilla de compatibilidad para múltiples plataformas que ejecuten aplicaciones OpenGL, los desarrolladores se benefician de esto ya que permite tener un acceso más directo a la API específica de la plataforma.

Bibliotecas como GLFW son necesarias, porque OpenGL no proporciona mecanismos para crear control de ventanas, entrada de usuario, etc. Hay muchas otras bibliotecas disponibles para ayudar a OpenGL en el desarrollo. Las más comunes son freeglut, una implementación de Código abierto de GLUT, y SDL. Aun así, freeglut no es suficientemente estable para proporcionar un clon de GLUT, mientras SDL es demasiado grande para algunas personas y nunca ha tenido OpenGL como su foco principal. GLFW Está preparado para ser una biblioteca ligera, moderna para gestionar OpenGL, ventanas y entradas de usuario.

GLFW no está diseñado para ser

* Una biblioteca para la interfaz del usuario. Esto permite que el desarrollador permita crear su propia interfaz.
* Una biblioteca únicamente en Windows. Peticiones para características que no puede ser porteadas debido a que causarían incompatibilidad con otros sistemas.
* Una librería de carga de imágenes. Ya hay una gran cantidad de librerías multiplataforma que hacen esto.
* Capaz de renderizar texto. Ya hay varias bibliotecas que renderizan texto con OpenGL y que son multiplataforma.
* Capaz de renderizar cualquier cosa. El renderizado está hecho por el desarrollador u otras librerías.
* Capaz de reproducir cualquier sonido.

### Adaptaciones a otros lenguajes

A pesar de que GLFW está escrito en C, hay adaptaciones que existen para utilizar al API con otros lenguajes de programación que incluyen Ada, C Sharp, Common Lisp, D, Go, Haskell, Java, Nim, Python, Rebol, Red, Ruby y Rust.

* Ada: OpenGLAda
* C Sharp: glfw-net
* Common Lisp: cl-glfw3
* D: derelict-glfw3
* Go: go-gl/glfw
* Haskell: GLFW-b
* Java: jglfw
* Nim: nim-glfw
* Python: pypi/glfw
* Rebol: glfw-rebol
* Red: glfw-red
* Ruby: ruby-glfw3
* Rust: glfw-rs
