Acabei de descobrir que o GLUT é obsoleto.
É o que acontece quando você aceita a primeira resposta que encontra; você recebe informações ruins. O GLUT 3.7 não deve ser usado, mas o FreeGLUT é completamente compatível com ele.
No entanto, sua pergunta vai para outro lugar. Para fazer um jogo real, GLUT de * forma é inapropriada. Não dá a você o controle do loop principal, e você realmente precisa disso em um jogo (o FreeGLUT tem uma maneira de controlar o loop principal, mas ainda é estranho). GLUT é para escrever demonstrações gráficas. Isso é muito importante ao testar novos efeitos gráficos; portanto, ele deve estar na sua caixa de ferramentas quando necessário. Mas o seu código principal do jogo nunca deve usá-lo.
O GLFW é uma alternativa leve e centrada no jogo ao GLUT. Ele fornece suporte básico para coisas além da criação de uma janela OpenGL. Ele permite que você obtenha informações, carregue imagens como texturas e outras coisas.
SDL , SFML e Allegro 5 são todos kits de ferramentas multimídia. Eles podem criar janelas OpenGL, mas fazem muito mais que isso. Eles fornecem suporte completo para entrada, áudio e várias outras coisas necessárias para criar um jogo. Se você está fazendo um jogo, qualquer um desses é um bom ponto de partida. Pessoalmente, gosto do Allegro 5, mas esse é apenas o meu viés para uma boa documentação e uma API limpa.
Você pode encontrar alternativas para GLUT nesta página:
http://www.opengl.org/resources/libraries/windowtoolkits/
Para isso, eu também adicionaria SFML:
http://www.sfml-dev.org/index.php
fonte
Se seu objetivo é desenvolver um jogo,
Depende se você deseja que seu jogo seja multiplataforma ou não. Para jogos portáteis (Windows, Mac, Linux), SDL parece ser a única opção.
Se você segmentar apenas o Windows e / ou o XBox, existem alternativas muito melhores, por exemplo, o XNA, que o libera de escrever muito código manualmente.
Se seu objetivo é aprender OpenGL,
Basta programar em OpenGL bruto, mas esteja preparado para enfrentar muitos conceitos não intuitivos, matemática e grandes manuais.
fonte
GLUT é uma API e também uma biblioteca. A biblioteca original é realmente obsoleta. A API é uma coisa diferente, foi muito bom começar, ela só precisa de revisões para superar as limitações e atender a novas necessidades. A principal implementação atual é o FreeGLUT, que é suportado e não obsoleto. Isso significa que uma boa alternativa ao GLUT (como na biblioteca GLUT) é GLUT (como no FreeGLUT).
O problema observado acima com "controle do loop principal" está incorreto. Com as versões GLUT mais recentes, você pode ter um melhor controle sobre o loop do jogo (se isso for importante para você). A limitação foi corrigida por glutMainLoopEvent (). Esta e outras limitações são abordadas aqui:
http://en.wikipedia.org/wiki/OpenGL_Utility_Toolkit
fonte
glutMainLoopEvent
dificilmente é uma boa maneira de gerenciar o loop principal. Ele ainda usa um modelo orientado a eventos para fornecer dados, em vez de um modelo de pesquisa onde você obtém os dados desejados quando os deseja.O Qt suporta o OpenGL. Dê uma olhada no Open Inventor e considere se faz sentido ir diretamente para uma API 3D de nível superior.
fonte