Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: Spiele-/Grafikprogrammierung ::  glut wenn fenster geschlossen, anwendung beenden.     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
alterbro
Mitglied

Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag alterbro Mitglied 21:26:02 30.01.2012   Titel:              Zitieren

wie meinst du das?
alterbro
Mitglied

Benutzerprofil
Anmeldungsdatum: 05.11.2011
Beiträge: 292
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag alterbro Mitglied 22:06:18 30.01.2012   Titel:              Zitieren

sorry visual studio sagt...
dot
Mitglied

Benutzerprofil
Anmeldungsdatum: 20.05.2004
Beiträge: 3858
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag 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
Beitrag alterbro Mitglied 22:51:27 31.01.2012   Titel:              Zitieren

danke, ich habs jetzt mit glutReshapeWindow gemacht, aber klar, deine idee is besser danke.
C/C++ Forum :: Spiele-/Grafikprogrammierung ::  glut wenn fenster geschlossen, anwendung beenden.   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.