Thu, 15 Jan 2015 21:03:48 +0100
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.)
1 #ifndef SkXfermode_proccoeff_DEFINED
2 #define SkXfermode_proccoeff_DEFINED
4 #include "SkXfermode.h"
5 #include "SkReadBuffer.h"
6 #include "SkWriteBuffer.h"
8 struct ProcCoeff {
9 SkXfermodeProc fProc;
10 SkXfermode::Coeff fSC;
11 SkXfermode::Coeff fDC;
12 };
14 #define CANNOT_USE_COEFF SkXfermode::Coeff(-1)
16 class SkProcCoeffXfermode : public SkProcXfermode {
17 public:
18 static SkProcCoeffXfermode* Create(const ProcCoeff& rec, Mode mode) {
19 return SkNEW_ARGS(SkProcCoeffXfermode, (rec, mode));
20 }
22 virtual bool asMode(Mode* mode) const SK_OVERRIDE;
24 virtual bool asCoeff(Coeff* sc, Coeff* dc) const SK_OVERRIDE;
26 #if SK_SUPPORT_GPU
27 virtual bool asNewEffect(GrEffectRef** effect,
28 GrTexture* background) const SK_OVERRIDE;
29 #endif
31 SK_TO_STRING_OVERRIDE()
32 SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkProcCoeffXfermode)
34 protected:
35 SkProcCoeffXfermode(const ProcCoeff& rec, Mode mode)
36 : INHERITED(rec.fProc) {
37 fMode = mode;
38 // these may be valid, or may be CANNOT_USE_COEFF
39 fSrcCoeff = rec.fSC;
40 fDstCoeff = rec.fDC;
41 }
43 SkProcCoeffXfermode(SkReadBuffer& buffer);
45 virtual void flatten(SkWriteBuffer& buffer) const SK_OVERRIDE;
47 Mode getMode() const {
48 return fMode;
49 }
51 private:
52 Mode fMode;
53 Coeff fSrcCoeff, fDstCoeff;
55 typedef SkProcXfermode INHERITED;
56 };
58 #endif // #ifndef SkXfermode_proccoeff_DEFINED