void TOutputGLSLBase::writeLayoutQualifier(const TType &type) { if (type.getQualifier() == EvqFragmentOut || type.getQualifier() == EvqVertexIn) { const TLayoutQualifier &layoutQualifier = type.getLayoutQualifier(); if (layoutQualifier.location >= 0) { TInfoSinkBase &out = objSink(); out << "layout(location = " << layoutQualifier.location << ") "; } } }
// TODO(jmadill): This is not complete. void TOutputVulkanGLSL::writeLayoutQualifier(const TType &type) { TInfoSinkBase &out = objSink(); const TLayoutQualifier &layoutQualifier = type.getLayoutQualifier(); out << "layout("; if (type.getQualifier() == EvqAttribute || type.getQualifier() == EvqFragmentOut || type.getQualifier() == EvqVertexIn) { // TODO(jmadill): Multiple output locations. out << "location = " << "0"; } if (IsImage(type.getBasicType()) && layoutQualifier.imageInternalFormat != EiifUnspecified) { ASSERT(type.getQualifier() == EvqTemporary || type.getQualifier() == EvqUniform); out << getImageInternalFormatString(layoutQualifier.imageInternalFormat); } out << ") "; }