From bd2d3d8b25bb9f55dcbfc7711468ece1b79d09a6 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Mon, 12 Oct 2009 14:54:40 +0000 Subject: [PATCH] added ag::drawObjects() to draw all objects in the scene from a lua script git-svn-id: svn://anubis/anaglym/trunk@65 99a6e188-d820-4881-8870-2d33a10e2619 --- ag.cc | 7 +++++++ ag.h | 1 + anaglym.cc | 9 +++++++++ anaglym.h | 1 + tests/ballstairs.lua | 6 +----- 5 files changed, 19 insertions(+), 5 deletions(-) diff --git a/ag.cc b/ag.cc index 8215b3c..cfd0987 100644 --- a/ag.cc +++ b/ag.cc @@ -30,6 +30,7 @@ namespace ag { "setCamera", setCamera }, { "elapsedTime", elapsedTime }, { "doPhysics", doPhysics }, + { "drawObjects", drawObjects }, { NULL, NULL } }; luaL_register(L, "ag", functions); @@ -214,6 +215,12 @@ namespace ag return 0; } + int drawObjects(lua_State * L) + { + g_engine->drawObjects(); + return 0; + } + namespace object { static Engine::Object * getObject(lua_State * L, int index) diff --git a/ag.h b/ag.h index 5979475..b38a8e0 100644 --- a/ag.h +++ b/ag.h @@ -17,6 +17,7 @@ namespace ag int setCamera(lua_State * L); int elapsedTime(lua_State * L); int doPhysics(lua_State * L); + int drawObjects(lua_State * L); namespace object { diff --git a/anaglym.cc b/anaglym.cc index 67b297f..b103436 100644 --- a/anaglym.cc +++ b/anaglym.cc @@ -334,6 +334,15 @@ void Engine::doPhysics() last_updated = current_ticks; } +void Engine::drawObjects() +{ + std::map::iterator it; + for (it = m_objects.begin(); it != m_objects.end(); it++) + { + it->second->draw(); + } +} + Engine::Object::Object(const Engine::Object & orig) { m_display_list = orig.m_display_list; diff --git a/anaglym.h b/anaglym.h index fba18a6..cdcad74 100644 --- a/anaglym.h +++ b/anaglym.h @@ -61,6 +61,7 @@ class Engine int cloneObject(const Object * obj); Object * getObject(int id); void doPhysics(); + void drawObjects(); /* lua services */ int startFrame(lua_State * L); diff --git a/tests/ballstairs.lua b/tests/ballstairs.lua index 5f22beb..1be70f3 100755 --- a/tests/ballstairs.lua +++ b/tests/ballstairs.lua @@ -4,11 +4,7 @@ function update() ag.setCamera(7, -6, 15, ballx, bally, ballz, 0, 0, 1) ag.doPhysics() ag.startFrame() - arena:draw() - ball:draw() - ball2:draw() - ball3:draw() - logo:draw() + ag.drawObjects() ag.endFrame() end