11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkSpriteBlitter_DEFINED 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkSpriteBlitter_DEFINED 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkBlitter.h" 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkBitmap.h" 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkPaint; 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkSpriteBlitter : public SkBlitter { 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic: 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkSpriteBlitter(const SkBitmap& source); 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual ~SkSpriteBlitter(); 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void setup(const SkBitmap& device, int left, int top, 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkPaint& paint); 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // overrides 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DEBUG 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void blitH(int x, int y, int width); 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]); 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void blitV(int x, int y, int height, SkAlpha alpha); 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void blitMask(const SkMask&, const SkIRect& clip); 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project static SkSpriteBlitter* ChooseD16(const SkBitmap& source, const SkPaint&, 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void* storage, size_t storageSize); 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project static SkSpriteBlitter* ChooseD32(const SkBitmap& source, const SkPaint&, 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void* storage, size_t storageSize); 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprotected: 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkBitmap* fDevice; 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkBitmap* fSource; 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int fLeft, fTop; 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkPaint* fPaint; 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 48