skia2/include/gpu/ShaderErrorHandler.h
Greg Daniel cdeb092655 [graphite] Move GrProcessorKeyBuilder to generic skgpu::KeyBuilder class.
This also allows the KeyBuilder class to be used in Graphite. In Graphite
I plan to use it for other keys besides building up shaders/processors
so I dropped that from the name. There was nothing special abouts its
implementation that made it specific to Processors anyways.

Bug: skia:12754
Change-Id: I1b25730b061f9342b61e3b2e4ac43328b8074d59
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/486897
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Greg Daniel <egdaniel@google.com>
2021-12-20 20:41:17 +00:00

37 lines
902 B
C++

/*
* Copyright 2021 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef skgpu_ShaderErrorHandler_DEFINED
#define skgpu_ShaderErrorHandler_DEFINED
#include "include/core/SkTypes.h"
namespace skgpu {
/**
* Abstract class to report errors when compiling shaders.
*/
class SK_API ShaderErrorHandler {
public:
virtual ~ShaderErrorHandler() = default;
virtual void compileError(const char* shader, const char* errors) = 0;
protected:
ShaderErrorHandler() = default;
ShaderErrorHandler(const ShaderErrorHandler&) = delete;
ShaderErrorHandler& operator=(const ShaderErrorHandler&) = delete;
};
/**
* Used when no error handler is set. Will report failures via SkDebugf and asserts.
*/
ShaderErrorHandler* DefaultShaderErrorHandler();
} // namespace skgpu
#endif // skgpu_ShaderErrorHandler_DEFINED