OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkColorShader.h" | 8 #include "SkColorShader.h" |
9 #include "SkColorSpace.h" | 9 #include "SkColorSpace.h" |
10 #include "SkReadBuffer.h" | 10 #include "SkReadBuffer.h" |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 } | 126 } |
127 | 127 |
128 SkColor4Shader::SkColor4Shader(const SkColor4f& color, sk_sp<SkColorSpace> space
) | 128 SkColor4Shader::SkColor4Shader(const SkColor4f& color, sk_sp<SkColorSpace> space
) |
129 : fColorSpace(std::move(space)) | 129 : fColorSpace(std::move(space)) |
130 , fColor4(color) | 130 , fColor4(color) |
131 , fCachedByteColor(unit_to_skcolor(color.pin(), space.get())) | 131 , fCachedByteColor(unit_to_skcolor(color.pin(), space.get())) |
132 {} | 132 {} |
133 | 133 |
134 sk_sp<SkFlattenable> SkColor4Shader::CreateProc(SkReadBuffer& buffer) { | 134 sk_sp<SkFlattenable> SkColor4Shader::CreateProc(SkReadBuffer& buffer) { |
135 SkColor4f color; | 135 SkColor4f color; |
136 color.fA = buffer.readScalar(); // readFloat() | 136 color.fR = buffer.readScalar(); // readFloat() |
137 color.fR = buffer.readScalar(); | |
138 color.fG = buffer.readScalar(); | 137 color.fG = buffer.readScalar(); |
139 color.fB = buffer.readScalar(); | 138 color.fB = buffer.readScalar(); |
| 139 color.fA = buffer.readScalar(); |
140 if (buffer.readBool()) { | 140 if (buffer.readBool()) { |
141 // TODO how do we unflatten colorspaces | 141 // TODO how do we unflatten colorspaces |
142 } | 142 } |
143 return SkShader::MakeColorShader(color, nullptr); | 143 return SkShader::MakeColorShader(color, nullptr); |
144 } | 144 } |
145 | 145 |
146 void SkColor4Shader::flatten(SkWriteBuffer& buffer) const { | 146 void SkColor4Shader::flatten(SkWriteBuffer& buffer) const { |
147 buffer.writeScalar(fColor4.fA); // writeFloat() | 147 buffer.writeScalar(fColor4.fR); // writeFloat() |
148 buffer.writeScalar(fColor4.fR); | |
149 buffer.writeScalar(fColor4.fG); | 148 buffer.writeScalar(fColor4.fG); |
150 buffer.writeScalar(fColor4.fB); | 149 buffer.writeScalar(fColor4.fB); |
| 150 buffer.writeScalar(fColor4.fA); |
151 buffer.writeBool(false); // TODO how do we flatten colorspaces? | 151 buffer.writeBool(false); // TODO how do we flatten colorspaces? |
152 } | 152 } |
153 | 153 |
154 uint32_t SkColor4Shader::Color4Context::getFlags() const { | 154 uint32_t SkColor4Shader::Color4Context::getFlags() const { |
155 return fFlags; | 155 return fFlags; |
156 } | 156 } |
157 | 157 |
158 SkShader::Context* SkColor4Shader::onCreateContext(const ContextRec& rec, void*
storage) const { | 158 SkShader::Context* SkColor4Shader::onCreateContext(const ContextRec& rec, void*
storage) const { |
159 return new (storage) Color4Context(*this, rec); | 159 return new (storage) Color4Context(*this, rec); |
160 } | 160 } |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 GrColor color = SkColorToPremulGrColor(fCachedByteColor); | 225 GrColor color = SkColorToPremulGrColor(fCachedByteColor); |
226 return GrConstColorProcessor::Make(color, GrConstColorProcessor::kModulateA_
InputMode); | 226 return GrConstColorProcessor::Make(color, GrConstColorProcessor::kModulateA_
InputMode); |
227 } | 227 } |
228 | 228 |
229 #endif | 229 #endif |
230 | 230 |
231 #ifndef SK_IGNORE_TO_STRING | 231 #ifndef SK_IGNORE_TO_STRING |
232 void SkColor4Shader::toString(SkString* str) const { | 232 void SkColor4Shader::toString(SkString* str) const { |
233 str->append("SkColor4Shader: ("); | 233 str->append("SkColor4Shader: ("); |
234 | 234 |
235 str->append("ARGB:"); | 235 str->append("RGBA:"); |
236 for (int i = 0; i < 4; ++i) { | 236 for (int i = 0; i < 4; ++i) { |
237 str->appendf(" %g", fColor4.vec()[i]); | 237 str->appendf(" %g", fColor4.vec()[i]); |
238 } | 238 } |
239 str->append(" )"); | 239 str->append(" )"); |
240 } | 240 } |
241 #endif | 241 #endif |
242 | 242 |
243 sk_sp<SkShader> SkShader::MakeColorShader(const SkColor4f& color, sk_sp<SkColorS
pace> space) { | 243 sk_sp<SkShader> SkShader::MakeColorShader(const SkColor4f& color, sk_sp<SkColorS
pace> space) { |
244 if (!SkScalarsAreFinite(color.vec(), 4)) { | 244 if (!SkScalarsAreFinite(color.vec(), 4)) { |
245 return nullptr; | 245 return nullptr; |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
306 } | 306 } |
307 | 307 |
308 bool SkColorShader::ColorShaderContext::onChooseBlitProcs(const SkImageInfo& inf
o, | 308 bool SkColorShader::ColorShaderContext::onChooseBlitProcs(const SkImageInfo& inf
o, |
309 BlitState* state) { | 309 BlitState* state) { |
310 return choose_blitprocs(&fPM4f, info, state); | 310 return choose_blitprocs(&fPM4f, info, state); |
311 } | 311 } |
312 | 312 |
313 bool SkColor4Shader::Color4Context::onChooseBlitProcs(const SkImageInfo& info, B
litState* state) { | 313 bool SkColor4Shader::Color4Context::onChooseBlitProcs(const SkImageInfo& info, B
litState* state) { |
314 return choose_blitprocs(&fPM4f, info, state); | 314 return choose_blitprocs(&fPM4f, info, state); |
315 } | 315 } |
OLD | NEW |