| Autor |
Nachricht |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
21:12:19 30.01.2012 Titel: |
glut wenn fenster geschlossen, anwendung beenden. |
Zitieren |
wich verwende glut.
wenn ich das fenster schliesse, Dh. mit dem roten kreuz, bleibt hinterher immer das consolenfenster stehen, wie kann ich die anwendung durch schliessen des fensters beenden? |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3858
|
dot Mitglied
21:13:33 30.01.2012 Titel: |
|
Zitieren |
Wie gibt's das denn? Die einzige Erklärung dafür ist, dass deine Anwendung nicht beendet wird. |
_________________ one point of view will never reveal the entire scene.
|
|
 |
ScottZhang
Mitglied
Benutzerprofil
Anmeldungsdatum: 17.12.2010
Beiträge: 207
|
ScottZhang Mitglied
21:23:22 30.01.2012 Titel: |
|
Zitieren |
Lass es stehen, brauchst sicher beim nächsten mal noch. |
_________________ If anything has been made foolproof, a better fool will be developed.
Hobby
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
21:26:02 30.01.2012 Titel: |
|
Zitieren |
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
21:45:11 30.01.2012 Titel: |
|
Zitieren |
okay nochmal, wenn ich mit glut ein fenster erstelle, erscheinen zwei fenster, das codefenster, und das opengl fenster.
Problem:
Schliesse ich das Opengl Fenster über das rote Kreuz, wird das opengl Fenster zwar geschlossen, aber das Das Programm läuft weiterhin.
erst wenn ich das Konsolenfenster schliesse, wird das Programm beendet.
Ich möchte aber, dass das Programm bereits beendet wird, wenn das Opengl Fenster geschlossen wird. |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3858
|
dot Mitglied
21:46:43 30.01.2012 Titel: |
|
Zitieren |
Zeig doch mal den Code von deiner main()... |
_________________ one point of view will never reveal the entire scene.
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
21:48:32 30.01.2012 Titel: |
|
Zitieren |
int main(int argc, char **argv) {
//getcwd(path, 255);
//ShowWindow(GetConsoleWindow(), SW_HIDE);
getcwd(path,255);
// init GLUT and create window
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(800,600);
glutCreateWindow("Glutest");
// register callbacks
init();
// enter GLUT event processing cycle
atexit(a);
glutMainLoop();
return 1;
} |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3858
|
dot Mitglied
21:51:24 30.01.2012 Titel: |
|
Zitieren |
Und was genau tust du in deinem atexit handler? |
_________________ one point of view will never reveal the entire scene.
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
21:55:52 30.01.2012 Titel: |
|
Zitieren |
nichts, denn hab ich eigentlich rausgenommen, der tut gar nichts |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3858
|
dot Mitglied
21:57:02 30.01.2012 Titel: |
|
Zitieren |
Das ist dann äußerst merkwürdig. Läuft deine Anwendung tatsächlich weiter oder bleibt einfach nur das Konsolenfenster offen? |
_________________ one point of view will never reveal the entire scene.
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
21:59:02 30.01.2012 Titel: |
|
Zitieren |
naja, visual basic sagt, dass die anwendung noch läuft, und taskmanager zeigt den prozess weiterhin an |
|
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
22:06:18 30.01.2012 Titel: |
|
Zitieren |
sorry visual studio sagt... |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3858
|
dot Mitglied
22:07:07 30.01.2012 Titel: |
|
Zitieren |
Und wo genau hängt das Programm? Drück eben einfach mal in VS auf Pause... |
_________________ one point of view will never reveal the entire scene.
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
22:15:57 30.01.2012 Titel: |
|
Zitieren |
es hängt in der Render scene, hier ist die aus dem beilstpierlprojekt dass ich zum testen nehm
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | void renderScene(void) {
if (deltaMove)
computePos(deltaMove);
// Clear Color and Depth Buffers
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Reset transformations
glLoadIdentity();
// Set the camera
gluLookAt( x, 1.0f, z,
x+lx, 1.0f, z+lz,
0.0f, 1.0f, 0.0f);
// Draw ground
glColor3f(0.9f, 0.9f, 0.9f);
glBegin(GL_QUADS);
glVertex3f(-100.0f, 0.0f, -100.0f);
glVertex3f(-100.0f, 0.0f, 100.0f);
glVertex3f( 100.0f, 0.0f, 100.0f);
glVertex3f( 100.0f, 0.0f, -100.0f);
glEnd();
// Draw 36 SnowMen
for(int i = -3; i < 3; i++)
for(int j=-3; j < 3; j++) {
glPushMatrix();
glTranslatef(i*10.0,0,j * 10.0);
drawSnowMan();
glPopMatrix();
}
glutSwapBuffers();
}
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | void renderScene(void) {
if (deltaMove)
computePos(deltaMove);
// Clear Color and Depth Buffers
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Reset transformations
glLoadIdentity();
// Set the camera
gluLookAt( x, 1.0f, z,
x+lx, 1.0f, z+lz,
0.0f, 1.0f, 0.0f);
// Draw ground
glColor3f(0.9f, 0.9f, 0.9f);
glBegin(GL_QUADS);
glVertex3f(-100.0f, 0.0f, -100.0f);
glVertex3f(-100.0f, 0.0f, 100.0f);
glVertex3f( 100.0f, 0.0f, 100.0f);
glVertex3f( 100.0f, 0.0f, -100.0f);
glEnd();
// Draw 36 SnowMen
for(int i = -3; i < 3; i++)
for(int j=-3; j < 3; j++) {
glPushMatrix();
glTranslatef(i*10.0,0,j * 10.0);
drawSnowMan();
glPopMatrix();
}
glutSwapBuffers();
}
| |
| C/C++ Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | void renderScene(void) {
if (deltaMove)
computePos(deltaMove);
// Clear Color and Depth Buffers
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Reset transformations
glLoadIdentity();
// Set the camera
gluLookAt( x, 1.0f, z,
x+lx, 1.0f, z+lz,
0.0f, 1.0f, 0.0f);
// Draw ground
glColor3f(0.9f, 0.9f, 0.9f);
glBegin(GL_QUADS);
glVertex3f(-100.0f, 0.0f, -100.0f);
glVertex3f(-100.0f, 0.0f, 100.0f);
glVertex3f( 100.0f, 0.0f, 100.0f);
glVertex3f( 100.0f, 0.0f, -100.0f);
glEnd();
// Draw 36 SnowMen
for(int i = -3; i < 3; i++)
for(int j=-3; j < 3; j++) {
glPushMatrix();
glTranslatef(i*10.0,0,j * 10.0);
drawSnowMan();
glPopMatrix();
}
glutSwapBuffers();
}
| |
|
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3858
|
dot Mitglied
22:18:07 30.01.2012 Titel: |
|
Zitieren |
Sehr merkwürdig. Das bedeutet wohl dass GLUT einfach weiterläuft obwohl das Fenster geschlossen wurde. Ich verwend zwar GLUT nicht, aber das sollte es afaik nicht tun, außer man sagt ihm irgendwie explizit dass es das tun soll (falls das geht)... |
_________________ one point of view will never reveal the entire scene.
Zuletzt bearbeitet von dot am 22:18:44 30.01.2012, insgesamt 1-mal bearbeitet |
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
22:31:01 30.01.2012 Titel: |
|
Zitieren |
okay, ich mach jetzt mal den pc aus, hoffentlich kann mir morgrn jmnd helfen. |
|
|
|
 |
