Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: src/opts/SkXfermode_opts_arm_neon.cpp

Issue 134163010: Refactor read and write buffers. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: original write flags were fine Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #include "SkXfermode.h" 1 #include "SkXfermode.h"
2 #include "SkXfermode_proccoeff.h" 2 #include "SkXfermode_proccoeff.h"
3 #include "SkColorPriv.h" 3 #include "SkColorPriv.h"
4 4
5 #include <arm_neon.h> 5 #include <arm_neon.h>
6 #include "SkColor_opts_neon.h" 6 #include "SkColor_opts_neon.h"
7 #include "SkXfermode_opts_arm_neon.h" 7 #include "SkXfermode_opts_arm_neon.h"
8 8
9 #define SkAlphaMulAlpha(a, b) SkMulDiv255Round(a, b) 9 #define SkAlphaMulAlpha(a, b) SkMulDiv255Round(a, b)
10 10
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 683
684 return ret; 684 return ret;
685 } 685 }
686 686
687 //////////////////////////////////////////////////////////////////////////////// 687 ////////////////////////////////////////////////////////////////////////////////
688 688
689 typedef uint8x8x4_t (*SkXfermodeProcSIMD)(uint8x8x4_t src, uint8x8x4_t dst); 689 typedef uint8x8x4_t (*SkXfermodeProcSIMD)(uint8x8x4_t src, uint8x8x4_t dst);
690 690
691 extern SkXfermodeProcSIMD gNEONXfermodeProcs[]; 691 extern SkXfermodeProcSIMD gNEONXfermodeProcs[];
692 692
693 SkNEONProcCoeffXfermode::SkNEONProcCoeffXfermode(SkFlattenableReadBuffer& buffer ) 693 SkNEONProcCoeffXfermode::SkNEONProcCoeffXfermode(SkReadBuffer& buffer)
694 : INHERITED(buffer) { 694 : INHERITED(buffer) {
695 fProcSIMD = reinterpret_cast<void*>(gNEONXfermodeProcs[this->getMode()]); 695 fProcSIMD = reinterpret_cast<void*>(gNEONXfermodeProcs[this->getMode()]);
696 } 696 }
697 697
698 void SkNEONProcCoeffXfermode::xfer32(SkPMColor dst[], const SkPMColor src[], 698 void SkNEONProcCoeffXfermode::xfer32(SkPMColor dst[], const SkPMColor src[],
699 int count, const SkAlpha aa[]) const { 699 int count, const SkAlpha aa[]) const {
700 SkASSERT(dst && src && count >= 0); 700 SkASSERT(dst && src && count >= 0);
701 701
702 SkXfermodeProc proc = this->getProc(); 702 SkXfermodeProc proc = this->getProc();
703 SkXfermodeProcSIMD procSIMD = reinterpret_cast<SkXfermodeProcSIMD>(fProcSIMD ); 703 SkXfermodeProcSIMD procSIMD = reinterpret_cast<SkXfermodeProcSIMD>(fProcSIMD );
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
928 928
929 if (procSIMD != NULL) { 929 if (procSIMD != NULL) {
930 return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, procSIMD)); 930 return SkNEW_ARGS(SkNEONProcCoeffXfermode, (rec, mode, procSIMD));
931 } 931 }
932 return NULL; 932 return NULL;
933 } 933 }
934 934
935 SkXfermodeProc SkPlatformXfermodeProcFactory_impl_neon(SkXfermode::Mode mode) { 935 SkXfermodeProc SkPlatformXfermodeProcFactory_impl_neon(SkXfermode::Mode mode) {
936 return gNEONXfermodeProcs1[mode]; 936 return gNEONXfermodeProcs1[mode];
937 } 937 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698