skia2/include/private/SkSLProgramKind.h
Ethan Nicholas 4144b8abb4 Added preliminary SkSL Metal compute shader support
This adds mostly-functional compute shader output to SkSL. This does not
add overall compute shader support to Skia; it still needs to be
integrated into the Skia pipeline before it is possible to actually use
compute shaders in practice.

Change-Id: Ic5c69863704f141d16bb191224a817e44f4a8565
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/539060
Reviewed-by: Arman Uguray <armansito@google.com>
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
2022-06-15 18:52:42 +00:00

36 lines
901 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,
kCompute,
kGraphiteFragment,
kGraphiteVertex,
kRuntimeColorFilter, // Runtime effect only suitable as SkColorFilter
kRuntimeShader, // " " " " " SkShader
kRuntimeBlender, // " " " " " SkBlender
kPrivateRuntimeShader, // Runtime shader with public restrictions lifted
kMeshVertex, // Vertex portion of a custom mesh
kMeshFragment, // Fragment " " " " "
kGeneric,
};
} // namespace SkSL
#endif