GLFW é uma biblioteca multiplataforma de código aberto para desenvolvimento de aplicativos OpenGL, OpenGL ES e Vulkan. Ele fornece uma API simples e independente de plataforma para criar janelas, contextos e superfícies, ler entradas, manipular eventos, etc.
GLFW oferece suporte nativo a Windows, macOS e Linux e outros sistemas semelhantes ao Unix. No Linux, tanto Wayland quanto X11 são suportados.
GLFW é licenciado sob a licença zlib/libpng.
Você pode baixar a versão estável mais recente como fonte ou binários do Windows. Cada versão começando com 3.0 também possui uma tag anotada correspondente com arquivos de origem e binários.
A documentação está disponível online e incluída em todos os arquivos fonte e binários. Consulte as notas de versão para novos recursos, advertências e descontinuações na versão mais recente. Para mais detalhes consulte o histórico de versões.
O branch master
é o branch de integração estável e deve sempre ser compilado e executado em todas as plataformas suportadas, embora os detalhes dos recursos recém-adicionados possam mudar até que sejam incluídos em um lançamento. Novos recursos e muitas correções de bugs permanecem em outras ramificações até que estejam estáveis o suficiente para serem mesclados.
Se você é novo no GLFW, o tutorial do GLFW 3 pode ser útil. Se você já usou o GLFW 2 no passado, há um guia de transição para migrar para a API do GLFW 3.
O GLFW existe devido às contribuições de muitas pessoas ao redor do mundo, seja relatando bugs, fornecendo suporte à comunidade, adicionando recursos, revisando ou testando código, depurando, revisando documentos, sugerindo recursos ou corrigindo bugs.
GLFW é escrito principalmente em C99, com partes do suporte ao macOS sendo escritas em Objective-C. O próprio GLFW requer apenas os cabeçalhos e bibliotecas para o seu sistema operacional e sistema de janelas. Ele não precisa de nenhum cabeçalho adicional para APIs de criação de contexto (WGL, GLX, EGL, NSGL, OSMesa) ou APIs de renderização (OpenGL, OpenGL ES, Vulkan) para habilitar o suporte para eles.
GLFW suporta compilação em Windows com Visual C++ 2013 e posterior, MinGW e MinGW-w64, em macOS com Clang e em Linux e outros sistemas semelhantes a Unix com GCC e Clang. Provavelmente também será compilado em outros ambientes, mas não é testado regularmente.
Existem binários pré-compilados disponíveis para todos os compiladores suportados no Windows e macOS.
Consulte o guia de compilação para obter mais informações sobre como compilar o GLFW você mesmo.
Consulte a documentação para tutoriais, guias e referência da API.
Consulte o guia de contribuição para obter mais informações.
GLFW oferece suporte a Windows XP e posterior e macOS 10.11 e posterior. Linux e outros sistemas semelhantes ao Unix que executam o X Window System são suportados mesmo sem um ambiente de desktop ou extensões modernas, embora alguns recursos exijam uma janela em execução ou um gerenciador de área de transferência. O back-end do OSMesa requer Mesa 6.3.
Consulte o guia de compatibilidade na documentação para obter mais informações.
O próprio GLFW precisa apenas do CMake 3.16 ou posterior e dos cabeçalhos e bibliotecas para seu sistema operacional e sistema de janelas.
Os exemplos e programas de teste dependem de uma série de pequenas bibliotecas. Eles estão localizados no diretório deps/
.
A documentação é gerada com Doxygen se o CMake puder encontrar essa ferramenta.
Bugs são relatados ao nosso rastreador de problemas. Por favor, verifique o guia de contribuição para obter informações sobre o que incluir ao relatar um bug.
GLFW_UNLIMITED_MOUSE_BUTTONS
que permite que botões do mouse além do limite dos tokens de botão do mouse sejam relatados (#2423)QuartzCore
como dependência de tempo de linkglfwInit
causaria falha de segmentação no compositor sem assento (#2517)VK_EXT_headless_surface
EGL_MESA_platform_surfaceless
GLFW_CONTEXT_CREATION_API
definido como GLFW_NATIVE_CONTEXT_API
(#2518) Em glfw.org você encontra a versão mais recente do GLFW, além de notícias, documentação e outras informações sobre o projeto.
Se você tiver dúvidas relacionadas ao uso do GLFW, temos um fórum.
Se você tiver um bug para relatar, um patch para enviar ou um recurso que gostaria de solicitar, registre-o no rastreador de problemas no GitHub.
Por fim, se você estiver interessado em ajudar no desenvolvimento do GLFW ou portá-lo para sua plataforma favorita, junte-se a nós no fórum ou no GitHub.