diff options
author | 2017-01-13 14:37:37 -0500 | |
---|---|---|
committer | 2017-01-13 20:09:02 +0000 | |
commit | 43475ad9dc43c4cbe13d924d8caff8916dcbbc06 (patch) | |
tree | 7d88d02b2e5992771832ee73604ed023ed9361f1 /include/utils/SkShadowUtils.h | |
parent | d4652ca1b7989af5ef4e81b0de4eba529f804618 (diff) |
Move Android shadow rendering interface to util library.
BUG=skia:6119
Change-Id: I8318cf2758042ffd0c81c5fa74240acbf7bea61f
Reviewed-on: https://skia-review.googlesource.com/6999
Commit-Queue: Jim Van Verth <jvanverth@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'include/utils/SkShadowUtils.h')
-rwxr-xr-x | include/utils/SkShadowUtils.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/utils/SkShadowUtils.h b/include/utils/SkShadowUtils.h new file mode 100755 index 0000000000..c3809295fb --- /dev/null +++ b/include/utils/SkShadowUtils.h @@ -0,0 +1,39 @@ + +/* + * Copyright 2017 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#ifndef SkShadowUtils_DEFINED +#define SkShadowUtils_DEFINED + +#include "SkColor.h" +#include "SkScalar.h" + +class SkCanvas; +class SkPath; + +class SkShadowUtils { +public: + enum ShadowFlags { + kNone_ShadowFlag = 0x00, + /** The occluding object is not opaque. Knowing that the occluder is opaque allows + * us to cull shadow geometry behind it and improve performance. */ + kTransparentOccluder_ShadowFlag = 0x01, + /** Use a larger umbra for a darker shadow */ + kLargerUmbra_ShadowFlag = 0x02, + /** Use a Gaussian for the edge function rather than smoothstep */ + kGaussianEdge_ShadowFlag = 0x04, + /** mask for all shadow flags */ + kAll_ShadowFlag = 0x07 + }; + + // Draw an offset spot shadow and outlining ambient shadow for the given path. + static void DrawShadow(SkCanvas*, const SkPath& path, SkScalar occluderHeight, + const SkPoint3& lightPos, SkScalar lightRadius, + SkScalar ambientAlpha, SkScalar spotAlpha, SkColor color, + uint32_t flags = kNone_ShadowFlag); +}; + +#endif |