18c4953c6f176469ad287c3270ab146e292b23badcommit-bot@chromium.org/* 28c4953c6f176469ad287c3270ab146e292b23badcommit-bot@chromium.org * Copyright 2014 Google Inc. 38c4953c6f176469ad287c3270ab146e292b23badcommit-bot@chromium.org * 48c4953c6f176469ad287c3270ab146e292b23badcommit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 58c4953c6f176469ad287c3270ab146e292b23badcommit-bot@chromium.org * found in the LICENSE file. 68c4953c6f176469ad287c3270ab146e292b23badcommit-bot@chromium.org */ 78c4953c6f176469ad287c3270ab146e292b23badcommit-bot@chromium.org 8c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org#ifndef SkXfermode_opts_SSE2_DEFINED 9c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org#define SkXfermode_opts_SSE2_DEFINED 10c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org 11780836e61154e751ef5640fb5eed77e4adcc825dcommit-bot@chromium.org#include "SkTypes.h" 12c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org#include "SkXfermode_proccoeff.h" 13c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org 14780836e61154e751ef5640fb5eed77e4adcc825dcommit-bot@chromium.orgclass SK_API SkSSE2ProcCoeffXfermode : public SkProcCoeffXfermode { 15c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.orgpublic: 16c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org SkSSE2ProcCoeffXfermode(const ProcCoeff& rec, SkXfermode::Mode mode, 17c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org void* procSIMD) 18c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org : INHERITED(rec, mode), fProcSIMD(procSIMD) {} 19c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org 20c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count, 21c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org const SkAlpha aa[]) const SK_OVERRIDE; 22c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org virtual void xfer16(uint16_t dst[], const SkPMColor src[], 23c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org int count, const SkAlpha aa[]) const SK_OVERRIDE; 24c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org 25c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org SK_TO_STRING_OVERRIDE() 26c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkSSE2ProcCoeffXfermode) 27c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org 28c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.orgprivate: 29c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org SkSSE2ProcCoeffXfermode(SkReadBuffer& buffer); 30c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org 31c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org void* fProcSIMD; 32c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org typedef SkProcCoeffXfermode INHERITED; 33c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org}; 34c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org 35e4a4f12bb5f15726107402be0506d382638f0bf2mtklein@google.comSkProcCoeffXfermode* SkPlatformXfermodeFactory_impl_SSE2(const ProcCoeff& rec, 36e4a4f12bb5f15726107402be0506d382638f0bf2mtklein@google.com SkXfermode::Mode mode); 37c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org 38c524e98f1edf06b53e65543f5f28217fa13b7aa9commit-bot@chromium.org#endif // SkXfermode_opts_SSE2_DEFINED 39