diff --git a/Engine.cc b/Engine.cc index bace933..f49ab4f 100644 --- a/Engine.cc +++ b/Engine.cc @@ -159,7 +159,7 @@ Engine::Object * Engine::getObject(int id) return m_objects.find(id) != m_objects.end() ? m_objects[id] : NULL; } -int Engine::startFrame(lua_State * L) +void Engine::startFrame() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glMatrixMode(GL_MODELVIEW); @@ -167,13 +167,6 @@ int Engine::startFrame(lua_State * L) gluLookAt(m_eye[0], m_eye[1], m_eye[2], m_center[0], m_center[1], m_center[2], m_up[0], m_up[1], m_up[2]); - return 0; -} - -int Engine::endFrame(lua_State * L) -{ - /* TODO: figure out how to SDL_GL_SwapBuffers(); */ - return 0; } int Engine::setCamera(lua_State * L) @@ -214,6 +207,7 @@ int Engine::setCamera(lua_State * L) void Engine::update() { + startFrame(); if (m_autoPhysics) doPhysics(); lua_getfield(m_luaState, LUA_GLOBALSINDEX, "update"); diff --git a/Engine.h b/Engine.h index afef436..dbccec2 100644 --- a/Engine.h +++ b/Engine.h @@ -63,8 +63,6 @@ class Engine void update(); /* lua services */ - int startFrame(lua_State * L); - int endFrame(lua_State * L); int setCamera(lua_State * L); protected: @@ -75,6 +73,7 @@ class Engine { return new Object(is_static, m_world, display_list, scale); } + void startFrame(); lua_State * m_luaState; std::string m_program_path; diff --git a/ag.cc b/ag.cc index ab5db3b..bbf8751 100644 --- a/ag.cc +++ b/ag.cc @@ -26,8 +26,6 @@ namespace ag { "loadModel", loadModel }, { "loadStaticModel", loadStaticModel }, { "sleep", sleep }, - { "startFrame", startFrame }, - { "endFrame", endFrame }, { "setCamera", setCamera }, { "elapsedTime", elapsedTime }, { "doPhysics", doPhysics }, @@ -199,16 +197,6 @@ namespace ag return 0; } - int startFrame(lua_State * L) - { - return g_engine->startFrame(L); - } - - int endFrame(lua_State * L) - { - return g_engine->endFrame(L); - } - int setCamera(lua_State * L) { return g_engine->setCamera(L); diff --git a/ag.h b/ag.h index df4abe1..a3cb45d 100644 --- a/ag.h +++ b/ag.h @@ -12,8 +12,6 @@ namespace ag int loadModel(lua_State * L); int loadStaticModel(lua_State * L); int sleep(lua_State * L); - int startFrame(lua_State * L); - int endFrame(lua_State * L); int setCamera(lua_State * L); int elapsedTime(lua_State * L); int doPhysics(lua_State * L); diff --git a/anaglym.cc b/anaglym.cc index c9ef4ee..2cdc814 100644 --- a/anaglym.cc +++ b/anaglym.cc @@ -167,6 +167,8 @@ static void mainloop() goto RET; break; case SDL_USEREVENT: + if (lastUpdateCompleted) + SDL_GL_SwapBuffers(); if (event.user.code == 0) { update();