Kit de herramientas de utilidad OpenGL

Ajustar Compartir Imprimir Citar

El OpenGL Utility Toolkit (GLUT) es una biblioteca de utilidades para programas OpenGL, que principalmente realizan E/S a nivel de sistema con el sistema operativo host. Las funciones realizadas incluyen definición de ventana, control de ventana y monitoreo de entrada de teclado y mouse. También se proporcionan rutinas para dibujar una serie de primitivas geométricas (tanto en modo sólido como alámbrico), incluidos cubos, esferas y la tetera de Utah. GLUT también tiene un soporte limitado para crear menús emergentes.

GLUT fue escrito por Mark J. Kilgard, autor de OpenGL Programming for the X Window System y The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics, mientras trabajaba para Silicon Graphics Inc.

Los dos objetivos de GLUT son permitir la creación de código portátil entre sistemas operativos (GLUT es multiplataforma) y facilitar el aprendizaje de OpenGL. Comenzar con la programación de OpenGL mientras usa GLUT a menudo requiere solo unas pocas líneas de código y no requiere conocimiento de las API de ventanas específicas del sistema operativo.

Todas las funciones de GLUT comienzan con el prefijo glut (por ejemplo, glutPostRedisplay marca la ventana actual como que necesita ser redibujada).

Implementaciones

La biblioteca GLUT original de Mark Kilgard es compatible con el sistema X Window (GLX) y Nate Robins la transfirió a Microsoft Windows (WGL). Además, macOS se envía con un marco GLUT que admite su propio NSGL/CGL.

La biblioteca GLUT de Kilgard ya no se mantiene y su licencia no permitía la redistribución de versiones modificadas de la biblioteca. Esto estimuló la necesidad de software libre o reimplementaciones de código abierto de la API desde cero. La primera biblioteca de este tipo fue FreeGLUT, que pretende ser una reproducción razonablemente fiel, aunque introduce una pequeña cantidad de funciones nuevas para hacer frente a las limitaciones de GLUT. OpenGLUT, una bifurcación de FreeGLUT, agrega una serie de características nuevas a la API original, pero el trabajo cesó en mayo de 2005.

Mark Kilgard tiene un repositorio de GitHub para GLUT. El archivo de cabecera glut.h contiene la siguiente licencia:

* Derechos de autor c) Mark J. Kilgard, 1994, 1995, 1996, 1998, 2000, 2006, 2010. */

/* Este programa se distribuye libremente sin honorarios de licencia y es
proporcionado sin garantía o garantía expresada o implícita. Esto
programa es -no- en el dominio público. */

Limitaciones

Algunas de las decisiones de diseño originales de GLUT dificultaron que los programadores realizaran las tareas deseadas. Esto llevó a muchos a crear parches y extensiones no canónicos para GLUT.[1] Algunas reimplementaciones de software gratuito o de código abierto también incluyen correcciones.

Algunas de las limitaciones más notables de la biblioteca GLUT original incluyen:

Dado que ya no se mantiene (esencialmente reemplazado por FreeGLUT de código abierto), los problemas de diseño anteriores aún no se resuelven en el GLUT original.