• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2006 The Android Open Source Project
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef SkSpriteBlitter_DEFINED
9 #define SkSpriteBlitter_DEFINED
10 
11 #include "SkBlitter.h"
12 #include "SkPixmap.h"
13 #include "SkShader.h"
14 #include "SkSmallAllocator.h"
15 
16 class SkPaint;
17 
18 class SkSpriteBlitter : public SkBlitter {
19 public:
20     SkSpriteBlitter(const SkPixmap& source);
21 
22     virtual void setup(const SkPixmap& dst, int left, int top, const SkPaint&);
23 
24 #ifdef SK_DEBUG
25     void blitH(int x, int y, int width) override;
26     void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]) override;
27     void blitV(int x, int y, int height, SkAlpha alpha) override;
28     void blitMask(const SkMask&, const SkIRect& clip) override;
29 #endif
30 
31     static SkSpriteBlitter* ChooseD16(const SkPixmap& source, const SkPaint&, SkTBlitterAllocator*);
32     static SkSpriteBlitter* ChooseL32(const SkPixmap& source, const SkPaint&, SkTBlitterAllocator*);
33     static SkSpriteBlitter* ChooseS32(const SkPixmap& source, const SkPaint&, SkTBlitterAllocator*);
34     static SkSpriteBlitter* ChooseF16(const SkPixmap& source, const SkPaint&, SkTBlitterAllocator*);
35 
36 protected:
37     SkPixmap        fDst;
38     const SkPixmap  fSource;
39     int             fLeft, fTop;
40     const SkPaint*  fPaint;
41 };
42 
43 #endif
44