Tutorial OpenGL v3.0
Nesse artigo, trago-lhes a biblioteca SFML junto com OpenGL.
[ Hits: 18.557 ]
Por: Thiago Henrique Hüpner em 15/06/2015
#include <SFML/OpenGL.hpp>
#include <SFML/Graphics.hpp>
// Função que Desenha na Tela
void desenhaNaTela(){
// 'Limpa' a tela usando a cor de 'limpar' a tela
glClear(GL_COLOR_BUFFER_BIT);
// Define a Cor de 'limpar' para Branco usando
// Red Blue Green Alpha
glClearColor(255.0f, 255.0f, 255.0f, 1.0f);
// Reinicia todas as transformações e/ou rotações
glLoadIdentity();
// Rotaciona x por y com 0 de profundidade (usado p/ jogos 3D)
glTranslatef(400/2,400/2,0);
// Começa a desenhar Quadrados
glBegin(GL_QUADS);
// Colori de Verde
glColor3f ( 0.0f, 1.0f, 0.0f );
// Lado Inferior Esquerdo
glVertex2f( 0, 10.0f );
// Colori de Vermelho
glColor3f ( 1.0f, 0.0f, 0.0f );
// Lado Superior Esquerdo
glVertex2f( 0, 0 );
// Colori de Amarelo
glColor3f ( 1.0f, 1.0f , 0.0f);
// Lado Superior Direito
glVertex2f( 10.0f, 0 );
// Colori de Azul
glColor3f ( 0.0f, 0.0f, 1.0f );
// Lado Inferior Direito
glVertex2f( 10.0f, 10.0f );
// Termina de Desenhar
glEnd();
}
// Funcao para inicializar o OpenGL
void inicializaOpenGL() {
// Define a Cor de 'limpar' para Branco usando
// Red Blue Green Alpha
glClearColor(255.0f, 255.0f, 255.0f, 1.0f);
// Avisa o OpenGL que qualquer alteração futura
// afetará a Câmera ( O Observador)
glMatrixMode(GL_PROJECTION);
// Reinicia todas as transformações e/ou rotações
glLoadIdentity();
// Define a projeção cartesiana 2D iniciando de (0,0)
// No Lado Superior Esquerdo (ficando igual a projeção do SDL 'puro')
gluOrtho2D(0,400,400,0);
// Avisa o OpenGL que qualquer alteração futura
// afetará o/os desenho/desenhos
glMatrixMode(GL_MODELVIEW);
// 'Limpa' a tela usando a cor de 'limpar' a tela
glClear(GL_COLOR_BUFFER_BIT);
}
int main(void) {
// Cria uma janela de 400x400 com o titulo "Teste com OpenGL"
sf::RenderWindow janela (sf::VideoMode(400,400),"Teste com OpenGL");
// Variavel booleana para indicar se o programa "estaRodando"
bool estaRodando = true;
// Variavel para Eventos
sf::Event evento;
// Inicializa o OpenGL
inicializaOpenGL();
// Main Loop
while(estaRodando) {
// Se existir eventos coloca na variavel
while(janela.pollEvent(evento)) {
// Se foi clicado no 'X' da janela
if(evento.type == sf::Event::Closed) {
// "estaRodando" é falsa
estaRodando = false;
}
}
// Comecar o OpenGL aqui
desenhaNaTela();
janela.display();
}
janela.close();
return 0;
}

Ubuntu/Debian/Kali Linux e outros no Android
Algum humor e C++ Design Patterns (parte 1)
Android NDK: Desmistificando o acesso a códigos nativos em C
Ponteiros - Saindo de Pesadelos
openCertiface: Biométrica Facial em nuvem baseada em software livre
Desenvolvendo aplicativo para autenticação biométrica utilizando a Libfprint
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Estou tentando ser legalista, mas tá complicado! (0)
É normal não gostar de KDE? (17)
PERFIL CRIADO NO SAMBA AD DC NÃO LOGA NO WINDOWS 10 E 11 (0)
PERFIL CRIADO NO SAMBA AD DC NÃO LOGA NO WINDOWS 10 E 11 (1)









