summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/skia/src/core/SkXfermode_proccoeff.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/skia/src/core/SkXfermode_proccoeff.h')
-rw-r--r--chromium/third_party/skia/src/core/SkXfermode_proccoeff.h47
1 files changed, 30 insertions, 17 deletions
diff --git a/chromium/third_party/skia/src/core/SkXfermode_proccoeff.h b/chromium/third_party/skia/src/core/SkXfermode_proccoeff.h
index 205edf2fa0c..7edf6654a43 100644
--- a/chromium/third_party/skia/src/core/SkXfermode_proccoeff.h
+++ b/chromium/third_party/skia/src/core/SkXfermode_proccoeff.h
@@ -2,7 +2,8 @@
#define SkXfermode_proccoeff_DEFINED
#include "SkXfermode.h"
-#include "SkFlattenableBuffers.h"
+#include "SkReadBuffer.h"
+#include "SkWriteBuffer.h"
struct ProcCoeff {
SkXfermodeProc fProc;
@@ -12,16 +13,19 @@ struct ProcCoeff {
#define CANNOT_USE_COEFF SkXfermode::Coeff(-1)
-class SkProcCoeffXfermode : public SkProcXfermode {
+class SK_API SkProcCoeffXfermode : public SkXfermode {
public:
- SkProcCoeffXfermode(const ProcCoeff& rec, Mode mode)
- : INHERITED(rec.fProc) {
- fMode = mode;
- // these may be valid, or may be CANNOT_USE_COEFF
- fSrcCoeff = rec.fSC;
- fDstCoeff = rec.fDC;
+ static SkProcCoeffXfermode* Create(const ProcCoeff& rec, Mode mode) {
+ return SkNEW_ARGS(SkProcCoeffXfermode, (rec, mode));
}
+ virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
+ const SkAlpha aa[]) const SK_OVERRIDE;
+ virtual void xfer16(uint16_t dst[], const SkPMColor src[], int count,
+ const SkAlpha aa[]) const SK_OVERRIDE;
+ virtual void xferA8(SkAlpha dst[], const SkPMColor src[], int count,
+ const SkAlpha aa[]) const SK_OVERRIDE;
+
virtual bool asMode(Mode* mode) const SK_OVERRIDE;
virtual bool asCoeff(Coeff* sc, Coeff* dc) const SK_OVERRIDE;
@@ -31,23 +35,32 @@ public:
GrTexture* background) const SK_OVERRIDE;
#endif
- SK_DEVELOPER_TO_STRING()
+ SK_TO_STRING_OVERRIDE()
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkProcCoeffXfermode)
protected:
- SkProcCoeffXfermode(SkFlattenableReadBuffer& buffer);
+ SkProcCoeffXfermode(const ProcCoeff& rec, Mode mode) {
+ fMode = mode;
+ fProc = rec.fProc;
+ // these may be valid, or may be CANNOT_USE_COEFF
+ fSrcCoeff = rec.fSC;
+ fDstCoeff = rec.fDC;
+ }
- virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE;
+ SkProcCoeffXfermode(SkReadBuffer& buffer);
- Mode getMode() const {
- return fMode;
- }
+ virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE;
+
+ Mode getMode() const { return fMode; }
+
+ SkXfermodeProc getProc() const { return fProc; }
private:
- Mode fMode;
- Coeff fSrcCoeff, fDstCoeff;
+ SkXfermodeProc fProc;
+ Mode fMode;
+ Coeff fSrcCoeff, fDstCoeff;
- typedef SkProcXfermode INHERITED;
+ typedef SkXfermode INHERITED;
};
#endif // #ifndef SkXfermode_proccoeff_DEFINED