|  | /* | 
|  | * Copyright 2011 Google Inc. | 
|  | * | 
|  | * Use of this source code is governed by a BSD-style license that can be | 
|  | * found in the LICENSE file. | 
|  | */ | 
|  |  | 
|  | #ifndef SkBlitRow_DEFINED | 
|  | #define SkBlitRow_DEFINED | 
|  |  | 
|  | #include "include/core/SkBitmap.h" | 
|  | #include "include/core/SkColor.h" | 
|  |  | 
|  | class SkBlitRow { | 
|  | public: | 
|  | enum Flags32 { | 
|  | kGlobalAlpha_Flag32     = 1 << 0, | 
|  | kSrcPixelAlpha_Flag32   = 1 << 1 | 
|  | }; | 
|  |  | 
|  | /** Function pointer that blends 32bit colors onto a 32bit destination. | 
|  | @param dst  array of dst 32bit colors | 
|  | @param src  array of src 32bit colors (w/ or w/o alpha) | 
|  | @param count number of colors to blend | 
|  | @param alpha global alpha to be applied to all src colors | 
|  | */ | 
|  | typedef void (*Proc32)(uint32_t dst[], const SkPMColor src[], int count, U8CPU alpha); | 
|  |  | 
|  | static Proc32 Factory32(unsigned flags32); | 
|  |  | 
|  | /** Blend a single color onto a row of S32 pixels, writing the result | 
|  | back to the same memory. | 
|  | */ | 
|  | static void Color32(SkPMColor dst[], int count, SkPMColor color); | 
|  | }; | 
|  |  | 
|  | namespace SkOpts { | 
|  | extern void (*blit_row_color32)(SkPMColor* dst, int count, SkPMColor color); | 
|  | extern void (*blit_row_s32a_opaque)(SkPMColor* dst, const SkPMColor* src, | 
|  | int count, U8CPU alpha); | 
|  |  | 
|  | void Init_BlitRow(); | 
|  | }  // namespace SkOpts | 
|  |  | 
|  | #endif |