10910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project/* libs/graphics/sgl/SkSpriteBlitter.h 20910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** 30910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** Copyright 2006, The Android Open Source Project 40910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** 50910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License"); 60910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** you may not use this file except in compliance with the License. 70910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** You may obtain a copy of the License at 80910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** http://www.apache.org/licenses/LICENSE-2.0 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** Unless required by applicable law or agreed to in writing, software 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS, 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** See the License for the specific language governing permissions and 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project** limitations under the License. 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project*/ 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkSpriteBlitter_DEFINED 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkSpriteBlitter_DEFINED 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkBlitter.h" 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkBitmap.h" 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkPaint; 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkSpriteBlitter : public SkBlitter { 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic: 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkSpriteBlitter(const SkBitmap& source); 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual ~SkSpriteBlitter(); 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void setup(const SkBitmap& device, int left, int top, 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkPaint& paint); 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project // overrides 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifdef SK_DEBUG 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void blitH(int x, int y, int width); 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void blitAntiH(int x, int y, const SkAlpha antialias[], const int16_t runs[]); 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void blitV(int x, int y, int height, SkAlpha alpha); 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void blitMask(const SkMask&, const SkIRect& clip); 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project static SkSpriteBlitter* ChooseD16(const SkBitmap& source, const SkPaint&, 430910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void* storage, size_t storageSize); 440910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project static SkSpriteBlitter* ChooseD32(const SkBitmap& source, const SkPaint&, 450910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void* storage, size_t storageSize); 460910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 470910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprotected: 480910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkBitmap* fDevice; 490910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkBitmap* fSource; 500910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project int fLeft, fTop; 510910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project const SkPaint* fPaint; 520910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 530910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 540910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif 550910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 56