xref: /aosp_15_r20/external/skia/src/sksl/SkSLProgramKind.h (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1 /*
2  * Copyright 2021 Google LLC.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef SkSLProgramKind_DEFINED
9 #define SkSLProgramKind_DEFINED
10 
11 #include <cinttypes>
12 
13 namespace SkSL {
14 
15 /**
16  * SkSL supports several different program kinds.
17  */
18 enum class ProgramKind : int8_t {
19     kFragment,
20     kVertex,
21     kCompute,
22     kGraphiteFragment,
23     kGraphiteVertex,
24     kGraphiteFragmentES2,
25     kGraphiteVertexES2,
26     kRuntimeColorFilter,        // Runtime effect only suitable as SkColorFilter
27     kRuntimeShader,             //   "       "     "      "     "  SkShader
28     kRuntimeBlender,            //   "       "     "      "     "  SkBlender
29     kPrivateRuntimeColorFilter, // Runtime color filter with public restrictions lifted
30     kPrivateRuntimeShader,      // Runtime shader        "     "         "         "
31     kPrivateRuntimeBlender,     // Runtime blender       "     "         "         "
32     kMeshVertex,                // Vertex   portion of a custom mesh
33     kMeshFragment,              // Fragment  "      "  "   "     "
34 };
35 
36 } // namespace SkSL
37 
38 #endif
39