/* * Copyright 2014 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "SkTextureCompression_opts.h" #include "SkTextureCompression_opts_neon.h" #include "SkUtilsArm.h" SkTextureCompressor::CompressionProc SkTextureCompressorGetPlatformProc(SkColorType colorType, SkTextureCompressor::Format fmt) { #if SK_ARM_NEON_IS_NONE return NULL; #else #if SK_ARM_NEON_IS_DYNAMIC if (!sk_cpu_arm_has_neon()) { return NULL; } #endif switch (colorType) { case kAlpha_8_SkColorType: { switch (fmt) { case SkTextureCompressor::kR11_EAC_Format: return CompressA8toR11EAC_NEON; default: return NULL; } } break; default: return NULL; } #endif } bool SkTextureCompressorGetPlatformDims(SkTextureCompressor::Format fmt, int* dimX, int* dimY) { #if SK_ARM_NEON_IS_NONE return false; #else #if SK_ARM_NEON_IS_DYNAMIC if (!sk_cpu_arm_has_neon()) { return false; } #endif switch (fmt) { case SkTextureCompressor::kR11_EAC_Format: *dimX = 16; *dimY = 4; return true; default: return false; } return false; #endif }