Fayo al compilar Open GL en mac
Publicado por Pascual (2 intervenciones) el 09/11/2009 12:46:44
tengo un programa que escribe las letras G.P.O., al compilarlo en unix me va perfecto, pro al hacerlo en mac os x el compilador me da un warning(deprecated conversion from string constant to ‘char*’ ) lo compilo con (g++ -framework GLUT -framework OpenGL -framework Cocoa -framework OpenGl pract1_1.cpp -o pract1_1) cuand ejecuto pract1_1 se me muestra una pantalla en blanco.
el codigo es:
#ifdef __APPLE__
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
#else
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#endif
#include <fstream>
#define an 640
#define al 480
using namespace std;
// Mi_inicio
void myInit(void)
{
glClearColor(1.0,1.0,1.0,1.0); //Selecciona el color de fondo
glColor3f(1.0f, 0.0f, 0.0f); //El color a dibujar
glPointSize(4.0); //Tamaño de los puntos
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,(double) an,0.0,(double)al);
}
void dibuja_puntos(char *archivo)
{
fstream Entrada;
Entrada.open(archivo, ios ::in); //abre el fichero
if(Entrada.fail())
return;
glClear(GL_COLOR_BUFFER_BIT); //limpia la pantalla
GLint num_puntos, x, y;
GLfloat tama_pixel;
Entrada >> tama_pixel; //lee el tamaño de pixel
glPointSize(tama_pixel); //asigna el tamaño de pixel
Entrada >> num_puntos; //lee el número de puntos
for(int j =0; j < num_puntos; j++) //lee cada polilínea
{
glBegin(GL_POINTS); //dibuja la siguiente polilínea
Entrada >> x >> y; //lee el siguiente par de x, y
glVertex2i(x ,y);
glEnd(); }
glFlush();
Entrada.close();
}
void miDibujo(void)
{
char *archivo;
archivo="puntos.dat";
dibuja_puntos(archivo);
}
// MAIN
int main (int argc, char** argv)
{
glutInit(&argc, argv); //Inicializa toolkit
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // Modo pantalla
glutInitWindowSize(an,al); //Tamaño de la ventana
glutInitWindowPosition(100,150);//Posición de ventana en pantalla
glutCreateWindow("Practica 1_1");//Abre la ventana
glutDisplayFunc(miDibujo); //Registra la función de redibujar
myInit();
glutMainLoop(); //Bucle continuo
return 0;
}
estoy seguro k al pasar de unix a mac hay k cambiar algo mas!! espero k me podais ayudar, incluyo tb el fichero para que podais hacer pruevas.
el codigo es:
#ifdef __APPLE__
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
#else
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#endif
#include <fstream>
#define an 640
#define al 480
using namespace std;
// Mi_inicio
void myInit(void)
{
glClearColor(1.0,1.0,1.0,1.0); //Selecciona el color de fondo
glColor3f(1.0f, 0.0f, 0.0f); //El color a dibujar
glPointSize(4.0); //Tamaño de los puntos
glMatrixMode (GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0.0,(double) an,0.0,(double)al);
}
void dibuja_puntos(char *archivo)
{
fstream Entrada;
Entrada.open(archivo, ios ::in); //abre el fichero
if(Entrada.fail())
return;
glClear(GL_COLOR_BUFFER_BIT); //limpia la pantalla
GLint num_puntos, x, y;
GLfloat tama_pixel;
Entrada >> tama_pixel; //lee el tamaño de pixel
glPointSize(tama_pixel); //asigna el tamaño de pixel
Entrada >> num_puntos; //lee el número de puntos
for(int j =0; j < num_puntos; j++) //lee cada polilínea
{
glBegin(GL_POINTS); //dibuja la siguiente polilínea
Entrada >> x >> y; //lee el siguiente par de x, y
glVertex2i(x ,y);
glEnd(); }
glFlush();
Entrada.close();
}
void miDibujo(void)
{
char *archivo;
archivo="puntos.dat";
dibuja_puntos(archivo);
}
// MAIN
int main (int argc, char** argv)
{
glutInit(&argc, argv); //Inicializa toolkit
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); // Modo pantalla
glutInitWindowSize(an,al); //Tamaño de la ventana
glutInitWindowPosition(100,150);//Posición de ventana en pantalla
glutCreateWindow("Practica 1_1");//Abre la ventana
glutDisplayFunc(miDibujo); //Registra la función de redibujar
myInit();
glutMainLoop(); //Bucle continuo
return 0;
}
estoy seguro k al pasar de unix a mac hay k cambiar algo mas!! espero k me podais ayudar, incluyo tb el fichero para que podais hacer pruevas.
Valora esta pregunta


0