glutFullScreen & XP? eine lichtquelle aus -> fehlerhaft!? #pragma?



  • ich habe schon gegooglet.
    kann sein, dass mine suchbegriffe nicht optimal waren, aber da ich lange nicht weiter gekommen bin...

    Ich habe gleich 3 Fragen:

    1. Bei Windows XP funktioniert mein OpenGL Programm nicht richtig, erstens die Bitmap
    werden zerhackt dargestellt(ausgabe mit glutBitmapCharacter()) und zweitens funktioniert der
    Befehl glutFullScreen() nicht richtig. sind diese probleme bekannt? und lassen sie sich beheben?

    2. Wenn ich mein Programm auf einem Win98 Pc mit älterer hardware (Windows98,266MHz Pentium 2,
    128 MB RAM,Matrox Millenium II AGP mit 4MB RAM) laufen lasse funktioniert zuerst alles. wenn ich aber
    eine der beiden(ich habe 2 lichtquellen, eine ausserhalb der darstellung und
    eine innerhalb) lichtquellen(die innerhalb) abschalte, wird das licht nichtmehr richtig dargestellt.
    bei den teile, welche ich nach dem erstellen der displayliste noch um 180 grad drehe, da sie die rückseite bilden sollen,
    werden nun die normalvektoren verkehr berrechnet.
    auf meinem andern computer läuft alles ohne problem! wiso wird denn nun dies falsch berrechnet!? und das auch nur wenn ich eine
    lichtquelle abschalte!? ich finde das sehr komisch, hat das mit der alten Hw oder win98 zu tun?

    3.Konsolenfenster, ich habe versuch das konsolenfenster weg zu kriegen und habe eine lösung für Visual C/C++ 6.0 doch da ich
    den nicht besitze suche ich nach einer lösung für einen BorlandCompiler 5.02
    ich habe auch mal versucht diese zeil etwas abzuändern

    #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
    

    auf(nach dem durchblättern der hilfe zu #pragma)

    #pragma comment( exestr, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
    

    doch da ich eigentlich nicht weis, was dies überhabt so, ging es natürlich nicht
    (was soll diese zeile genau? es sind anweisungen für den linker und weiter?)

    thx
    Niels

    [ Dieser Beitrag wurde am 22.01.2003 um 13:31 Uhr von Niels editiert. ]



  • Noch was,

    Wenn ich mein programm mit der taste ESC beende

    void keyboard(unsigned char key, int x, int y)
    {
    switch(key)
      {
      case  27:  exit(0);
    

    und im FullSCreenmode bin, stütz das ganze windows ab.

    darum habe ich den code abgeändert und das fenster zuerst verkleinert

    void keyboard(unsigned char key, int x, int y)
    {
    switch(key)
      {
      case  27:  glutReshapeWindow(400,400);
                 glutPositionWindow(400,100);
                 exit(0);
    

    ab nun sturzt windows nur ab wenn es intensiv beschäftigt ist, aber es stürtzt immer noch ab! was soll das? kann man das irgenwie beheben?
    ------------------------------------------------------------------------
    gibt es einen iventhandler, der auf das schliessen des fensters reagiert? (ich habe nichts gefunden)
    ------------------------------------------------------------------------
    ich habe auch das problem, dass ich nicht weis wo ich all die displaylisten löschen soll (macht das glut automatisch beim beenden des programms, oder muss ich mich darum kümmern?)

    kurz wie beendet man ein glut progamm möglichst sauber?

    [ Dieser Beitrag wurde am 22.01.2003 um 11:10 Uhr von Niels editiert. ]



  • Das Event ist wenn ich mich nicht irre WM_DESTROY.



  • Original erstellt von Tobiking:
    Das Event ist wenn ich mich nicht irre WM_DESTROY.

    bei GLUT?



  • scheint hier nicht viele zu haben, die sich mit glut auskennen.
    naja ich werde später mal umsteigen, aber momentan noch nicht.

    fals es jemand interessiert:

    ich habe den code nun abgeändert, so stürtz der computer nun nicht mehr ab.

    ich zerstöre einfach das main fenster(ob das gut ist oder nicht, keine ahnung) bevor ich exit(0) aufrufe(in den beispielen vom Redbook wurde immer nur exit(0) auferufen)

    void keyboard(unsigned char key, int x, int y)
    {
    switch(key)
      {
      case  27:  glutReshapeWindow(400,400);
                 glutPositionWindow(400,100);
                 glutDestroyWindow(mainWindowNr);
                 exit(0);
    

    mainWindowNr kommt von mainWindowNr = glutCreateWindow("titel");


Anmelden zum Antworten