1fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/* 2fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot * Copyright 2006 The Android Open Source Project 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 SkEmbossMaskFilter_DEFINED 9fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#define SkEmbossMaskFilter_DEFINED 10fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 11fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#include "SkMaskFilterBase.h" 12fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 13fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot/** \class SkEmbossMaskFilter 14fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 15fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot This mask filter creates a 3D emboss look, by specifying a light and blur amount. 16fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot*/ 17fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotclass SK_API SkEmbossMaskFilter : public SkMaskFilterBase { 18fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotpublic: 19fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot struct Light { 20fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkScalar fDirection[3]; // x,y,z 21fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot uint16_t fPad; 22fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot uint8_t fAmbient; 23fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot uint8_t fSpecular; // exponent, 4.4 right now 24fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot }; 25fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 26fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot static sk_sp<SkMaskFilter> Make(SkScalar blurSigma, const Light& light); 27fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 28fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot // overrides from SkMaskFilter 29fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot // This method is not exported to java. 30fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkMask::Format getFormat() const override; 31fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot // This method is not exported to java. 32fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot bool filterMask(SkMask* dst, const SkMask& src, const SkMatrix&, 33fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkIPoint* margin) const override; 34fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 35fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SK_TO_STRING_OVERRIDE() 36fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkEmbossMaskFilter) 37fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 38fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprotected: 39fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkEmbossMaskFilter(SkScalar blurSigma, const Light& light); 40fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot void flatten(SkWriteBuffer&) const override; 41fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 42fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robotprivate: 43fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot Light fLight; 44fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot SkScalar fBlurSigma; 45fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 46fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot typedef SkMaskFilter INHERITED; 47fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot}; 48fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot 49fe17456d5e528078ce69b5f15cf7adf1fab963fandroid-build-team Robot#endif 50