LCOV - code coverage report
Current view: directory - gfx/skia/src/core - SkSpriteBlitterTemplate.h (source / functions) Found Hit Coverage
Test: app.info Lines: 30 0 0.0 %
Date: 2012-06-02 Functions: 28 0 0.0 %

       1                 : 
       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                 : 
       9                 : 
      10                 : 
      11               0 : class SkSPRITE_CLASSNAME : public SkSpriteBlitter {
      12                 : public:
      13               0 :     SkSPRITE_CLASSNAME(const SkBitmap& source SkSPRITE_ARGS)
      14               0 :         : SkSpriteBlitter(source) {
      15               0 :         SkSPRITE_INIT
      16               0 :     }
      17                 : 
      18               0 :     virtual void blitRect(int x, int y, int width, int height) {
      19               0 :         SkASSERT(width > 0 && height > 0);
      20               0 :         int srcX = x - fLeft;
      21               0 :         int srcY = y - fTop;
      22               0 :         SkSPRITE_DST_TYPE* SK_RESTRICT dst =fDevice->SkSPRITE_DST_GETADDR(x, y);
      23                 :         const SkSPRITE_SRC_TYPE* SK_RESTRICT src =
      24               0 :                                       fSource->SkSPRITE_SRC_GETADDR(srcX, srcY);
      25               0 :         unsigned dstRB = fDevice->rowBytes();
      26               0 :         unsigned srcRB = fSource->rowBytes();
      27                 : 
      28               0 :         SkDEBUGCODE((void)fDevice->SkSPRITE_DST_GETADDR(x + width - 1, y + height - 1);)
      29               0 :         SkDEBUGCODE((void)fSource->SkSPRITE_SRC_GETADDR(srcX + width  - 1, srcY + height - 1);)
      30                 : 
      31               0 :         SkSPRITE_PREAMBLE((*fSource), srcX, srcY);
      32                 : 
      33               0 :         do {
      34               0 :             SkSPRITE_DST_TYPE* d = dst;
      35               0 :             const SkSPRITE_SRC_TYPE* s = src;
      36                 : #ifdef SkSPRITE_BEGIN_ROW
      37                 :             SkSPRITE_BEGIN_ROW
      38                 : #endif
      39                 : 
      40                 : #ifdef SkSPRITE_ROW_PROC
      41               0 :             SkSPRITE_ROW_PROC(d, s, width, x, y);
      42                 : #else
      43               0 :             int w = width;
      44               0 :             do {
      45               0 :                 SkSPRITE_SRC_TYPE sc = *s++;
      46               0 :                 SkSPRITE_BLIT_PIXEL(d, sc);
      47               0 :                 d += 1;
      48                 :             } while (--w != 0);
      49                 : #endif
      50               0 :             dst = (SkSPRITE_DST_TYPE* SK_RESTRICT)((char*)dst + dstRB);
      51                 :             src = (const SkSPRITE_SRC_TYPE* SK_RESTRICT)
      52               0 :                                             ((const char*)src + srcRB);
      53                 :             SkSPRITE_NEXT_ROW
      54                 : #ifdef SkSPRITE_ROW_PROC
      55               0 :             y += 1;
      56                 : #endif
      57                 :         } while (--height != 0);
      58                 : 
      59               0 :         SkSPRITE_POSTAMBLE((*fSource));
      60               0 :     }
      61                 : 
      62                 : private:
      63                 :     SkSPRITE_FIELDS
      64                 : };
      65                 : 
      66                 : #undef SkSPRITE_BLIT_PIXEL
      67                 : #undef SkSPRITE_CLASSNAME
      68                 : #undef SkSPRITE_DST_TYPE
      69                 : #undef SkSPRITE_SRC_TYPE
      70                 : #undef SkSPRITE_DST_GETADDR
      71                 : #undef SkSPRITE_SRC_GETADDR
      72                 : #undef SkSPRITE_PREAMBLE
      73                 : #undef SkSPRITE_POSTAMBLE
      74                 : #undef SkSPRITE_ARGS
      75                 : #undef SkSPRITE_FIELDS
      76                 : #undef SkSPRITE_INIT
      77                 : #undef SkSPRITE_NEXT_ROW
      78                 : #undef SkSPRITE_BEGIN_ROW
      79                 : 
      80                 : #ifdef SkSPRITE_ROW_PROC
      81                 :     #undef SkSPRITE_ROW_PROC
      82                 : #endif

Generated by: LCOV version 1.7