1cba73780bbd12fd254229517aec04fcbf0b64b52commit-bot@chromium.org/* 2cba73780bbd12fd254229517aec04fcbf0b64b52commit-bot@chromium.org * Copyright 2014 Google Inc. 3cba73780bbd12fd254229517aec04fcbf0b64b52commit-bot@chromium.org * 4cba73780bbd12fd254229517aec04fcbf0b64b52commit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 5cba73780bbd12fd254229517aec04fcbf0b64b52commit-bot@chromium.org * found in the LICENSE file. 6cba73780bbd12fd254229517aec04fcbf0b64b52commit-bot@chromium.org */ 7e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org 8d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#include "SkColor.h" 9d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#include "SkColorPriv.h" 10e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org#include "SkBlitMask.h" 11d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#include "SkUtilsArm.h" 12d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#include "SkBlitMask_opts_arm_neon.h" 13e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org 14cba73780bbd12fd254229517aec04fcbf0b64b52commit-bot@chromium.orgSkBlitMask::ColorProc SkBlitMask::PlatformColorProcs(SkColorType dstCT, 15e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org SkMask::Format maskFormat, 16e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org SkColor color) { 17d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#if SK_ARM_NEON_IS_NONE 18d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com return NULL; 19d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#else 200e8c8ef8d1dcb55d0ea63904574213c997c88e3acommit-bot@chromium.org/* ** This has been disabled until we can diagnose and fix the SIGILL generated 210e8c8ef8d1dcb55d0ea63904574213c997c88e3acommit-bot@chromium.org ** in the NEON code. See http://skbug.com/2067 for details. 22d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#if SK_ARM_NEON_IS_DYNAMIC 23d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com if (!sk_cpu_arm_has_neon()) { 24d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com return NULL; 25d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com } 26d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#endif 27c77392ed58ec78ab19fa0e3ff99fb8110854fba2reed if ((kN32_SkColorType == dstCT) && 28d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com (SkMask::kA8_Format == maskFormat)) { 29d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com return D32_A8_Factory_neon(color); 30d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com } 310e8c8ef8d1dcb55d0ea63904574213c997c88e3acommit-bot@chromium.org*/ 32d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com#endif 33d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com 34d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com // We don't need to handle the SkMask::kLCD16_Format case as the default 35d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com // LCD16 will call us through SkBlitMask::PlatformBlitRowProcs16() 36d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com 37e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org return NULL; 38e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org} 39e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org 40e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.orgSkBlitMask::BlitLCD16RowProc SkBlitMask::PlatformBlitRowProcs16(bool isOpaque) { 41d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com if (isOpaque) { 42d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com return SK_ARM_NEON_WRAP(SkBlitLCD16OpaqueRow); 43d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com } else { 44d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com return SK_ARM_NEON_WRAP(SkBlitLCD16Row); 45d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com } 46e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org} 47e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org 48cba73780bbd12fd254229517aec04fcbf0b64b52commit-bot@chromium.orgSkBlitMask::RowProc SkBlitMask::PlatformRowProcs(SkColorType dstCT, 49e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org SkMask::Format maskFormat, 50e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org RowFlags flags) { 51e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org return NULL; 52e997c26e2ea41c411d770b15898fcbd196812917commit-bot@chromium.org} 53