gfx/skia/trunk/src/opts/SkXfermode_opts_arm_neon.h

Thu, 15 Jan 2015 21:03:48 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 21:03:48 +0100
branch
TOR_BUG_9701
changeset 11
deefc01c0e14
permissions
-rw-r--r--

Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)

michael@0 1 #ifndef SkXfermode_opts_arm_neon_DEFINED
michael@0 2 #define SkXfermode_opts_arm_neon_DEFINED
michael@0 3
michael@0 4 #include "SkXfermode_proccoeff.h"
michael@0 5
michael@0 6 class SkNEONProcCoeffXfermode : public SkProcCoeffXfermode {
michael@0 7 public:
michael@0 8 SkNEONProcCoeffXfermode(const ProcCoeff& rec, SkXfermode::Mode mode,
michael@0 9 void* procSIMD)
michael@0 10 : INHERITED(rec, mode), fProcSIMD(procSIMD) {}
michael@0 11
michael@0 12 virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
michael@0 13 const SkAlpha aa[]) const SK_OVERRIDE;
michael@0 14 virtual void xfer16(uint16_t* SK_RESTRICT dst, const SkPMColor* SK_RESTRICT src,
michael@0 15 int count, const SkAlpha* SK_RESTRICT aa) const SK_OVERRIDE;
michael@0 16
michael@0 17 SK_TO_STRING_OVERRIDE()
michael@0 18 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkNEONProcCoeffXfermode)
michael@0 19
michael@0 20 private:
michael@0 21 SkNEONProcCoeffXfermode(SkReadBuffer& buffer);
michael@0 22
michael@0 23 // void* is used to avoid pulling arm_neon.h in the core and having to build
michael@0 24 // it with -mfpu=neon.
michael@0 25 void* fProcSIMD;
michael@0 26 typedef SkProcCoeffXfermode INHERITED;
michael@0 27 };
michael@0 28
michael@0 29 extern SkPMColor srcatop_modeproc_neon(SkPMColor src, SkPMColor dst);
michael@0 30 extern SkPMColor dstatop_modeproc_neon(SkPMColor src, SkPMColor dst);
michael@0 31 extern SkPMColor xor_modeproc_neon(SkPMColor src, SkPMColor dst);
michael@0 32 extern SkPMColor plus_modeproc_neon(SkPMColor src, SkPMColor dst);
michael@0 33 extern SkPMColor modulate_modeproc_neon(SkPMColor src, SkPMColor dst);
michael@0 34
michael@0 35 #endif //#ifdef SkXfermode_opts_arm_neon_DEFINED

mercurial