PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GLUT: Fenster ohne Decoration.



Lin728
10-10-2003, 08:41
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

Trillian
10-10-2003, 13:58
Ja, z.B. über _NETWM_WINDOW_TYPE oder die Motif WM Hints. kA, ob GLUT da was entsprechendes vorbereitet hat ;)

Lin728
10-10-2003, 14:07
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

anda_skoa
10-10-2003, 16:23
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,
_

Lin728
10-10-2003, 17:33
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...

axeljaeger
10-10-2003, 17:55
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.

Lin728
10-10-2003, 21:33
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:


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);

Trillian
10-10-2003, 21:56
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

Lin728
11-10-2003, 11:15
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