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

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     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