O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

OpenGL /02 - Utilização

Iniciado por Makers, 22/01/2015 às 21:09

22/01/2015 às 21:09 Última edição: 25/01/2015 às 23:18 por Makers
OpenGL / 02 - Utilização
Matéria por: Isabel Harb Manssour



Como uma API, OpenGL segue a convenção de chamada da linguagem C. Isto significa que programas escritos em C podem facilmente chamar funções desta API, tanto porque estas foram escritas em C, como porque é fornecido um conjunto de funções C intermediárias que chamam funções escritas em assembler ou outra linguagem [Wright 2000].

Apesar de OpenGL ser uma biblioteca de programação "padrão", existem muitas implementações desta biblioteca, por exemplo, para Windows e para Linux. A implementação utilizada no ambiente Linux é a biblioteca Mesa. Também existem implementações para os compiladores Visual C++, Borland C++, Dev-C++, Delphi e Visual Basic. Para obter as bibliotecas e a documentação de cada implementação acesse http://www.opengl.org/.

No caso da implementação da Microsoft, o sistema operacional fornece os arquivos opengl32.dll e glu32.dll, necessários para execução de programas OpenGL. Além disso, são fornecidas com suas ferramentas de programação, como por exemplo com o Microsoft Visual C++, as bibliotecas opengl32.lib (OpenGL) e glu32.lib (GLU - biblioteca de utilitários OpenGL). Assim, para criar programas com ferramentas Microsoft que usem OpenGL, tal como o MS Visual C++ 6.0, é necessário adicionar estas duas bibliotecas à lista de bibliotecas importadas. Protótipos para todas as funções, tipos e macros OpenGL estão (por convenção) no header gl.h. Os protótipos da biblioteca de funções utilitárias estão em um arquivo diferente, glu.h. Estes arquivos normalmente estão localizados em uma pasta especial no path do include. O código abaixo mostra as inclusões típicas para um programa Windows que usa OpenGL [Wright 2000]:

#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>



Considerando o compilador MS Visual C++ 6.0, para utilizar a GLUT é necessário fazer o download desta biblioteca (clique aqui para fazer agora o download da GLUT para o MS Visual C++ 6.0), descompactar o arquivo e copiar: os arquivos glut.dll e glut32.dll para a pasta System do Windows (ou para a pasta System32 do Windows NT ou Windows 2000); os arquivos glut.lib e glut32.lib para a mesma pasta do ambiente de programação onde estão as outras bibliotecas (opengl32.lib e glu32.lib); e o arquivo glut.h para a mesma pasta do ambiente de programação onde estão os arquivos gl.h e glu.h [Wright 2000]. Estes arquivos normalmente estão compactados em um único arquivo que pode ser obtido em http://www.opengl.org/developers/documentation/glut/index.html.

Também é necessário criar um projeto no MS Visual C++ 6.0 da seguinte maneira:

     no menu File selecione a opção New;
     na janela aberta, selecione a opção Win32ConsoleApplication e coloque o nome do projeto e o local onde e le será gravado;
    depois, inicialmente, pode ser selecionada a opção An empty project;
    no menu Project selecione a opção Settings;
    na janela aberta, selecione a guia Link e acrescente na caixa de texto Object/library modules a(s) biblioteca(s) que devem ser linkadas com o programa, que são opengl32.lib e glu32.lib, ou também a glut32.lib;
    no final, adicione o arquivo fonte (.cpp) ao projeto, selecionando a opção Add to Project/Files do menu Project.

Resumindo, para utilizar OpenGL e GLUT com ferramentas Microsoft, no caso o MS Visual C++ 6.0, é necessário:

   
    1- Fazer o download e instalar a biblioteca GLUT;
    2- Criar um projeto para linkar as bibliotecas necessárias com o programa;
    3- Incluir os headers adequados (<gl/gl.h> e <gl/glu.h>, ou <gl/glut.h>).



A implementação da OpenGL utilizada no ambiente Linux, a biblioteca Mesa, não é uma implementação "oficial", é um projeto de software livre. A distribuição desta biblioteca, cuja versão 5.0 possui suporte para o conjunto de instruções da OpenGL 1.4, inclui makefiles e instruções para a sua correta utilização.


Prazer, Terror dos Modinha