c6b2e7115a
We now have a new type of ProgramKind, private runtime shaders. `sksl_rt_effect.sksl` is now only loaded for these kinds of program. Rather than having a special-case check for sk_FragCoord in SkRuntimeEffect, the symbol will no longer exist at all unless a private options flag is set. Change-Id: I9223baaf59d74c44d64f322cd57fc841625342b7 Bug: skia:12202 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/532784 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: John Stiles <johnstiles@google.com> Auto-Submit: John Stiles <johnstiles@google.com>
35 lines
881 B
C++
35 lines
881 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 SkSLProgramKind_DEFINED
|
|
#define SkSLProgramKind_DEFINED
|
|
|
|
#include <cinttypes>
|
|
|
|
namespace SkSL {
|
|
|
|
/**
|
|
* SkSL supports several different program kinds.
|
|
*/
|
|
enum class ProgramKind : int8_t {
|
|
kFragment,
|
|
kVertex,
|
|
kGraphiteFragment,
|
|
kGraphiteVertex,
|
|
kRuntimeColorFilter, // Runtime effect only suitable as SkColorFilter
|
|
kRuntimeShader, // " " " " " SkShader
|
|
kRuntimeBlender, // " " " " " SkBlender
|
|
kPrivateRuntimeShader, // Runtime shader with public restrictions lifted
|
|
kCustomMeshVertex, // Vertex portion of a custom mesh
|
|
kCustomMeshFragment, // Fragment " " " " "
|
|
kGeneric,
|
|
};
|
|
|
|
} // namespace SkSL
|
|
|
|
#endif
|