af35920e6d
Note: I initially implemented this as a fully-generic SkResizeImageFilter, but then I realized that the dstRect should always be transformed by the filter matrix, but that the srcRect should not (since it's specified relative to the dimensions of the original bitmap). Since this would be confusing for someone attempting to use this as a generic resizing filter, I decided to build the functionality into SkBitmapSource instead. BUG= R=reed@google.com Review URL: https://codereview.chromium.org/106933002 git-svn-id: http://skia.googlecode.com/svn/trunk@12522 2bbb7eff-a529-9590-31e7-b0007b416f81
34 lines
970 B
C++
34 lines
970 B
C++
/*
|
|
* Copyright 2012 The Android Open Source Project
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
|
|
#ifndef SkBitmapSource_DEFINED
|
|
#define SkBitmapSource_DEFINED
|
|
|
|
#include "SkImageFilter.h"
|
|
#include "SkBitmap.h"
|
|
|
|
class SK_API SkBitmapSource : public SkImageFilter {
|
|
public:
|
|
explicit SkBitmapSource(const SkBitmap& bitmap);
|
|
SkBitmapSource(const SkBitmap& bitmap, const SkRect& srcRect, const SkRect& dstRect);
|
|
|
|
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBitmapSource)
|
|
|
|
protected:
|
|
explicit SkBitmapSource(SkFlattenableReadBuffer& buffer);
|
|
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
|
|
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
|
|
SkBitmap* result, SkIPoint* offset) SK_OVERRIDE;
|
|
|
|
private:
|
|
SkBitmap fBitmap;
|
|
SkRect fSrcRect, fDstRect;
|
|
typedef SkImageFilter INHERITED;
|
|
};
|
|
|
|
#endif
|