blob: 3ffcb0e61c02b81b2306b82e4e7d80a08f385261 [file] [log] [blame]
/*
* Copyright 2022 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef SKSL_WGSLCODEGENERATOR
#define SKSL_WGSLCODEGENERATOR
#include <string>
namespace SkSL {
class ErrorReporter;
struct NativeShader;
class OutputStream;
enum class PrettyPrint : bool;
struct Program;
struct ShaderCaps;
enum class IncludeSyntheticCode : bool {
kNo = false,
kYes = true,
};
using ValidateWGSLProc = bool (*)(ErrorReporter&, std::string_view wgsl, std::string* warnings);
/**
* Convert a Program into WGSL code.
*/
bool ToWGSL(Program& program,
const ShaderCaps* caps,
OutputStream& out,
PrettyPrint,
IncludeSyntheticCode,
ValidateWGSLProc);
bool ToWGSL(Program& program, const ShaderCaps* caps, OutputStream& out);
bool ToWGSL(Program& program, const ShaderCaps* caps, NativeShader* out);
} // namespace SkSL
#endif // SKSL_WGSLCODEGENERATOR