blob: ce4d7c8199a893a50754e9063f775c3cdc3c4f34 [file] [log] [blame]
* 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 {
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