pyhax
Mitglied
Benutzerprofil
Anmeldungsdatum: 22.11.2011
Beiträge: 581
|
pyhax Mitglied
22:41:56 30.01.2012 Titel: |
|
Zitieren |
Gibt es bei glut eine Möglichkeit Events abzufragen (bei SDL gibt es ein QUIT event) ? |
_________________ Ich kann (teilweise): C++, Python, Java(ist lange her), PHP, D (Anfänger)
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3858
|
dot Mitglied
22:50:54 30.01.2012 Titel: |
|
Zitieren |
Ja gibt es. Aber afaik sollte das Beenden beim Schließen des Fensters das Defaultverhalten von GLUT sein... |
_________________ one point of view will never reveal the entire scene.
|
|
 |
Chris Benoit!
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.10.2006
Beiträge: 69
|
Chris Benoit! Mitglied
00:17:56 31.01.2012 Titel: |
|
Zitieren |
Steig am besten auf freeglut rum. Da hast du alle gleichen Befehle wie bei glut aber kannst noch z.B. noch glutLeaveMainLoop() benutzen |
|
|
|
 |
dot
Mitglied
Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3858
|
dot Mitglied
00:18:34 31.01.2012 Titel: |
|
Zitieren |
Ja ich würde auch zu freeglut oder GLFW raten. Beide leider immer noch alles andere als toll, aber was besseres kenn ich leider nicht. Wenn jemand was besseres kennt: Immer nur her damit. |
_________________ one point of view will never reveal the entire scene.
Zuletzt bearbeitet von dot am 00:21:07 31.01.2012, insgesamt 1-mal bearbeitet |
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
08:23:07 31.01.2012 Titel: |
|
Zitieren |
naja ich verwende glut nur weil bei freeglut der vollbildmodus nicht möglich ist, bei dem wiederum keine Texturen angezeigt werden, aber vielleicht habt ihr recht ich probiers dann später aus, und meld mich am nachmittag wieder.
vermutlich hab ich so ne Hobbiebastler mod von glut erwischt. |
|
|
|
 |
