1 | /* |
2 | * Copyright 2012 The Android Open Source Project |
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 SkLightingImageFilter_DEFINED |
9 | #define SkLightingImageFilter_DEFINED |
10 | |
11 | #include "include/core/SkColor.h" |
12 | #include "include/core/SkImageFilter.h" |
13 | |
14 | struct SkPoint3; |
15 | |
16 | // DEPRECATED: Use include/effects/SkImageFilters::[Diffuse|Specular]Light[Distant|Point|Spot] |
17 | class SK_API SkLightingImageFilter { |
18 | public: |
19 | static sk_sp<SkImageFilter> MakeDistantLitDiffuse(const SkPoint3& direction, |
20 | SkColor lightColor, SkScalar surfaceScale, SkScalar kd, |
21 | sk_sp<SkImageFilter> input, const SkImageFilter::CropRect* cropRect = nullptr); |
22 | static sk_sp<SkImageFilter> MakePointLitDiffuse(const SkPoint3& location, |
23 | SkColor lightColor, SkScalar surfaceScale, SkScalar kd, |
24 | sk_sp<SkImageFilter> input, const SkImageFilter::CropRect* cropRect = nullptr); |
25 | static sk_sp<SkImageFilter> MakeSpotLitDiffuse(const SkPoint3& location, |
26 | const SkPoint3& target, SkScalar specularExponent, SkScalar cutoffAngle, |
27 | SkColor lightColor, SkScalar surfaceScale, SkScalar kd, |
28 | sk_sp<SkImageFilter> input, const SkImageFilter::CropRect* cropRect = nullptr); |
29 | static sk_sp<SkImageFilter> MakeDistantLitSpecular(const SkPoint3& direction, |
30 | SkColor lightColor, SkScalar surfaceScale, SkScalar ks, SkScalar shininess, |
31 | sk_sp<SkImageFilter> input, const SkImageFilter::CropRect* cropRect = nullptr); |
32 | static sk_sp<SkImageFilter> MakePointLitSpecular(const SkPoint3& location, |
33 | SkColor lightColor, SkScalar surfaceScale, SkScalar ks, SkScalar shininess, |
34 | sk_sp<SkImageFilter> input, const SkImageFilter::CropRect* cropRect = nullptr); |
35 | static sk_sp<SkImageFilter> MakeSpotLitSpecular(const SkPoint3& location, |
36 | const SkPoint3& target, SkScalar specularExponent, SkScalar cutoffAngle, |
37 | SkColor lightColor, SkScalar surfaceScale, SkScalar ks, SkScalar shininess, |
38 | sk_sp<SkImageFilter> input, const SkImageFilter::CropRect* cropRect = nullptr); |
39 | |
40 | static void RegisterFlattenables(); |
41 | |
42 | private: |
43 | SkLightingImageFilter() = delete; |
44 | }; |
45 | |
46 | #endif |
47 | |