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: ... 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! |