blob: c1dbfa2a7c215c189beb6744f73afbedd6065b3f [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
10#ifndef SkSpriteBlitter_DEFINED
11#define SkSpriteBlitter_DEFINED
12
13#include "SkBlitter.h"
14#include "SkBitmap.h"
15
16class SkPaint;
17
18class SkSpriteBlitter : public SkBlitter {
19public:
20 SkSpriteBlitter(const SkBitmap& source);
21 virtual ~SkSpriteBlitter();
22
23 virtual void setup(const SkBitmap& device, int left, int top,
24 const SkPaint& paint);
25
26 // overrides
27#ifdef SK_DEBUG
28 virtual void blitH(int x, int y, int width);
29 virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]);
30 virtual void blitV(int x, int y, int height, SkAlpha alpha);
31 virtual void blitMask(const SkMask&, const SkIRect& clip);
32#endif
33
34 static SkSpriteBlitter* ChooseD16(const SkBitmap& source, const SkPaint&,
35 void* storage, size_t storageSize);
36 static SkSpriteBlitter* ChooseD32(const SkBitmap& source, const SkPaint&,
37 void* storage, size_t storageSize);
38
39protected:
40 const SkBitmap* fDevice;
41 const SkBitmap* fSource;
42 int fLeft, fTop;
43 const SkPaint* fPaint;
44};
45
46#endif
47