SkEmbossMaskFilter.h revision 6fcbfcead5dc1b61fa5b4c139a1a3714e8c58091
124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner/* 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner * Copyright 2006 The Android Open Source Project 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner * 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner * Use of this source code is governed by a BSD-style license that can be 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner * found in the LICENSE file. 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner */ 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef SkEmbossMaskFilter_DEFINED 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define SkEmbossMaskFilter_DEFINED 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "SkMaskFilter.h" 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1349ce8969d3154e1560106cfe530444c09410f217Greg Clayton/** \class SkEmbossMaskFilter 1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1549ce8969d3154e1560106cfe530444c09410f217Greg Clayton This mask filter creates a 3D emboss look, by specifying a light and blur amount. 169b82f8637b65c90e91c2827245550a1bb5e8df91Greg Clayton*/ 179b82f8637b65c90e91c2827245550a1bb5e8df91Greg Claytonclass SK_API SkEmbossMaskFilter : public SkMaskFilter { 18eea264007bc5fb42c8f3239726a9d28ae42e1b7bGreg Claytonpublic: 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner struct Light { 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SkScalar fDirection[3]; // x,y,z 21a807ceef5dad2b24e5bae5c5a193ff03aa7ec8d9Michael Sartain uint16_t fPad; 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint8_t fAmbient; 23da7af84c427c5c3a7b18e550c665c2f538670a34Greg Clayton uint8_t fSpecular; // exponent, 4.4 right now 24da7af84c427c5c3a7b18e550c665c2f538670a34Greg Clayton }; 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SkEmbossMaskFilter(SkScalar blurSigma, const Light& light); 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // DEPRECATED - radius-based 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SkEmbossMaskFilter(const Light& light, SkScalar blurRadius); 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // overrides from SkMaskFilter 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // This method is not exported to java. 3324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual SkMask::Format getFormat() const SK_OVERRIDE; 34289afcb5e26c2527a0d2e71f84e780b86bbcf90aGreg Clayton // This method is not exported to java. 35289afcb5e26c2527a0d2e71f84e780b86bbcf90aGreg Clayton virtual bool filterMask(SkMask* dst, const SkMask& src, const SkMatrix&, 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SkIPoint* margin) const SK_OVERRIDE; 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3826100dcbc49648eac03fa8e8c3d7c793808fc8d6Greg Clayton SkDEVCODE(virtual void toString(SkString* str) const SK_OVERRIDE;) 39289afcb5e26c2527a0d2e71f84e780b86bbcf90aGreg Clayton SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkEmbossMaskFilter) 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected: 4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SkEmbossMaskFilter(SkFlattenableReadBuffer&); 4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; 4424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate: 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Light fLight; 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SkScalar fBlurSigma; 4824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner typedef SkMaskFilter INHERITED; 5024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 5124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 52289afcb5e26c2527a0d2e71f84e780b86bbcf90aGreg Clayton#endif 53289afcb5e26c2527a0d2e71f84e780b86bbcf90aGreg Clayton