- Timestamp:
- 05/29/04 23:04:18 (21 years ago)
- File:
-
- 1 edited
-
ps/trunk/source/main.cpp (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ps/trunk/source/main.cpp
r284 r309 18 18 #include "sysdep/ia32.h" 19 19 #endif 20 #include " ps/Config.h"20 #include "Config.h" 21 21 #include "MapReader.h" 22 22 #include "Terrain.h" 23 #include "TextureManager.h" 24 #include "ObjectManager.h" 25 #include "SkeletonAnimManager.h" 23 26 #include "Renderer.h" 24 27 #include "Model.h" … … 48 51 // using VBOs on laptop Radeon cards 49 52 static bool g_NoGLVBO=false; 50 53 // flag to switch on shadows 54 static bool g_Shadows=false; 55 // flag to switch off pbuffers 56 static bool g_NoPBuffer=false; 51 57 static bool g_VSync = false; 52 58 … … 223 229 224 230 ////////////////////////////////////////////////////////////////////////////////////////////////// 231 // SubmitModelRecursive: recurse down given model, submitting it and all it's descendents to the 232 // renderer 233 void SubmitModelRecursive(CModel* model) 234 { 235 g_Renderer.Submit(model); 236 237 const std::vector<CModel::Prop>& props=model->GetProps(); 238 for (uint i=0;i<props.size();i++) { 239 SubmitModelRecursive(props[i].m_Model); 240 } 241 } 242 243 ////////////////////////////////////////////////////////////////////////////////////////////////// 225 244 // RenderModels: iterate through model list and submit all models in viewing frustum to the 226 245 // Renderer … … 230 249 231 250 const std::vector<CUnit*>& units=g_UnitMan.GetUnits(); 232 uint i; 233 for (i=0;i<units.size();++i) { 234 if (frustum.IsBoxVisible(CVector3D(0,0,0),units[i]->m_Model->GetBounds())) { 235 g_Renderer.Submit(units[i]->m_Model); 251 for (uint i=0;i<units.size();++i) { 252 if (frustum.IsBoxVisible(CVector3D(0,0,0),units[i]->GetModel()->GetBounds())) { 253 SubmitModelRecursive(units[i]->GetModel()); 236 254 } 237 255 } … … 249 267 const std::vector<CUnit*>& units=g_UnitMan.GetUnits(); 250 268 for (i=0;i<units.size();++i) { 251 g_Renderer.Submit(units[i]->m_Model);269 SubmitModelRecursive(units[i]->GetModel()); 252 270 } 253 271 … … 354 372 const std::vector<CUnit*>& units=g_UnitMan.GetUnits(); 355 373 for (uint i=0;i<units.size();++i) { 356 units[i]-> m_Model->Update(time);374 units[i]->GetModel()->Update(time); 357 375 } 358 376 … … 388 406 g_NoGLVBO=true; 389 407 } 408 else if (strncmp(argv[i]+1,"nopbuffer",9)==0) { 409 g_NoPBuffer=true; 410 } 411 break; 412 413 case 's': 414 if (strncmp(argv[i]+1,"shadows",7)==0) { 415 g_Shadows=true; 416 } 390 417 break; 391 418 } … … 505 532 font = font_load("fonts/verdana.fnt"); 506 533 534 // create renderer 535 new CRenderer; 536 507 537 // set renderer options from command line options - NOVBO must be set before opening the renderer 508 g_Renderer.SetOption(CRenderer::OPT_NOVBO,g_NoGLVBO); 538 g_Renderer.SetOptionBool(CRenderer::OPT_NOVBO,g_NoGLVBO); 539 g_Renderer.SetOptionBool(CRenderer::OPT_SHADOWS,g_Shadows); 540 g_Renderer.SetOptionBool(CRenderer::OPT_NOPBUFFER,g_NoPBuffer); 541 542 // create terrain related stuff 543 new CTextureManager; 544 545 // create actor related stuff 546 new CSkeletonAnimManager; 547 new CObjectManager; 548 new CUnitManager; 509 549 510 550 // terr_init actually opens the renderer and loads a bunch of resources as well as setting up … … 620 660 delete &g_EntityTemplateCollection; 621 661 662 // destroy actor related stuff 663 delete CUnitManager::GetSingletonPtr(); 664 delete CObjectManager::GetSingletonPtr(); 665 delete CSkeletonAnimManager::GetSingletonPtr(); 666 667 // destroy terrain related stuff 668 delete CTextureManager::GetSingletonPtr(); 669 670 // destroy renderer 671 delete CRenderer::GetSingletonPtr(); 672 622 673 return 0; 623 674 }
Note:
See TracChangeset
for help on using the changeset viewer.
