void ShaderEffect::Create() { mProgram = glCreateProgram(); if(HaveLimitedInOutLocationQualifier(mVSLang) == 0 || HaveLimitedInOutLocationQualifier(mPSLang) == 0) { int maxAttrib = 0; glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &maxAttrib); for(int i=0; i<maxAttrib; ++i) { std::string attribName("dcl_Input"); //Visual Studio/Windows missing int version std::to_string, so use long long. attribName += std::to_string((long long)i); glBindAttribLocation(mProgram, i, attribName.c_str()); } int maxDrawBuffers = 0; glGetIntegerv(GL_MAX_DRAW_BUFFERS, &maxDrawBuffers); for(int i=0; i<maxAttrib; ++i) { std::string pixelOutputName("PixOutput"); pixelOutputName += std::to_string((long long)i); glBindFragDataLocation(mProgram, i, pixelOutputName.c_str()); } } }
void FeatureDocumentHandler::startElement(const XMLCh* const name, AttributeList& attrs) { char elementName[1024]; XMLString::transcode(name, elementName, 1024 - 1); std::string elemName(elementName); std::map<std::string, std::string> attributes; for (unsigned int c = 0; c < attrs.getLength() ; c++) { char attributeName[1024]; char attributeValue [1024]; XMLString::transcode(attrs.getName(c), attributeName, 1024 - 1); XMLString::transcode(attrs.getValue(c), attributeValue, 1024 - 1); std::string attribName(attributeName); std::string attribVal(attributeValue); attributes.insert(Pair_Attrib(attribName, attribVal)); } m_pFeatureMat->StartElement(elemName, attributes); }