1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/* 2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2016 Google Inc. 3fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * 4fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Use of this source code is governed by a BSD-style license that can be 5fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * found in the LICENSE file. 6fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */ 7fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 8fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#ifndef SkRRectsGaussianEdgeMaskFilter_DEFINED 9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define SkRRectsGaussianEdgeMaskFilter_DEFINED 10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkMaskFilter.h" 12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkScalar.h" 13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SkRRect; 15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SK_API SkRRectsGaussianEdgeMaskFilter { 17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic: 18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot /** Returns a mask filter that applies a Gaussian blur depending on distance to the edge 19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * of the intersection of two round rects. 20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Currently this is only useable with round rects that have the same radii at 21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * all the corners and for which the x & y radii are equal. 22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * 23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * In order to minimize fill the coverage geometry that should be drawn should be no larger 24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * than the intersection of the bounding boxes of the two round rects. Ambitious users can 25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * omit the center area of the coverage geometry if it is known to be occluded. 26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot */ 27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot static sk_sp<SkMaskFilter> Make(const SkRRect& first, 28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot const SkRRect& second, 29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkScalar radius); 30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() 32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate: 34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkRRectsGaussianEdgeMaskFilter(); // can't be instantiated 35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}; 36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif 38