Chris Benoit!
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.10.2006
Beiträge: 69
|
Chris Benoit! Mitglied
09:48:53 31.01.2012 Titel: |
|
Zitieren |
Dann liegt der Fehler aber vermutlich eher bei dir! Ich kann ohne Probleme bei freeglut in den Vollbildmodus schalten (glutFullScreen()).
Probier mal bitte auch einfach nur dein Projekt als release zu compilen, dann aber nicht direkt ausführen sondern am besten Visual schließen und dann so die *.exe zu starten! Dann schließ mal das OpenGL Fenster und sag mir ob die Konsole immer noch da bleibt |
|
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
14:12:17 31.01.2012 Titel: |
|
Zitieren |
ja sie is noch da, aber jetzt versuch ich mal freeglut |
|
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
14:20:31 31.01.2012 Titel: |
|
Zitieren |
danke jungs, jetzt klappts supi, aber ihr werdet leider vielleicht nächstens mit einer frage über freegglut vollbild konfrontiert. |
|
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
14:33:02 31.01.2012 Titel: |
|
Zitieren |
vielleicht kannst dus mir gleich sagen:
wie komm ich wieder aus dem fullscreen raus?
hat sich erledigt |
Zuletzt bearbeitet von alterbro am 16:06:20 31.01.2012, insgesamt 1-mal bearbeitet |
|
 |
Chris Benoit!
Mitglied
Benutzerprofil
Anmeldungsdatum: 01.10.2006
Beiträge: 69
|
Chris Benoit! Mitglied
18:53:23 31.01.2012 Titel: |
|
Zitieren |
Nur der zur Sicherheit, du nimmst "glutLeaveFullScreen()", ja?
Gibt nämlich auch einen anderen Weg aber der ist nicht so gut. |
|
|
|
 |
alterbro
Mitglied
Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
|
alterbro Mitglied
22:51:27 31.01.2012 Titel: |
|
Zitieren |
danke, ich habs jetzt mit glutReshapeWindow gemacht, aber klar, deine idee is besser danke. |
|
|
|
 |