/* * Copyright 2022 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "include/private/SkSLLayout.h" #include "include/private/SkSLString.h" namespace SkSL { std::string Layout::description() const { std::string result; auto separator = SkSL::String::Separator(); if (fLocation >= 0) { result += separator() + "location = " + std::to_string(fLocation); } if (fOffset >= 0) { result += separator() + "offset = " + std::to_string(fOffset); } if (fBinding >= 0) { result += separator() + "binding = " + std::to_string(fBinding); } if (fTexture >= 0) { result += separator() + "texture = " + std::to_string(fTexture); } if (fSampler >= 0) { result += separator() + "sampler = " + std::to_string(fSampler); } if (fIndex >= 0) { result += separator() + "index = " + std::to_string(fIndex); } if (fSet >= 0) { result += separator() + "set = " + std::to_string(fSet); } if (fBuiltin >= 0) { result += separator() + "builtin = " + std::to_string(fBuiltin); } if (fInputAttachmentIndex >= 0) { result += separator() + "input_attachment_index = " + std::to_string(fInputAttachmentIndex); } if (fFlags & kOriginUpperLeft_Flag) { result += separator() + "origin_upper_left"; } if (fFlags & kBlendSupportAllEquations_Flag) { result += separator() + "blend_support_all_equations"; } if (fFlags & kPushConstant_Flag) { result += separator() + "push_constant"; } if (fFlags & kColor_Flag) { result += separator() + "color"; } if (result.size() > 0) { result = "layout (" + result + ")"; } return result; } bool Layout::operator==(const Layout& other) const { return fFlags == other.fFlags && fLocation == other.fLocation && fOffset == other.fOffset && fBinding == other.fBinding && fTexture == other.fTexture && fSampler == other.fSampler && fIndex == other.fIndex && fSet == other.fSet && fBuiltin == other.fBuiltin && fInputAttachmentIndex == other.fInputAttachmentIndex; } } // namespace SkSL