1cb93a386Sopenharmony_ci/*
2cb93a386Sopenharmony_ci * Copyright 2019 Google Inc.
3cb93a386Sopenharmony_ci *
4cb93a386Sopenharmony_ci * Use of this source code is governed by a BSD-style license that can be
5cb93a386Sopenharmony_ci * found in the LICENSE file.
6cb93a386Sopenharmony_ci */
7cb93a386Sopenharmony_ci
8cb93a386Sopenharmony_ci#ifndef SkTileModes_DEFINED
9cb93a386Sopenharmony_ci#define SkTileModes_DEFINED
10cb93a386Sopenharmony_ci
11cb93a386Sopenharmony_ci#include "include/core/SkTypes.h"
12cb93a386Sopenharmony_ci
13cb93a386Sopenharmony_cienum class SkTileMode {
14cb93a386Sopenharmony_ci    /**
15cb93a386Sopenharmony_ci     *  Replicate the edge color if the shader draws outside of its
16cb93a386Sopenharmony_ci     *  original bounds.
17cb93a386Sopenharmony_ci     */
18cb93a386Sopenharmony_ci    kClamp,
19cb93a386Sopenharmony_ci
20cb93a386Sopenharmony_ci    /**
21cb93a386Sopenharmony_ci     *  Repeat the shader's image horizontally and vertically.
22cb93a386Sopenharmony_ci     */
23cb93a386Sopenharmony_ci    kRepeat,
24cb93a386Sopenharmony_ci
25cb93a386Sopenharmony_ci    /**
26cb93a386Sopenharmony_ci     *  Repeat the shader's image horizontally and vertically, alternating
27cb93a386Sopenharmony_ci     *  mirror images so that adjacent images always seam.
28cb93a386Sopenharmony_ci     */
29cb93a386Sopenharmony_ci    kMirror,
30cb93a386Sopenharmony_ci
31cb93a386Sopenharmony_ci    /**
32cb93a386Sopenharmony_ci     *  Only draw within the original domain, return transparent-black everywhere else.
33cb93a386Sopenharmony_ci     */
34cb93a386Sopenharmony_ci    kDecal,
35cb93a386Sopenharmony_ci
36cb93a386Sopenharmony_ci    kLastTileMode = kDecal,
37cb93a386Sopenharmony_ci};
38cb93a386Sopenharmony_ci
39cb93a386Sopenharmony_cistatic constexpr int kSkTileModeCount = static_cast<int>(SkTileMode::kLastTileMode) + 1;
40cb93a386Sopenharmony_ci
41cb93a386Sopenharmony_ci#endif
42