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