//---------------------------------------------------------------------- // //---------------------------------------------------------------------- void LNFXManager::_analyzeXML( const char* xml, size_t size ) { XML::Document xmlDoc; xmlDoc.Parse( xml, size ); // まずは Technique → Pass と作成して、コンパイルする。この中で Variable も作る XML::Element* xmlElement = xmlDoc.FirstChildElement(); while ( xmlElement != NULL ) { // <Technique> if ( strcmp( xmlElement->Name(), TechniqueElementName ) == 0 ) { _analyzeXMLTechniqueElement( xmlElement ); } xmlElement = xmlElement->NextSiblingElement(); } // 次に、作成済みの Variable にアノテーションを割り振る xmlElement = xmlDoc.FirstChildElement(); while ( xmlElement != NULL ) { // <Variable> if ( strcmp( xmlElement->Name(), VariableElementName ) == 0 ) { _analyzeXMLVariableElement( xmlElement ); } xmlElement = xmlElement->NextSiblingElement(); } }