1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 7ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */ 8ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 98a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifndef SkSpriteBlitter_DEFINED 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SkSpriteBlitter_DEFINED 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 138a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#include "SkBitmap.h" 14a5572e5bb2a2bbeeb59de0741c2527869d365a0ccommit-bot@chromium.org#include "SkBitmapProcShader.h" 15a5572e5bb2a2bbeeb59de0741c2527869d365a0ccommit-bot@chromium.org#include "SkBlitter.h" 16a5572e5bb2a2bbeeb59de0741c2527869d365a0ccommit-bot@chromium.org#include "SkShader.h" 17a5572e5bb2a2bbeeb59de0741c2527869d365a0ccommit-bot@chromium.org#include "SkSmallAllocator.h" 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 198a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkPaint; 208a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 218a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comclass SkSpriteBlitter : public SkBlitter { 228a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.compublic: 238a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com SkSpriteBlitter(const SkBitmap& source); 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual ~SkSpriteBlitter(); 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void setup(const SkBitmap& device, int left, int top, 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com const SkPaint& paint); 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com // overrides 308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifdef SK_DEBUG 318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void blitH(int x, int y, int width); 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]); 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void blitV(int x, int y, int height, SkAlpha alpha); 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com virtual void blitMask(const SkMask&, const SkIRect& clip); 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com static SkSpriteBlitter* ChooseD16(const SkBitmap& source, const SkPaint&, 38a5572e5bb2a2bbeeb59de0741c2527869d365a0ccommit-bot@chromium.org SkTBlitterAllocator*); 398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com static SkSpriteBlitter* ChooseD32(const SkBitmap& source, const SkPaint&, 40a5572e5bb2a2bbeeb59de0741c2527869d365a0ccommit-bot@chromium.org SkTBlitterAllocator*); 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comprotected: 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com const SkBitmap* fDevice; 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com const SkBitmap* fSource; 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int fLeft, fTop; 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com const SkPaint* fPaint; 478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 50