SkBitmapSource.h revision af35920e6d37035c052864bcf254a267a529dbd2
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copyright 2012 The Android Open Source Project
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef SkBitmapSource_DEFINED
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define SkBitmapSource_DEFINED
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "SkImageFilter.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "SkBitmap.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SK_API SkBitmapSource : public SkImageFilter {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public:
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    explicit SkBitmapSource(const SkBitmap& bitmap);
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SkBitmapSource(const SkBitmap& bitmap, const SkRect& srcRect, const SkRect& dstRect);
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBitmapSource)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)protected:
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    explicit SkBitmapSource(SkFlattenableReadBuffer& buffer);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                               SkBitmap* result, SkIPoint* offset) SK_OVERRIDE;
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)private:
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SkBitmap fBitmap;
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SkRect   fSrcRect, fDstRect;
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    typedef SkImageFilter INHERITED;
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)