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 "SkBitmapProcShader.h" | 8 #include "SkBitmapProcShader.h" |
9 #include "SkBitmapProcState.h" | 9 #include "SkBitmapProcState.h" |
10 #include "SkError.h" | 10 #include "SkError.h" |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 | 161 |
162 SkVector fInvNormRotation; | 162 SkVector fInvNormRotation; |
163 }; | 163 }; |
164 | 164 |
165 sk_sp<GrFragmentProcessor> NormalMapSourceImpl::asFragmentProcessor( | 165 sk_sp<GrFragmentProcessor> NormalMapSourceImpl::asFragmentProcessor( |
166 GrContext *context, | 166 GrContext *context, |
167 const SkMatrix &viewM, | 167 const SkMatrix &viewM, |
168 const SkMatrix *localMatrix
, | 168 const SkMatrix *localMatrix
, |
169 SkFilterQuality filterQuali
ty, | 169 SkFilterQuality filterQuali
ty, |
170 SkSourceGammaTreatment gamm
aTreatment) const { | 170 SkSourceGammaTreatment gamm
aTreatment) const { |
171 | |
172 sk_sp<GrFragmentProcessor> bitmapFP = fBitmapShader->asFragmentProcessor(con
text, viewM, | 171 sk_sp<GrFragmentProcessor> bitmapFP = fBitmapShader->asFragmentProcessor(con
text, viewM, |
173 localMatrix, filterQuality, gammaTreatment); | 172 localMatrix, filterQuality, gammaTreatment); |
174 | 173 |
175 return sk_make_sp<NormalMapFP>(std::move(bitmapFP), fInvNormRotation); | 174 return sk_make_sp<NormalMapFP>(std::move(bitmapFP), fInvNormRotation); |
176 } | 175 } |
177 | 176 |
178 #endif // SK_SUPPORT_GPU | 177 #endif // SK_SUPPORT_GPU |
179 | 178 |
180 //////////////////////////////////////////////////////////////////////////// | 179 //////////////////////////////////////////////////////////////////////////// |
181 | 180 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 this->INHERITED::flatten(buf); | 270 this->INHERITED::flatten(buf); |
272 | 271 |
273 buf.writeFlattenable(fBitmapShader.get()); | 272 buf.writeFlattenable(fBitmapShader.get()); |
274 buf.writePoint(fInvNormRotation); | 273 buf.writePoint(fInvNormRotation); |
275 } | 274 } |
276 | 275 |
277 //////////////////////////////////////////////////////////////////////////// | 276 //////////////////////////////////////////////////////////////////////////// |
278 | 277 |
279 sk_sp<SkLightingShader::NormalSource> SkLightingShader::NormalSource::MakeMap( | 278 sk_sp<SkLightingShader::NormalSource> SkLightingShader::NormalSource::MakeMap( |
280 const SkBitmap &normal, const SkVector &invNormRotation, const SkMatrix
*normLocalM) { | 279 const SkBitmap &normal, const SkVector &invNormRotation, const SkMatrix
*normLocalM) { |
281 | |
282 if (normal.isNull() || SkBitmapProcShader::BitmapIsTooBig(normal)) { | 280 if (normal.isNull() || SkBitmapProcShader::BitmapIsTooBig(normal)) { |
283 return nullptr; | 281 return nullptr; |
284 } | 282 } |
285 | 283 |
286 SkASSERT(SkScalarNearlyEqual(invNormRotation.lengthSqd(), SK_Scalar1)); | 284 SkASSERT(SkScalarNearlyEqual(invNormRotation.lengthSqd(), SK_Scalar1)); |
287 | 285 |
288 // TODO: support other tile modes | 286 // TODO: support other tile modes |
289 sk_sp<SkShader> bitmapShader = SkMakeBitmapShader(normal, SkShader::kClamp_T
ileMode, | 287 sk_sp<SkShader> bitmapShader = SkMakeBitmapShader(normal, SkShader::kClamp_T
ileMode, |
290 SkShader::kClamp_TileMode, normLocalM, nullptr); | 288 SkShader::kClamp_TileMode, normLocalM, nullptr); |
291 | 289 |
292 return sk_make_sp<NormalMapSourceImpl>(std::move(bitmapShader), invNormRotat
ion); | 290 return sk_make_sp<NormalMapSourceImpl>(std::move(bitmapShader), invNormRotat
ion); |
293 } | 291 } |
294 | 292 |
295 //////////////////////////////////////////////////////////////////////////// | 293 //////////////////////////////////////////////////////////////////////////// |
296 | 294 |
297 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkLightingShader::NormalSource) | 295 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(SkLightingShader::NormalSource) |
298 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(NormalMapSourceImpl) | 296 SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(NormalMapSourceImpl) |
299 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END | 297 SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END |
300 | 298 |
301 //////////////////////////////////////////////////////////////////////////// | 299 //////////////////////////////////////////////////////////////////////////// |
OLD | NEW |