1685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com 2685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com/* 3685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Copyright 2006 The Android Open Source Project 4685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * 5685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com * found in the LICENSE file. 7685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com */ 8685cfc0ee13d7c355ae2f4f3d225ad45e945763fepoger@google.com 9bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 10bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#ifndef SkBitmapProcShader_DEFINED 11bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#define SkBitmapProcShader_DEFINED 12bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 13bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkShader.h" 14bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#include "SkBitmapProcState.h" 15bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 16bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comclass SkBitmapProcShader : public SkShader { 17bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.compublic: 18bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkBitmapProcShader(const SkBitmap& src, TileMode tx, TileMode ty); 19bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 20bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com // overrides from SkShader 219601a62f74301f2f773240b3b0614e3cb152a024junov@chromium.org virtual bool isOpaque() const SK_OVERRIDE; 22bc0c7b3fc892adc21eeac2d56b02a525ee811fdbrobertphillips@google.com virtual bool setContext(const SkBitmap&, const SkPaint&, const SkMatrix&) SK_OVERRIDE; 23bc0c7b3fc892adc21eeac2d56b02a525ee811fdbrobertphillips@google.com virtual void endContext() SK_OVERRIDE; 24bc0c7b3fc892adc21eeac2d56b02a525ee811fdbrobertphillips@google.com virtual uint32_t getFlags() SK_OVERRIDE { return fFlags; } 25bc0c7b3fc892adc21eeac2d56b02a525ee811fdbrobertphillips@google.com virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count) SK_OVERRIDE; 26f1bbd533e266687c5c2b6b406e06ae28bc500920reed@google.com virtual ShadeProc asAShadeProc(void** ctx) SK_OVERRIDE; 27bc0c7b3fc892adc21eeac2d56b02a525ee811fdbrobertphillips@google.com virtual void shadeSpan16(int x, int y, uint16_t dstC[], int count) SK_OVERRIDE; 28bc0c7b3fc892adc21eeac2d56b02a525ee811fdbrobertphillips@google.com virtual BitmapType asABitmap(SkBitmap*, SkMatrix*, TileMode*) const SK_OVERRIDE; 29bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 30bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com static bool CanDo(const SkBitmap&, TileMode tx, TileMode ty); 31cd3b04168750d8eeba11a037360792c12f83f313skia.committer@gmail.com 32bc0c7b3fc892adc21eeac2d56b02a525ee811fdbrobertphillips@google.com SK_DEVELOPER_TO_STRING() 334d1d95c61576960796347e1dd5006d878e9d2dc0djsollen@google.com SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBitmapProcShader) 34bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 3505614588d877c5112445a5a0478619b187c2dbc4bsalomon@google.com#if SK_SUPPORT_GPU 3638b58f31a3070ea9254d55894a59528270ac67ddbsalomon@google.com GrEffectRef* asNewEffect(GrContext*, const SkPaint&) const SK_OVERRIDE; 3705614588d877c5112445a5a0478619b187c2dbc4bsalomon@google.com#endif 3805614588d877c5112445a5a0478619b187c2dbc4bsalomon@google.com 39bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.comprotected: 40bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkBitmapProcShader(SkFlattenableReadBuffer& ); 41cd2e444e946f5cfec4723f5bc46e9487d82e8e54djsollen@google.com virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE; 42bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 43bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkBitmap fRawBitmap; // experimental for RLE encoding 44bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com SkBitmapProcState fState; 45bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com uint32_t fFlags; 46bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 47092e2ef83749d3711c0772677502df77a622f75areed@google.comprivate: 48bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com typedef SkShader INHERITED; 49bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com}; 50bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com 51bcd4d5ab12df062500a4df90ec90d0f2d764931reed@android.com#endif 52