/* * Copyright 2019 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef GrShaderUtils_DEFINED #define GrShaderUtils_DEFINED #include "include/core/SkTypes.h" #include "include/gpu/GrContextOptions.h" #include "include/private/SkSLProgramKind.h" #include "include/private/SkSLString.h" namespace GrShaderUtils { SkSL::String PrettyPrint(const SkSL::String& string); void VisitLineByLine(const SkSL::String& text, const std::function&); // Prints shaders one line at the time. This ensures they don't get truncated by the adb log. inline void PrintLineByLine(const SkSL::String& text) { VisitLineByLine(text, [](int lineNumber, const char* lineText) { SkDebugf("%4i\t%s\n", lineNumber, lineText); }); } // Combines raw shader and error text into an easier-to-read error message with line numbers. SkSL::String BuildShaderErrorMessage(const char* shader, const char* errors); GrContextOptions::ShaderErrorHandler* DefaultShaderErrorHandler(); void PrintShaderBanner(SkSL::ProgramKind programKind); } // namespace GrShaderUtils #endif