blob: e93f77807265729482b2bd7af9b727f6ed177c18 [file] [log] [blame]
/*
* Copyright 2017 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#include "SkShadowUtils.h"
#include "SkCanvas.h"
#include "../effects/shadows/SkAmbientShadowMaskFilter.h"
#include "../effects/shadows/SkSpotShadowMaskFilter.h"
// Draw an offset spot shadow and outlining ambient shadow for the given path.
void SkShadowUtils::DrawShadow(SkCanvas* canvas, const SkPath& path, SkScalar occluderHeight,
const SkPoint3& lightPos, SkScalar lightRadius,
SkScalar ambientAlpha, SkScalar spotAlpha, SkColor color,
uint32_t flags) {
SkPaint newPaint;
newPaint.setColor(color);
newPaint.setMaskFilter(SkAmbientShadowMaskFilter::Make(occluderHeight, ambientAlpha, flags));
canvas->drawPath(path, newPaint);
newPaint.setMaskFilter(SkSpotShadowMaskFilter::Make(occluderHeight, lightPos, lightRadius,
spotAlpha, flags));
canvas->drawPath(path, newPaint);
}