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

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

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

mercurial