Tutorial OpenGL v2.0
Finalmente chegou! Após quase 1 ano depois de meu primeiro artigo sobre OpenGL, chegou a versão 2.0. Clique e fique mais Geek.
[ Hits: 18.357 ]
Por: Thiago Henrique Hüpner em 08/05/2015
#include <SDL/SDL.h> #include <SDL/SDL_opengl.h> #define LARGURA 400 #define ALTURA 400 void inicializaOpenGL(){ glClearColor(255,255,255,1); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0,LARGURA,ALTURA,0); glMatrixMode(GL_MODELVIEW); glClear(GL_COLOR_BUFFER_BIT); } // Simulando o SDL_FillRect void GL_FillRect(SDL_Rect a,int r,int g,int b){ glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); glColor3ub(r,g,b); glBegin(GL_QUADS); // Lado Superior Esquerdo glVertex2f(a.x,a.y); // Lado Superior Direito glVertex2f(a.x+a.w,a.y); // Lado Inferior Direito glVertex2f(a.x+a.w,a.y+a.h); // Lado Inferior Esquerdo glVertex2f(a.x,a.y+a.h); glEnd(); } int main(int argc,char *argv[]){ if(SDL_Init(SDL_INIT_VIDEO) < 0){ printf("Erro : %s ",SDL_GetError()); return -1; } SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 8 ); SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 8 ); SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 8 ); SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8 ); SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 2 ); SDL_Surface * tela = SDL_SetVideoMode(LARGURA,ALTURA,32,SDL_OPENGL); if(tela == NULL){ printf("Erro : %s ",SDL_GetError()); SDL_Quit(); return -1; } SDL_WM_SetCaption("Tudo Junto e Misturado",NULL); SDL_Event evento; int estaRodando = 1; SDL_Rect retangulo; inicializaOpenGL(); while(estaRodando){ while(SDL_PollEvent(&evento)){ switch(evento.type){ case SDL_QUIT: estaRodando = 0; break; default: break; } } // Propriedades do Retangulo // Posição X retangulo.x = 10; // Posição Y retangulo.y = 10; // Aqui a coisa começa a ficar interessante ... // Podemos alterar a Largura do Retangulo e ... retangulo.w = 50; // ... a Altura do Retangulo retangulo.h = 50; GL_FillRect(retangulo,255,0,0); SDL_Delay(30); SDL_GL_SwapBuffers(); } SDL_Quit(); return 0; }
Ubuntu/Debian/Kali Linux e outros no Android
Criando programas com suporte a arquivos de configuração com a libConfuse
Aprendendo a utilizar o GNU Debugger (parte 1)
Detectando assalto na multidão com visão computacional
Substituindo a biblioteca conio.h no Linux usando ncurses curses.h
Utilizando a biblioteca NCURSES - Parte III
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Linux Lite Demorando Muito Para Ligar (1)
PC não liga no filtro de linha (4)
Remoção de propaganda com o programa Comskip[AJUDA] (2)