blob: 36ff15c1d11157cfcf69e7d548c008225f068367 [file] [log] [blame]
krajcevski630598c2014-07-14 12:00:04 -07001/*
2 * Copyright 2014 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "SkTextureCompression_opts.h"
9#include "SkTextureCompression_opts_neon.h"
10#include "SkUtilsArm.h"
11
12SkTextureCompressor::CompressionProc
13SkTextureCompressorGetPlatformProc(SkColorType colorType, SkTextureCompressor::Format fmt) {
14#if SK_ARM_NEON_IS_NONE
15 return NULL;
16#else
17#if SK_ARM_NEON_IS_DYNAMIC
18 if (!sk_cpu_arm_has_neon()) {
19 return NULL;
20 }
21#endif
22 switch (colorType) {
23 case kAlpha_8_SkColorType:
24 {
25 switch (fmt) {
26 case SkTextureCompressor::kR11_EAC_Format:
27 return CompressA8toR11EAC_NEON;
28 default:
29 return NULL;
30 }
31 }
32 break;
33
34 default:
35 return NULL;
36 }
37#endif
38}
krajcevski25a67bc2014-07-29 11:44:26 -070039
40bool SkTextureCompressorGetPlatformDims(SkTextureCompressor::Format fmt, int* dimX, int* dimY) {
41#if SK_ARM_NEON_IS_NONE
42 return false;
43#else
44#if SK_ARM_NEON_IS_DYNAMIC
45 if (!sk_cpu_arm_has_neon()) {
46 return false;
47 }
48#endif
49 switch (fmt) {
50 case SkTextureCompressor::kR11_EAC_Format:
51 *dimX = 16;
52 *dimY = 4;
53 return true;
54 default:
55 return false;
56 }
57 return false;
58#endif
59}