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

Side by Side Diff: src/core/SkComposeShader.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 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #include "SkComposeShader.h" 10 #include "SkComposeShader.h"
11 #include "SkColorFilter.h" 11 #include "SkColorFilter.h"
12 #include "SkColorPriv.h" 12 #include "SkColorPriv.h"
13 #include "SkColorShader.h" 13 #include "SkColorShader.h"
14 #include "SkFlattenableBuffers.h" 14 #include "SkReadBuffer.h"
15 #include "SkWriteBuffer.h"
15 #include "SkXfermode.h" 16 #include "SkXfermode.h"
16 #include "SkString.h" 17 #include "SkString.h"
17 18
18 /////////////////////////////////////////////////////////////////////////////// 19 ///////////////////////////////////////////////////////////////////////////////
19 20
20 SkComposeShader::SkComposeShader(SkShader* sA, SkShader* sB, SkXfermode* mode) { 21 SkComposeShader::SkComposeShader(SkShader* sA, SkShader* sB, SkXfermode* mode) {
21 fShaderA = sA; sA->ref(); 22 fShaderA = sA; sA->ref();
22 fShaderB = sB; sB->ref(); 23 fShaderB = sB; sB->ref();
23 // mode may be null 24 // mode may be null
24 fMode = mode; 25 fMode = mode;
25 SkSafeRef(mode); 26 SkSafeRef(mode);
26 } 27 }
27 28
28 SkComposeShader::SkComposeShader(SkFlattenableReadBuffer& buffer) : 29 SkComposeShader::SkComposeShader(SkReadBuffer& buffer) :
29 INHERITED(buffer) { 30 INHERITED(buffer) {
30 fShaderA = buffer.readShader(); 31 fShaderA = buffer.readShader();
31 if (NULL == fShaderA) { 32 if (NULL == fShaderA) {
32 fShaderA = SkNEW_ARGS(SkColorShader, (0)); 33 fShaderA = SkNEW_ARGS(SkColorShader, (0));
33 } 34 }
34 fShaderB = buffer.readShader(); 35 fShaderB = buffer.readShader();
35 if (NULL == fShaderB) { 36 if (NULL == fShaderB) {
36 fShaderB = SkNEW_ARGS(SkColorShader, (0)); 37 fShaderB = SkNEW_ARGS(SkColorShader, (0));
37 } 38 }
38 fMode = buffer.readXfermode(); 39 fMode = buffer.readXfermode();
(...skipping 15 matching lines...) Expand all
54 55
55 ~SkAutoAlphaRestore() { 56 ~SkAutoAlphaRestore() {
56 fPaint->setAlpha(fAlpha); 57 fPaint->setAlpha(fAlpha);
57 } 58 }
58 private: 59 private:
59 SkPaint* fPaint; 60 SkPaint* fPaint;
60 uint8_t fAlpha; 61 uint8_t fAlpha;
61 }; 62 };
62 #define SkAutoAlphaRestore(...) SK_REQUIRE_LOCAL_VAR(SkAutoAlphaRestore) 63 #define SkAutoAlphaRestore(...) SK_REQUIRE_LOCAL_VAR(SkAutoAlphaRestore)
63 64
64 void SkComposeShader::flatten(SkFlattenableWriteBuffer& buffer) const { 65 void SkComposeShader::flatten(SkWriteBuffer& buffer) const {
65 this->INHERITED::flatten(buffer); 66 this->INHERITED::flatten(buffer);
66 buffer.writeFlattenable(fShaderA); 67 buffer.writeFlattenable(fShaderA);
67 buffer.writeFlattenable(fShaderB); 68 buffer.writeFlattenable(fShaderB);
68 buffer.writeFlattenable(fMode); 69 buffer.writeFlattenable(fMode);
69 } 70 }
70 71
71 /* We call setContext on our two worker shaders. However, we 72 /* We call setContext on our two worker shaders. However, we
72 always let them see opaque alpha, and if the paint really 73 always let them see opaque alpha, and if the paint really
73 is translucent, then we apply that after the fact. 74 is translucent, then we apply that after the fact.
74 75
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 str->append(" ShaderB: "); 185 str->append(" ShaderB: ");
185 fShaderB->toString(str); 186 fShaderB->toString(str);
186 str->append(" Xfermode: "); 187 str->append(" Xfermode: ");
187 fMode->toString(str); 188 fMode->toString(str);
188 189
189 this->INHERITED::toString(str); 190 this->INHERITED::toString(str);
190 191
191 str->append(")"); 192 str->append(")");
192 } 193 }
193 #endif 194 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698