¿con OpenGL ? a ver ... no entiendo a qué te referís con iniciar gráficos ... es una pregunta ambigua ...
la explicación de lo que entendí va a ser corta ... ya que si bien lo que planteás no es mucho, tiene un buen trasfondo teórico que da para 200 hojas o más ...
si mal no recuerdo usabas ubuntu, fijate de conseguirte el paquete freeglut-dev para no liarte con temas de la plataforma, como GLX, que es bastante denso para alguien que empieza ...
si usás windows, bajate freeglut de este sitio :
http://bit.ly/aB2Ojq y compilalo, para usarlo en tus proyectos ...
otra sugerencia sería que leas "OpenGL SuperBible 4th edition" o "Beginning OpenGL game programming", por que hay un transfondo teórico que no voy a tocar ... si no conseguís el libro, mandame un PM ...
pero bueno, contestando la pregunta de forma rápida y concisa... para iniciar el modo gráfico, usando freeglut y tener una pantallita en negro sería algo así :
#include <stdio.h>
#include <GL/freeglut.h>
#include <GL/gl.h>
/////////////////////////////////////////
void renderCallback()
{
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}
/////////////////////////////////////////
void setupRendering()
{
glClearColor(0.0f,0.0f,0.0f,1.0f);
}
/////////////////////////////////////////
int main(int argc, char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA); // Para single buffering
glutCreateWindow("Ventana");
glutDisplayFunc(renderCallback);
setupRendering()
glutMainLoop();
}
en caso de que quieras usar doble buffer en vez de single : GLUT_DOUBLE
y además en vez de hacer un
glFlush() para enviar los comandos que puedan estar en el buffer ....
tenés que swapear los buffers usando la función de glut
glutSwapBuffers() ~( que implícitamente llama a glFlush())
Ahora, para poner formas básicas, primero tenés que tener una función de reshape, una función para rearmar el sistema de coordenadas ... es más complejo que esto, por que depende de qué tipo de proyección uses y como definas el viewport ...
en fin .. la función para setear dicho callback es
glutReshapeFunc()Ya teniendo una función de reshape, dentro de renderCallBack(), establecés un tipo de primitiva con
glBegin() y empezás a enviar vértices con la familia de funciones
glVertex*()para terminar de enviar los vértices de dicha primitiva ... con
glEnd() estás ....
Para limpiar pantalla, como mencioné ahí,
glClear() limpiando el buffer de interés ...
Pues si man me di cuenta tarde de eso por que usar los simples graficos es igual a parpadeo... pero por otra parte no voy a trabajar con graficos avanzados, y ademas estoy busque y busque algo sobre OpenGl para DevC pero nada que me encuentro... muchas gracias man!
oh, dev-c++ ? no sé si trae para opengl incorporado, por que usa una versión viejita de mingw ...
ni idea, pero como te dijeron, el estándar es el mismo =)
pasaba rapidito, Saludos ~