std::string ModifierFlags::paddedDescription() const { // SkSL extensions
std::string result;
if (*this & ModifierFlag::kExport) {
result += "$export ";
}
if (*this & ModifierFlag::kES3) {
result += "$es3 ";
}
if (*this & ModifierFlag::kPure) {
result += "$pure ";
}
if (*this & ModifierFlag::kInline) {
result += "inline ";
}
if (*this & ModifierFlag::kNoInline) {
result += "noinline ";
}
// Real GLSL qualifiers (must be specified in order in GLSL 4.1 and below)
if (*this & ModifierFlag::kFlat) {
result += "flat ";
}
if (*this & ModifierFlag::kNoPerspective) {
result += "noperspective ";
}
if (*this & ModifierFlag::kConst) {
result += "const ";
}
if (*this & ModifierFlag::kUniform) {
result += "uniform ";
}
if ((*this & ModifierFlag::kIn) && (*this & ModifierFlag::kOut)) {
result += "inout ";
} else if (*this & ModifierFlag::kIn) {
result += "in ";
} else if (*this & ModifierFlag::kOut) {
result += "out ";
}
if (*this & ModifierFlag::kHighp) {
result += "highp ";
}
if (*this & ModifierFlag::kMediump) {
result += "mediump ";
}
if (*this & ModifierFlag::kLowp) {
result += "lowp ";
}
if (*this & ModifierFlag::kReadOnly) {
result += "readonly ";
}
if (*this & ModifierFlag::kWriteOnly) {
result += "writeonly ";
}
if (*this & ModifierFlag::kBuffer) {
result += "buffer ";
}
// We're using non-GLSL names for these.
if (*this & ModifierFlag::kPixelLocal) { // Roughly equivalent to `__pixel_localEXT`.
result += "pixel_local ";
}
if (*this & ModifierFlag::kWorkgroup) { // Equivalent to `shared`.
result += "workgroup ";
}
return result;
}
std::string ModifierFlags::description() const {
std::string s = this->paddedDescription();
if (!s.empty()) {
s.pop_back();
} return s;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.