void Engine::Draw(UpdateArgs& args) { Scene* curScene = scene; if (isLoading) { curScene = loadingScene; } UInt32 i = 0; UInt32 c = TIKI_MAX(1, curScene->GetCameras()->Count()); while (i < c) { DrawArgs drawArgs = DrawArgs( args.Time, DM_Geometry, (i < curScene->GetCameras()->Count() ? curScene->GetCameras()->Get(i) : 0), graphics, sprites, args, curScene->GetLighting() ); graphics->Begin(drawArgs); sprites->Begin(); UInt32 bi = 0; UInt32 bc = 1 + (useShadows ? 1 : 0); while (bi < bc) { if (bi != 0) { drawArgs.Mode = (DrawMode)bi; graphics->GetUnusedScreenTarget()->ApplyFirstAndOnly(); } curScene->Draw(drawArgs); bi++; } sprites->End(); graphics->End(); i++; } }