blob: d50707dce0c7e5a03618eeb697dac986c0def59f [file] [log] [blame]
digit@google.com3ada0ef2012-08-13 14:06:34 +00001
2/*
3 * Copyright 2012 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8#include "SkBitmapProcState.h"
9#include "SkBitmapProcState_filter.h"
10#include "SkColorPriv.h"
11#include "SkFilterProc.h"
12#include "SkPaint.h"
13#include "SkShader.h" // for tilemodes
14#include "SkUtilsArm.h"
15
16// Required to ensure the table is part of the final binary.
17extern const SkBitmapProcState::SampleProc32 gSkBitmapProcStateSample32_neon[];
18extern const SkBitmapProcState::SampleProc16 gSkBitmapProcStateSample16_neon[];
19
20#define NAME_WRAP(x) x ## _neon
21#include "SkBitmapProcState_filter_neon.h"
22#include "SkBitmapProcState_procs.h"
23
24const SkBitmapProcState::SampleProc32 gSkBitmapProcStateSample32_neon[] = {
25 S32_opaque_D32_nofilter_DXDY_neon,
26 S32_alpha_D32_nofilter_DXDY_neon,
27 S32_opaque_D32_nofilter_DX_neon,
28 S32_alpha_D32_nofilter_DX_neon,
29 S32_opaque_D32_filter_DXDY_neon,
30 S32_alpha_D32_filter_DXDY_neon,
31 S32_opaque_D32_filter_DX_neon,
32 S32_alpha_D32_filter_DX_neon,
33
34 S16_opaque_D32_nofilter_DXDY_neon,
35 S16_alpha_D32_nofilter_DXDY_neon,
36 S16_opaque_D32_nofilter_DX_neon,
37 S16_alpha_D32_nofilter_DX_neon,
38 S16_opaque_D32_filter_DXDY_neon,
39 S16_alpha_D32_filter_DXDY_neon,
40 S16_opaque_D32_filter_DX_neon,
41 S16_alpha_D32_filter_DX_neon,
42
43 SI8_opaque_D32_nofilter_DXDY_neon,
44 SI8_alpha_D32_nofilter_DXDY_neon,
45 SI8_opaque_D32_nofilter_DX_neon,
46 SI8_alpha_D32_nofilter_DX_neon,
47 SI8_opaque_D32_filter_DXDY_neon,
48 SI8_alpha_D32_filter_DXDY_neon,
49 SI8_opaque_D32_filter_DX_neon,
50 SI8_alpha_D32_filter_DX_neon,
51
52 S4444_opaque_D32_nofilter_DXDY_neon,
53 S4444_alpha_D32_nofilter_DXDY_neon,
54 S4444_opaque_D32_nofilter_DX_neon,
55 S4444_alpha_D32_nofilter_DX_neon,
56 S4444_opaque_D32_filter_DXDY_neon,
57 S4444_alpha_D32_filter_DXDY_neon,
58 S4444_opaque_D32_filter_DX_neon,
59 S4444_alpha_D32_filter_DX_neon,
60
61 // A8 treats alpha/opauqe the same (equally efficient)
62 SA8_alpha_D32_nofilter_DXDY_neon,
63 SA8_alpha_D32_nofilter_DXDY_neon,
64 SA8_alpha_D32_nofilter_DX_neon,
65 SA8_alpha_D32_nofilter_DX_neon,
66 SA8_alpha_D32_filter_DXDY_neon,
67 SA8_alpha_D32_filter_DXDY_neon,
68 SA8_alpha_D32_filter_DX_neon,
69 SA8_alpha_D32_filter_DX_neon
70};
71
72const SkBitmapProcState::SampleProc16 gSkBitmapProcStateSample16_neon[] = {
73 S32_D16_nofilter_DXDY_neon,
74 S32_D16_nofilter_DX_neon,
75 S32_D16_filter_DXDY_neon,
76 S32_D16_filter_DX_neon,
77
78 S16_D16_nofilter_DXDY_neon,
79 S16_D16_nofilter_DX_neon,
80 S16_D16_filter_DXDY_neon,
81 S16_D16_filter_DX_neon,
82
83 SI8_D16_nofilter_DXDY_neon,
84 SI8_D16_nofilter_DX_neon,
85 SI8_D16_filter_DXDY_neon,
86 SI8_D16_filter_DX_neon,
87
88 // Don't support 4444 -> 565
89 NULL, NULL, NULL, NULL,
90 // Don't support A8 -> 565
91 NULL, NULL, NULL, NULL
92};