Ganon
2012-03-21, 17:32:42
Heyho.
Ich habe hier ein Problem mit SDL und GL_POINTS.
Und zwar will ich eine 2D-Datenmenge punktweise zeichnen. Ich initialisiere OpenGL so:
glClearColor(0.0f, 1.0f, 0.0f, 0.0f);
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (h == 0) h = 1;
gluOrtho2D(0.0, w, h, 0.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
und testweise male ich einfach mal ein graues Bild:
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POINTS);
for (uint32_t y=0; y<height; y++) {
for (uint32_t x=0; x<width; x++) {
float r = 0.5f;
float g = 0.5f;
float b = 0.5f;
glColor3f(r, g, b);
glVertex2i(x,y);
}
}
glEnd();
dann kommt als Ergebnis:
http://xenon.42degreesoffreedom.com/~matti/lines.png
Mit GLUT statt SDL tauchen die Probleme nicht auf. SDL scheint hier beim Darstellen (oder was auch immer) Spalten zu überspringen.
Hat jemand eine Idee woran das liegen kann?
edit:
Ändere ich die Auflösung, dann verschieben sich die Streifen.
Ich habe hier ein Problem mit SDL und GL_POINTS.
Und zwar will ich eine 2D-Datenmenge punktweise zeichnen. Ich initialisiere OpenGL so:
glClearColor(0.0f, 1.0f, 0.0f, 0.0f);
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (h == 0) h = 1;
gluOrtho2D(0.0, w, h, 0.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
und testweise male ich einfach mal ein graues Bild:
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POINTS);
for (uint32_t y=0; y<height; y++) {
for (uint32_t x=0; x<width; x++) {
float r = 0.5f;
float g = 0.5f;
float b = 0.5f;
glColor3f(r, g, b);
glVertex2i(x,y);
}
}
glEnd();
dann kommt als Ergebnis:
http://xenon.42degreesoffreedom.com/~matti/lines.png
Mit GLUT statt SDL tauchen die Probleme nicht auf. SDL scheint hier beim Darstellen (oder was auch immer) Spalten zu überspringen.
Hat jemand eine Idee woran das liegen kann?
edit:
Ändere ich die Auflösung, dann verschieben sich die Streifen.