ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4381895
Jetzt (Chat):
25 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-

ZFX
Coding-Foren
OpenGL API + SDL
OpenGL Newbie: Fensterinhalt wird nicht gezeichnet
Normal
AutorThema
Bef Offline
ZFX'ler


Registriert seit:
03.07.2005

Schweiz
OpenGL Newbie: Fensterinhalt wird nicht gezeichnetNach oben.
Hallo

Ich habe heute angefangen mit OpenGL-Programmierung und bin im Moment an folgendem Tutorial:

http://www.linuxfocus.org/Deutsch/January1998/article17.html

Beim ersten Beispiel wird leider bei mir nichts ins Fenster gezeichnet. Das Fenster nimmt einfach den Inhalt des Hintergrunds an, wenn es neu gezeichnet wird, und behält diesen dann beim Verschieben.

Ich habe im Debugger geschaut und gesehen, dass die Display-Funktion aufgerufen wird. Leider habe ich keine Ahnung, warum sie nicht funktioniert.

Ich programmiere unter Linux mit Freeglut und Mesa, falls das eine Rolle spielt.

Vielen Dank für alle Tipps.


17.07.2008, 14:44:03 Uhr
Ingrater Offline
ZFX'ler


Registriert seit:
18.04.2007

Baden-Württemberg
Re: OpenGL Newbie: Fensterinhalt wird nicht gezeichnetNach oben.
Man kann jetzt leider sehr schlecht sagen woran das liegen könnte, das könnte 100 gründe haben. Eine Matrix falsch aufgesetzt oder sonst was am OpenGL setup vergessen. Ohne Sourcecode wird dir keiner helfen können.
17.07.2008, 17:40:46 Uhr
Bef Offline
ZFX'ler


Registriert seit:
03.07.2005

Schweiz
Re: OpenGL Newbie: Fensterinhalt wird nicht gezeichnetNach oben.
Sorry, das war vielleicht nicht ganz klar.
Der Code ist auf der von mir angegebenen Seite zu finden (wie gesagt das erste Beispiel).

Code:
#include 
#include   

const  double pi2 = 6.28318530718;

void NonlinearMap(double *x, double *y){
    static double K = 1.04295;
    *y += K * sin(*x);
    *x += *y;
    *x = fmod(*x, pi2);
    if (*x < 0.0) *x += pi2;
};

void winInit(){
    /* Set system of coordinates */
    gluOrtho2D(0.0, pi2, 0.0, pi2);
};

void display(void){
    const int    NumberSteps = 1000;
    const int    NumberOrbits = 100;
    const double Delta_x = pi2/(NumberOrbits-1);
    int step, orbit;

    glColor3f(0.0, 0.0, 0.0);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 1.0, 1.0);

    for (orbit = 0; orbit < NumberOrbits; orbit++){
      double x, y;
      y = 3.1415;
      x = Delta_x * orbit;

      glBegin(GL_POINTS);
      for (step = 0; step < NumberSteps; step++){
        NonlinearMap(&x, &y);
        glVertex2f(x, y);
      };
    
      glEnd();
    };

    for (orbit = 0; orbit < NumberOrbits; orbit++){
      double x, y;
      x = 3.1415;
        y = Delta_x * orbit;

        glBegin(GL_POINTS);
        for (step = 0; step < NumberSteps; step++){
          NonlinearMap(&x, &y);
          glVertex2f(x, y);
        };
        glEnd();

     };
};

int main(int argc, char **argv) {
  glutInit(&argc, argv);  
  glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);  
  glutInitWindowPosition(5,5);  
  glutInitWindowSize(300,300);  
  glutCreateWindow(\"Standard Map\");  
  
  winInit();
  glutDisplayFunc(display);  
  glutMainLoop();  
  
  return 0;  
}
17.07.2008, 21:27:33 Uhr
Enrico_ Offline
ZFX'ler


Registriert seit:
08.04.2003

Baden-Württemberg
72778726
Re: OpenGL Newbie: Fensterinhalt wird nicht gezeichnetNach oben.
Mhm, der Code funktioniert problemlos hier. RHEL3, x86, NVidia Quadro NVS 285. Vielleicht liegt es ja an Mesa?
18.07.2008, 09:51:25 Uhr
Bef Offline
ZFX'ler


Registriert seit:
03.07.2005

Schweiz
Re: OpenGL Newbie: Fensterinhalt wird nicht gezeichnetNach oben.
Ich habe es jetzt herausgefunden. Am Ende der Display-Funktion muss noch ein "glFlush();" hin. Die OpenGL-Implementierung unter Windows scheint das nicht zu benötigen.
18.07.2008, 12:03:53 Uhr
Normal


ZFX Community Software, Version 0.9.1
Copyright 2002-2003 by Steffen Engel