/*
* Copyright 2016 Google Inc .
*
* Use of this source code is governed by a BSD - style license that can be
* found in the LICENSE file .
*/
#ifndef SKSL_SPIRVCODEGENERATOR
#define SKSL_SPIRVCODEGENERATOR
#include "include/core/SkSpan.h"
#include "src/sksl/codegen/SkSLNativeShader.h"
#include <cstdint>
#include <vector>
namespace SkSL {
class ErrorReporter;
class OutputStream;
struct Program;
struct ShaderCaps;
using ValidateSPIRVProc = bool (*)(ErrorReporter&, SkSpan<const uint32_t>);
/**
* Converts a Program into a SPIR - V binary . Prefer the std : : vector < uint32_t > variant bacause the
* OutputStream variant incurs an additional copy .
*/
bool ToSPIRV(Program& program, const ShaderCaps* caps, OutputStream& out, ValidateSPIRVProc = nullptr);
bool ToSPIRV(Program& program,
const ShaderCaps* caps,
std::vector<uint32_t>* out,
ValidateSPIRVProc = nullptr);
// This explicit overload is used by SkSLToBackend.
inline bool ToSPIRV(Program& program, const ShaderCaps* caps, NativeShader* out) {
return ToSPIRV(program, caps, &out->fBinary, nullptr);
}
} // namespace SkSL
#endif
Messung V0.5 in Prozent C=90 H=99 G=94
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland