GLFW

GLFW – Graphics Library Framework
DesenvolvedorThe GLFW Development Team
Lançamento estável
3.4.0 / 23 de abril de 2024; há 2 anos[1]
Repositório
Escrito emC
Sistema
operacional
Multiplataforma
PlataformaMultiplataforma
TipoAPI
Licençazlib/libpng[2]
Websitewww.glfw.org

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

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

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

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

Referências

  1. {{Citar web |url=https://www.glfw.org/changelog.html |título=GLFW - Version history |acessodata=27 de dezembro de 2025
  2. {{Citar web |url=http://www.glfw.org/license.html |título=GLFW - License |acessodata=27 de dezembro de 2025
  3. «What is GLFW not?» (em inglês). Consultado em 9 de setembro de 2018. Cópia arquivada em 21 de junho de 2018 
  4. «GLFW - Community» (em inglês). Consultado em 9 de setembro de 2018. Cópia arquivada em 21 de junho de 2018 
  5. «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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.