Anzeige:
Ergebnis 1 bis 9 von 9

Thema: GLUT: Fenster ohne Decoration.

  1. #1
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    GLUT: Fenster ohne Decoration.

    Muss gerade ein GUI in GLUT/OpenGL programmieren und ich benötige recht umfangreiche Tooltips, die sich nicht innerhalb des MutterFensters darstellen lassen.

    Gibt eine möglichkeit, fenster ohne Decoration zu erzeugen?

    lg
    Geändert von Lin728 (19-08-2017 um 18:22 Uhr)

  2. #2
    Registrierter Benutzer Avatar von Trillian
    Registriert seit
    26.04.2001
    Beiträge
    180
    Ja, z.B. über _NETWM_WINDOW_TYPE oder die Motif WM Hints. kA, ob GLUT da was entsprechendes vorbereitet hat

  3. #3
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    genau...

    genau das ist mein probelm...

    Ich möchte nur mit GLUT und OpenGL arbeiten,
    Und GLUT kann (im Gegensatz zu SDL) alles was ich brauche bis auf decorationslose Fenster. Oder besser gesagt ich weiß nicht wies geht :-)
    Nur wegen diesem einem Problem eine ganzes Toolkit ala QT zu nehmen ist mir zu overdesigned, da ists noch eher besser GLUT zu hacken...

    lg
    Geändert von Lin728 (19-08-2017 um 18:22 Uhr)

  4. #4
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Trillian hat dir nicht vorgeschlagen, ein richtiges Toolkit zu verwenden (obwohl das wahrscheinlich besser wäre), sondern Window Manager Hints zu setzen.

    Das geht auch pure-Xlib wenns sein muss, nur halt nicht komfortabel wie mit einem Toolkit, dass das unterstützt.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  5. #5
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Wie??????

    Hallo!

    Hört sich richtig interressant an, ich dachte Trillian meinte, dass das die Bibliothek im "Kern" selbst machen sollte.
    Wie kann man dies denn machen, und ist diese Vorgehensweise denn auch auf Win32 und OSX übertragbar (natürlich mit anderen Funktionen)?
    Ansonsten muss ich halt GLUT hacken und statisch dazulinken, kann man nix machen....

    lg

    PS: Kennt wer zufällig eine APIDOC über OpenGL1.3+? Ich habe nur Tutorials gefunden, und dei Spezifikation ist zum Code als Referenz ungeignet...
    Geändert von Lin728 (19-08-2017 um 18:22 Uhr)

  6. #6
    Registrierter Benutzer
    Registriert seit
    08.07.2002
    Beiträge
    719
    Die API-Dokumentation zu OpenGL nennt sich OpenGL-Bluebook. Dann gibt es noch das Redbook, das ist das Tutorial. Es gibt beide in gedruckter Form, als PDF und ich hab sie auch beide als HTML auf dem Rechner. Such mal in Google, da wirst du sicher fündig.

  7. #7
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Super!

    ja genau sowas habe ich gesucht, vielen Dank!

    Eine frage (sorry) hätte ich noch:

    Ich habe ein doublebuffered-window erstellt, aber wenn ich nur vom Buffer zeichne, bleict das Fenster wenn ich den Inhalt zerstöre (anderes Fenster drüberziehen), trotzdem schwarz:
    Code:
    void renderScene(void)
    {
    static int painted = 0;
    int i=0;
    
      if(painted == 0)
      {
            printf("Habe gezeichnet!\n");
            glClear(GL_COLOR_BUFFER_BIT);
            glBegin(GL_LINES);
            glVertex2f(0.1, 0.3);
            glVertex2f(0.4, 0.7);
            glEnd();
        }
        painted++;
      }            
      glFlush();
      glutSwapBuffers();      
    }
    Das Fenster erzeuge ich so:

    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);

  8. #8
    Registrierter Benutzer Avatar von Trillian
    Registriert seit
    26.04.2001
    Beiträge
    180

    Re: Wie??????

    Original geschrieben von ceisserer
    Wie kann man dies denn machen, und ist diese Vorgehensweise denn auch auf Win32 und OSX übertragbar (natürlich mit anderen Funktionen)?
    Nein, diese WM Hints sind X11-spezifisch. Unter Win32 geht sowas ähnliches wohl mit "Window-Messages", aber genaueres kann ich dir dazu nicht sagen.

    Unter X11 legst du ein Atom an:

    net_wm_foo = XInternAtom("_NET_WM_FOO", True);

    Und benutzt dann XChangeProperty(), um den Wert einer Eigenschaft (auch ein Atom) auf das erstellte Atom zu setzen.

    Guck dir mal Ecore X an ;D

  9. #9
    Registrierter Benutzer
    Registriert seit
    16.09.2001
    Beiträge
    1.182

    Hmm, Kompliziert...

    Puh, sieht ganz schön kompliziert aus
    Naja, da muss ich wohl durch, habe aber eine Alternative zu GLUT gefunden und die haben gesagt, dass sie diese Funktion bald einbauen wollen. ( freeglut.sourceforge.net )

    lg
    Geändert von Lin728 (19-08-2017 um 18:23 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •