GLFW
Este artigo ou secção necessita de referências de fontes secundárias confiáveis e independentes. (Setembro de 2018) |
Desenvolvedor | The GLFW Development Team |
Plataforma | Multiplataforma |
Versão estável | 3.3.4 (8 de abril de 2021[1]) |
Escrito em | C |
Sistema operativo | Multiplataforma |
Gênero(s) | API |
Licença | zlib/libpng[2] |
Estado do desenvolvimento | Ativo |
Página oficial | www |
GLFW é uma biblioteca para uso com OpenGL. Seu nome é um acrônimo para Graphics Library Framework e permite que programadores possam criar e gerenciar janelas e contextos OpenGL, assim como interagir com joystick, mouse e teclado.
Arquitetura de Software
[editar | editar código-fonte]A GLFW é uma biblioteca pequena escrita em linguagem C que permite a criação e gerenciamento de janelas em um contexto OpenGL, tornando possível também o uso de múltiplos monitores e modos de vídeo. Fornece acesso de leitura de teclado, mouse e joysticks. A API fornece uma fina camada de abstração multiplataforma, principalmente para aplicações cuja única saída gráfica é através da API OpenGL. Embora a GLFW seja muito útil para desenvolver aplicações OpenGL multiplataforma, desenvolvedores voltados a apenas uma plataforma também podem se beneficiar ao evitar terem que lidar com APIs mal feitas específicas da plataforma.
Um motivo para que bibliotecas como a GLFW sejam necessárias é que a OpenGL por si só não fornece mecanismos para criar o contexto necessário e gerenciar janelas, entradas do usuário, tempo, etc. Existem muitas outras bibliotecas disponíveis para auxiliar no desenvolvimento OpenGL. As mais comuns são freeglut (uma implementação de código aberto da GLUT) e SDL. No entanto, a freeglut é focada em ser um clone estável da GLUT, enquanto a SDL é muito grande para os interesses de algumas pessoas e nunca teve OpenGL como seu principal foco. A GLFW está baseada na suposição de que há espaço para uma biblioteca leve e moderna para gerenciar contextos OpenGL, janelas e dispositivos de entrada.
A GLFW não foi projetada para ser:[3]
- uma biblioteca para interface gráfica do usuário. Ela permite que o programador crie janelas de nível superior com contextos OpenGL, mas sem menus ou botões.
- uma biblioteca apenas para Windows. Solicitações de recursos que não podem ser portados para outras plataformas serão negadas a menos que sejam discretas, como a implementação para Windows da procura por um recurso GLFW_ICON na criação de uma janela.
- uma biblioteca de threads. Já existem boas bibliotecas multiplataforma para lidar com threads. Além disso, esse recurso foi adicionado às bibliotecas padrão tanto em C11 quanto em C++11.
- uma biblioteca de carga de imagens. Já existem boas bibliotecas multiplataforma para carregamento de imagens.
- capaz de renderizar texto. Já existem várias bibliotecas para renderização de texto com OpenGL, e renderizadores de texto multiplataforma consistentes não podem, de forma alguma, depender de recursos de renderização de texto específicos de uma plataforma.
- capaz de renderizar qualquer coisa. A renderização está a cargo do programador e/ou outras bibliotecas.
- integrada a quaisquer kit de ferramentas de interface em nenhuma plataforma.
- capaz de reproduzir som.
- GLUT ou SDL.
Vínculos com linguagens de programação
[editar | editar código-fonte]Embora a GLFW tenha sido escrita em C, existem vínculos para usar a API com outras linguagens de programação, incluindo Ada, Common Lisp, D, Go, Haskell, Java, Python, Ruby e Rust, entre outras.[4]
Back-ends
[editar | editar código-fonte]A série 3.3.x da GLFW traz novas funcionalidades e várias correções de bugs, entre outras melhorias.[5]
Ver também
[editar | editar código-fonte]Referências
- ↑ «GLFW - Version history» (em inglês). Consultado em 15 de junho de 2021. Cópia arquivada em 29 de junho de 2018
- ↑ «GLFW - License» (em inglês). Consultado em 9 de setembro de 2018. Cópia arquivada em 29 de junho de 2018
- ↑ «What is GLFW not?» (em inglês). Consultado em 9 de setembro de 2018. Cópia arquivada em 21 de junho de 2018
- ↑ «GLFW - Community» (em inglês). Consultado em 9 de setembro de 2018. Cópia arquivada em 21 de junho de 2018
- ↑ «GLFW: New features» (em inglês). Consultado em 9 de setembro de 2018. Cópia arquivada em 6 de fevereiro de 2018
Ligações externas
[editar | editar código-fonte]- (em inglês) Site oficial
- (em inglês) Página no Github