Loading AI tools
Da Wikipédia, a enciclopédia livre
GLUT (OpenGL Utility Toolkit) é uma biblioteca de funcionalidades para OpenGL cujo principal objetivo é a abstração do sistema operacional fazendo com que os aplicativos sejam multiplataforma. A biblioteca possui funcionalidades para criação e controle de janelas, e também tratamento de eventos de dispositivos de entrada (mouse e teclado). Também existem rotinas para o desenho de formas tridimensionais pré-definidas (como cubo, esfera, bule, etc).
Este artigo não cita fontes confiáveis. (Junho de 2011) |
Desenvolvedor | Mark Kilgard |
Plataforma | Multiplataforma |
Sistema operativo | Multiplataforma |
Gênero(s) | API |
Página oficial | freeglut |
Repositório | github |
A biblioteca foi escrita por Mark Kilgard (autor de livros sobre computação gráfica) enquanto ele trabalhava para a empresa Silicon Graphics.
Os dois objetivos da API são: a criação de aplicativos totalmente independente do sistema operacional e fazer com que o aprendizado de OpenGL torne-se mais simples. Criar aplicações básicas em GLUT demandam apenas poucas linhas de código enquanto fazer o mesmo programa sem utilizar GLUT poderia resultar em dezenas de linhas.
Todas as funções possuem o prefixo glut
(por exemplo, glutPostRedisplay
, função que marca a janela da aplicação para ser redesenhada).
A versão original da biblioteca foi desenvolvida suportando apenas o X Window System (GLX) e foi portada para o Microsoft Windows (WGL) por Nate Robins.
A versão de Mark Kilgard não continua sendo desenvolvida (sem manutenção e sem novas funcionalidades) e sua licença não permite redistribuição ou versões modificadas da biblioteca. Isto aumentou a necessidade de uma versão livre da biblioteca, cuja primeira foi freeglut, que pretendia ser um clone exato da versão original e acrescentou poucas novas funções. Existe também uma versão chamada OpenGLUT, uma ramificação da freeglut, que adiciona diversas novas funcionalidades, porém seu desenvolvimento também está inativo.
Devido ao design original da biblioteca muitas tarefas são muito difíceis de serem executadas utilizando-se GLUT, o que acarretou na criação de uma grande quantidade de patches e extensões.
Algumas da limitações mais notáveis da biblioteca são:
glutMainLoop()
, que nunca retorna um valor. Isto torna a integração um sério problema uma vez que diversas bibliotecas ou até programas precisam ter controle do loop de execução. Existe um patch comum que introduz uma função chamada glutCheckLoop()
que executa apenas uma iteração do loop de eventos.glutMainLoop
nunca retornar um valor significa que um programa feito com o GLUT nunca poderá sair do loop de eventos. freeglut tenta resolver este problema adicionando a função glutLeaveMainLoop
.glutWMCloseFunc()
.Uma vez que não há ninguém mantendo a biblioteca os problemas de design citados acima ainda estão presentes.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.