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 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 } | 123 } |
124 | 124 |
125 SkColor4Shader::SkColor4Shader(const SkColor4f& color, sk_sp<SkColorSpace> space
) | 125 SkColor4Shader::SkColor4Shader(const SkColor4f& color, sk_sp<SkColorSpace> space
) |
126 : fColorSpace(std::move(space)) | 126 : fColorSpace(std::move(space)) |
127 , fColor4(color) | 127 , fColor4(color) |
128 , fCachedByteColor(unit_to_skcolor(color.pin(), space.get())) | 128 , fCachedByteColor(unit_to_skcolor(color.pin(), space.get())) |
129 {} | 129 {} |
130 | 130 |
131 sk_sp<SkFlattenable> SkColor4Shader::CreateProc(SkReadBuffer& buffer) { | 131 sk_sp<SkFlattenable> SkColor4Shader::CreateProc(SkReadBuffer& buffer) { |
132 SkColor4f color; | 132 SkColor4f color; |
133 color.fR = buffer.readScalar(); // readFloat() | 133 buffer.readColor4f(&color); |
134 color.fG = buffer.readScalar(); | |
135 color.fB = buffer.readScalar(); | |
136 color.fA = buffer.readScalar(); | |
137 if (buffer.readBool()) { | 134 if (buffer.readBool()) { |
138 // TODO how do we unflatten colorspaces | 135 // TODO how do we unflatten colorspaces |
139 } | 136 } |
140 return SkShader::MakeColorShader(color, nullptr); | 137 return SkShader::MakeColorShader(color, nullptr); |
141 } | 138 } |
142 | 139 |
143 void SkColor4Shader::flatten(SkWriteBuffer& buffer) const { | 140 void SkColor4Shader::flatten(SkWriteBuffer& buffer) const { |
144 buffer.writeScalar(fColor4.fR); // writeFloat() | 141 buffer.writeColor4f(fColor4); |
145 buffer.writeScalar(fColor4.fG); | |
146 buffer.writeScalar(fColor4.fB); | |
147 buffer.writeScalar(fColor4.fA); | |
148 buffer.writeBool(false); // TODO how do we flatten colorspaces? | 142 buffer.writeBool(false); // TODO how do we flatten colorspaces? |
149 } | 143 } |
150 | 144 |
151 uint32_t SkColor4Shader::Color4Context::getFlags() const { | 145 uint32_t SkColor4Shader::Color4Context::getFlags() const { |
152 return fFlags; | 146 return fFlags; |
153 } | 147 } |
154 | 148 |
155 SkShader::Context* SkColor4Shader::onCreateContext(const ContextRec& rec, void*
storage) const { | 149 SkShader::Context* SkColor4Shader::onCreateContext(const ContextRec& rec, void*
storage) const { |
156 return new (storage) Color4Context(*this, rec); | 150 return new (storage) Color4Context(*this, rec); |
157 } | 151 } |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 } | 294 } |
301 | 295 |
302 bool SkColorShader::ColorShaderContext::onChooseBlitProcs(const SkImageInfo& inf
o, | 296 bool SkColorShader::ColorShaderContext::onChooseBlitProcs(const SkImageInfo& inf
o, |
303 BlitState* state) { | 297 BlitState* state) { |
304 return choose_blitprocs(&fPM4f, info, state); | 298 return choose_blitprocs(&fPM4f, info, state); |
305 } | 299 } |
306 | 300 |
307 bool SkColor4Shader::Color4Context::onChooseBlitProcs(const SkImageInfo& info, B
litState* state) { | 301 bool SkColor4Shader::Color4Context::onChooseBlitProcs(const SkImageInfo& info, B
litState* state) { |
308 return choose_blitprocs(&fPM4f, info, state); | 302 return choose_blitprocs(&fPM4f, info, state); |
309 } | 303 } |
OLD | NEW |