- Timestamp:
- 03/21/12 18:36:20 (14 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
OpenSceneGraph/trunk/src/osgWrappers/deprecated-dotosg/osg/StateSet.cpp
r10970 r13041 85 85 86 86 if (!first_time) return; 87 87 88 88 ADD_NAME("GL_ALPHA_TEST",GL_ALPHA_TEST) 89 89 ADD_NAME("GL_BLEND",GL_BLEND) … … 101 101 ADD_NAME("GL_NORMALIZE",GL_NORMALIZE); 102 102 ADD_NAME("GL_RESCALE_NORMAL",GL_RESCALE_NORMAL); 103 103 104 104 ADD_NAME("GL_TEXTURE_1D",GL_TEXTURE_1D) 105 105 ADD_NAME("GL_TEXTURE_2D",GL_TEXTURE_2D) 106 106 ADD_NAME("GL_TEXTURE_3D",GL_TEXTURE_3D) 107 107 108 108 ADD_NAME("GL_TEXTURE_CUBE_MAP",GL_TEXTURE_CUBE_MAP); 109 109 ADD_NAME("GL_TEXTURE_RECTANGLE",GL_TEXTURE_RECTANGLE); 110 110 111 111 ADD_NAME("GL_TEXTURE_GEN_Q",GL_TEXTURE_GEN_Q) 112 112 ADD_NAME("GL_TEXTURE_GEN_R",GL_TEXTURE_GEN_R) 113 113 ADD_NAME("GL_TEXTURE_GEN_S",GL_TEXTURE_GEN_S) 114 114 ADD_NAME("GL_TEXTURE_GEN_T",GL_TEXTURE_GEN_T) 115 115 116 116 ADD_NAME("GL_STENCIL_TEST",GL_STENCIL_TEST) 117 117 118 118 ADD_NAME("GL_CLIP_PLANE0",GL_CLIP_PLANE0); 119 119 ADD_NAME("GL_CLIP_PLANE1",GL_CLIP_PLANE1); … … 138 138 ADD_NAME("GL_VERTEX_PROGRAM_POINT_SIZE", GL_VERTEX_PROGRAM_POINT_SIZE) 139 139 ADD_NAME("GL_VERTEX_PROGRAM_TWO_SIDE", GL_VERTEX_PROGRAM_TWO_SIDE) 140 140 141 141 s_TextureGLModeSet.insert(GL_TEXTURE_1D); 142 142 s_TextureGLModeSet.insert(GL_TEXTURE_2D); 143 143 s_TextureGLModeSet.insert(GL_TEXTURE_3D); 144 144 145 145 s_TextureGLModeSet.insert(GL_TEXTURE_CUBE_MAP); 146 146 s_TextureGLModeSet.insert(GL_TEXTURE_RECTANGLE); 147 147 148 148 s_TextureGLModeSet.insert(GL_TEXTURE_GEN_Q); 149 149 s_TextureGLModeSet.insert(GL_TEXTURE_GEN_R); 150 150 s_TextureGLModeSet.insert(GL_TEXTURE_GEN_S); 151 151 s_TextureGLModeSet.insert(GL_TEXTURE_GEN_T); 152 152 153 153 154 154 // for(GLNameToGLModeMap::iterator itr=s_GLNameToGLModeMap.begin(); … … 158 158 // cout << "Name ["<<itr->first<<","<<itr->second<<"]"<< std::endl; 159 159 // } 160 160 161 161 first_time = false; 162 162 } … … 278 278 statset.setAttribute(attribute); 279 279 } 280 281 if (attribute->getType()==StateAttribute::TEXGEN) 280 281 if (attribute->getType()==StateAttribute::TEXGEN) 282 282 statset.setAssociatedModes(attribute,texgening); 283 283 284 284 iteratorAdvanced = true; 285 285 } … … 296 296 297 297 initGLNames(); 298 299 // read the rendering hint value. 298 299 // read the rendering hint value. 300 300 if (fr[0].matchWord("rendering_hint")) 301 301 { … … 350 350 setRenderBinDetails=true; 351 351 binName = fr[1].getStr(); 352 352 353 353 fr+=2; 354 354 iteratorAdvanced = true; … … 395 395 int mode; 396 396 fr[0].getInt(mode); 397 397 398 398 if (s_TextureGLModeSet.find(mode)!=s_TextureGLModeSet.end()) 399 399 { … … 433 433 } 434 434 } 435 } 435 } 436 436 } 437 437 … … 460 460 iteratorAdvanced = true; 461 461 } 462 462 463 463 while(fr.matchSequence("textureUnit %i {")) 464 464 { … … 468 468 fr[1].getUInt(unit); 469 469 fr+=3; 470 470 471 471 while (!fr.eof() && fr[0].getNoNestedBrackets()>entry) 472 472 { 473 473 bool localIteratorAdvanced = false; 474 474 475 475 bool readingMode = true; 476 476 StateAttribute::GLModeValue value; … … 505 505 } 506 506 } 507 } 507 } 508 508 } 509 509 510 510 StateAttribute* attribute = NULL; 511 511 while((attribute=fr.readStateAttribute())!=NULL) … … 514 514 localIteratorAdvanced = true; 515 515 } 516 516 517 517 if (!localIteratorAdvanced) 518 518 fr.advanceOverCurrentFieldOrBlock(); 519 519 } 520 520 521 521 // skip over trailing '}' 522 522 ++fr; 523 524 iteratorAdvanced = true; 525 526 } 527 528 529 523 524 iteratorAdvanced = true; 525 526 } 527 528 529 530 530 531 531 return iteratorAdvanced; 532 532 } 533 533 534 // visual studio 6.0 doesn't appear to define std::max?!? So do our own here.. 534 // visual studio 6.0 doesn't appear to define std::max?!? So do our own here.. 535 535 template<class T> 536 536 T mymax(const T& a,const T& b) … … 546 546 initGLNames(); 547 547 548 // write the rendering hint value. 548 // write the rendering hint value. 549 549 fw.indent()<<"rendering_hint "; 550 550 switch(stateset.getRenderingHint()) … … 552 552 case(StateSet::DEFAULT_BIN): 553 553 fw<<"DEFAULT_BIN"<< std::endl; 554 break; 554 break; 555 555 case(StateSet::OPAQUE_BIN): 556 556 fw<<"OPAQUE_BIN"<< std::endl; 557 break; 557 break; 558 558 case(StateSet::TRANSPARENT_BIN): 559 559 fw<<"TRANSPARENT_BIN"<< std::endl; 560 break; 560 break; 561 561 default: 562 562 fw<<stateset.getRenderingHint()<< std::endl; 563 break; 563 break; 564 564 } 565 565 … … 588 588 } 589 589 } 590 590 591 591 const StateSet::UniformList& ul = stateset.getUniformList(); 592 592 for(StateSet::UniformList::const_iterator uitr=ul.begin(); … … 605 605 } 606 606 607 608 const StateSet::TextureModeList& tml = stateset.getTextureModeList(); 607 608 const StateSet::TextureModeList& tml = stateset.getTextureModeList(); 609 609 const StateSet::TextureAttributeList& tal = stateset.getTextureAttributeList(); 610 610 unsigned int maxUnit = mymax(tml.size(),tal.size()); … … 613 613 fw.indent()<<"textureUnit "<<unit<<" {"<< std::endl; 614 614 fw.moveIn(); 615 615 616 616 if (unit<tml.size()) 617 617 { … … 633 633 } 634 634 } 635 635 636 636 if (unit<tal.size()) 637 637 { … … 644 644 } 645 645 } 646 646 647 647 fw.moveOut(); 648 648 fw.indent()<<"}"<< std::endl; 649 649 } 650 650 651 651 if (stateset.getUpdateCallback()) 652 652 {
