Index: include/private/SkShadowParams.h |
diff --git a/include/private/SkShadowParams.h b/include/private/SkShadowParams.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3df0a442796ac42844293d4a22c1da43506a3736 |
--- /dev/null |
+++ b/include/private/SkShadowParams.h |
@@ -0,0 +1,48 @@ |
+/* |
+ * Copyright 2016 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+#ifndef SkShadowParams_DEFINED |
+#define SkShadowParams_DEFINED |
+ |
+/** \struct SkShadowParams |
+ |
+ This struct holds information needed for drawing shadows. |
+ |
+ fShadowRadius - radius of the shadow blur |
+ |
+ fBiasingConstant - A constant used in variance shadow mapping to directly |
+ 0.0 - 1.0 reduce light bleeding. Essentially sets all shadows |
+ ~.25 below a certain brightness equal to no light, and does |
+ a linear step on the rest. Essentially makes shadows |
+ darker and more rounded at higher values. |
+ |
+ fMinVariance - Too low of a variance (near the outer edges of blurry |
+ ~512, 1024 shadows) will lead to ugly sharp shadow brightness |
+ distortions. This enforces a minimum amount of variance |
+ in the calculation to smooth out the outside edges of |
+ blurry shadows. However, too high of a value for this will |
+ cause all shadows to be lighter by visibly different |
+ amounts varying on depth. |
+ |
+ fType - Decides which algorithm to use to draw shadows. |
+*/ |
+struct SkShadowParams { |
+ SkScalar fShadowRadius; |
+ SkScalar fBiasingConstant; |
+ SkScalar fMinVariance; |
+ |
+ enum ShadowType { |
+ kNoBlur_ShadowType, |
+ kVariance_ShadowType, |
+ |
+ kLast_ShadowType = kVariance_ShadowType |
+ }; |
+ static const int kShadowTypeCount = kLast_ShadowType + 1; |
+ |
+ ShadowType fType; |
+}; |
+ |
+#endif |