Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

GLTriangleBatch crash przy wyłączaniu programu

Ostatnio zmodyfikowano 2014-03-08 19:30
Autor Wiadomość
oputyk
Temat założony przez niniejszego użytkownika
GLTriangleBatch crash przy wyłączaniu programu
» 2014-03-02 15:22:38
Kiedy wyłączam program wyskakuje mi błąd. Kiedy z kodu usunąłem obiekt GLTriangleBatch, wszystko ładnie się zamykało. Jeśli ktoś miał do czynienia z tą klasą, to proszę o zerknięcie na kod:
C/C++
...
GLTriangleBatch btch;
void SetupRC()
{
    ...
    gltMakeTorus( btch, 0.8f, 0.15f, 50, 20 );
    ...
}
void RenderScene()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
    static sf::Clock clock;
    if( sf::Keyboard::isKeyPressed( sf::Keyboard::Up ) || sf::Keyboard::isKeyPressed( sf::Keyboard::W ) )
         camera.MoveForward( 0.005f );
   
    if( sf::Keyboard::isKeyPressed( sf::Keyboard::Down ) || sf::Keyboard::isKeyPressed( sf::Keyboard::S ) )
         camera.MoveForward( - 0.005f );
   
    if( sf::Keyboard::isKeyPressed( sf::Keyboard::Left ) )
         camera.RotateWorld( m3dDegToRad( 0.1f ), 0.0f, 1.0f, 0.0f );
   
    if( sf::Keyboard::isKeyPressed( sf::Keyboard::Right ) )
         camera.RotateWorld( - m3dDegToRad( 0.1f ), 0.0f, 1.0f, 0.0f );
   
    if( sf::Keyboard::isKeyPressed( sf::Keyboard::A ) )
         camera.MoveRight( 0.005f );
   
    if( sf::Keyboard::isKeyPressed( sf::Keyboard::D ) )
         camera.MoveRight( - 0.005f );
   
    if( sf::Keyboard::isKeyPressed( sf::Keyboard::Escape ) )
         exit( 0 );
   
    GLfloat vEyeLight[] = { - 100.0f, 100.0f, 100.0f };
    GLfloat vDiffuseColor[] = { 0.7f, 0.0f, 0.0f, 1.0f };
    GLfloat vAmbientColor[] = { 0.2f, 0.0f, 0.0f, 1.0f };
    GLfloat vSpecularColor[] = { 0.0f, 0.0f, 0.0f, 1.0f };
    M3DMatrix44f mcamera;
    camera.GetCameraMatrix( mcamera );
    M1.PushMatrix( mcamera );
    M1.Rotate( clock.getElapsedTime().asSeconds() * 60.0f, 0.0f, 1.0f, 0.0f );
    glUseProgram( ShaderID );
    glUniform4fv( locDColor, 1, vDiffuseColor );
    glUniform4fv( locAColor, 1, vAmbientColor );
    glUniform4fv( locSColor, 1, vSpecularColor );
    glUniform3fv( locLight, 1, vEyeLight );
    glUniformMatrix4fv( locMVP, 1, GL_FALSE, M.GetModelViewProjectionMatrix() );
    glUniformMatrix4fv( locMV, 1, GL_FALSE, M.GetModelViewMatrix() );
    glUniformMatrix3fv( locNM, 1, GL_FALSE, M.GetNormalMatrix() );
    btch.Draw();
    M1.PopMatrix();
    M1.PushMatrix( mcamera );
    M1.Translate( - 4.0f, 0.0f, 6.0f );
    glUseProgram( ShaderID );
    glUniform4fv( locDColor, 1, vDiffuseColor );
    glUniform4fv( locAColor, 1, vAmbientColor );
    glUniform4fv( locSColor, 1, vSpecularColor );
    glUniform3fv( locLight, 1, vEyeLight );
    glUniformMatrix4fv( locMVP, 1, GL_FALSE, M.GetModelViewProjectionMatrix() );
    glUniformMatrix4fv( locMV, 1, GL_FALSE, M.GetModelViewMatrix() );
    glUniformMatrix3fv( locNM, 1, GL_FALSE, M.GetNormalMatrix() );
    btch.Draw();
    M1.PopMatrix();
    glutSwapBuffers();
    glutPostRedisplay();
}
...
Z góry dzięki za pomoc!
P-105503
pekfos
» 2014-03-08 13:50:58
A jak zostawisz obiekt, ale nie będziesz go używać, to też wystąpi błąd?
P-105854
oputyk
Temat założony przez niniejszego użytkownika
» 2014-03-08 19:30:28
Niestety tak. Chyba nie pozostaje mi nic innego, jak po prostu przestać używać tej klasy... Aczkolwiek liczę jeszcze na to, że znajdzie się ktoś, kto korzystał z tej klasy i zna przyczynę błędu.
P-105877
« 1 »
  Strona 1 z 1