O que é o GLEW e como ele funciona?


15

Estou procurando uma explicação para iniciantes . A explicação do site oficial é muito curta e me leva a mais perguntas do que respostas:


  • O que é o GLEW?

A página do desenvolvedor do GLEW diz:

A OpenGL Extension Wrangler Library (GLEW) é uma biblioteca de carregamento de extensões C / C ++ de código aberto de plataforma cruzada . O GLEW fornece mecanismos eficientes de tempo de execução para determinar quais extensões OpenGL são suportadas na plataforma de destino.


  • Mas o que é uma biblioteca de carregamento de extensões?

O wiki do OpenGL diz

Uma biblioteca de carregamento do OpenGL é uma biblioteca que carrega ponteiros para as funções do OpenGL em tempo de execução, núcleo e extensões .


  • O que significa carregar ponteiros para as funções do OpenGL ?

  • O que é uma extensão ?

  • O que significa " núcleo, bem como extensões "?

Respostas:


20

A maioria dos compiladores fornece um cabeçalho OpenGL que fornece suporte ao OpenGL 1.1, mas a maioria das funções fornecidas nessa versão do OpenGL há muito tempo foi reprovada e carece de recursos importantes, como shaders e objetos de buffer de vértice. O GLEW é basicamente apenas um cabeçalho (existe um arquivo de origem que também deve ser compilado, mas você pode apenas incluí-lo no seu projeto) que fornece a funcionalidade OpenGL mais recente.

O que significa extensão?

Aqui está um link do OpenGL.org sobre eles. São apenas funções adicionais para o OpenGL que não fazem parte do OpenGL. Eles fornecem funcionalidades que podem ser úteis, mas você não pode garantir que eles funcionem em todos os computadores, pois eles não fazem parte do OpenGL principal.

O que significa carregar ponteiros para as funções do OpenGL?

O OpenGL é implementado pelo driver gráfico como um monte de funções implementadas de acordo com as especificações, não como uma biblioteca independente, portanto, não pode ser simplesmente vinculado ao seu projeto.

É necessário chamar uma função (como GetProcAddress, mas depende da plataforma para a qual você está desenvolvendo) para obter o ponteiro da função em tempo de execução do driver para cada função do OpenGL.

O GLEW existe porque fazer exatamente isso pode ser muito difícil. É muito mais fácil quando você pode apenas incluir um cabeçalho e chamar uma função durante a inicialização, que é exatamente o que o GLEW faz. Além disso, o GLEW é multiplataforma.

O que significa "núcleo, bem como extensões"?

Isso significa que ele fornece funções OpenGL, bem como extensões OpenGL.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.