OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
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 "SkPaint.h" | 8 #include "SkPaint.h" |
9 #include "SkAutoKern.h" | 9 #include "SkAutoKern.h" |
10 #include "SkChecksum.h" | 10 #include "SkChecksum.h" |
(...skipping 1338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1349 } | 1349 } |
1350 | 1350 |
1351 if (paint.isDevKernText()) { | 1351 if (paint.isDevKernText()) { |
1352 flags |= SkScalerContext::kDevKernText_Flag; | 1352 flags |= SkScalerContext::kDevKernText_Flag; |
1353 } | 1353 } |
1354 | 1354 |
1355 if (style != SkPaint::kFill_Style && strokeWidth > 0) { | 1355 if (style != SkPaint::kFill_Style && strokeWidth > 0) { |
1356 rec->fFrameWidth = strokeWidth; | 1356 rec->fFrameWidth = strokeWidth; |
1357 rec->fMiterLimit = paint.getStrokeMiter(); | 1357 rec->fMiterLimit = paint.getStrokeMiter(); |
1358 rec->fStrokeJoin = SkToU8(paint.getStrokeJoin()); | 1358 rec->fStrokeJoin = SkToU8(paint.getStrokeJoin()); |
| 1359 rec->fStrokeCap = SkToU8(paint.getStrokeCap()); |
1359 | 1360 |
1360 if (style == SkPaint::kStrokeAndFill_Style) { | 1361 if (style == SkPaint::kStrokeAndFill_Style) { |
1361 flags |= SkScalerContext::kFrameAndFill_Flag; | 1362 flags |= SkScalerContext::kFrameAndFill_Flag; |
1362 } | 1363 } |
1363 } else { | 1364 } else { |
1364 rec->fFrameWidth = 0; | 1365 rec->fFrameWidth = 0; |
1365 rec->fMiterLimit = 0; | 1366 rec->fMiterLimit = 0; |
1366 rec->fStrokeJoin = 0; | 1367 rec->fStrokeJoin = 0; |
| 1368 rec->fStrokeCap = 0; |
1367 } | 1369 } |
1368 | 1370 |
1369 rec->fMaskFormat = SkToU8(compute_mask_format(paint)); | 1371 rec->fMaskFormat = SkToU8(compute_mask_format(paint)); |
1370 | 1372 |
1371 if (SkMask::kLCD16_Format == rec->fMaskFormat) { | 1373 if (SkMask::kLCD16_Format == rec->fMaskFormat) { |
1372 if (too_big_for_lcd(*rec, checkPost2x2)) { | 1374 if (too_big_for_lcd(*rec, checkPost2x2)) { |
1373 rec->fMaskFormat = SkMask::kA8_Format; | 1375 rec->fMaskFormat = SkMask::kA8_Format; |
1374 flags |= SkScalerContext::kGenA8FromLCD_Flag; | 1376 flags |= SkScalerContext::kGenA8FromLCD_Flag; |
1375 } else { | 1377 } else { |
1376 SkPixelGeometry geometry = surfaceProps | 1378 SkPixelGeometry geometry = surfaceProps |
(...skipping 981 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2358 } | 2360 } |
2359 | 2361 |
2360 uint32_t SkPaint::getHash() const { | 2362 uint32_t SkPaint::getHash() const { |
2361 // We're going to hash 10 pointers and 7 32-bit values, finishing up with fB
itfields, | 2363 // We're going to hash 10 pointers and 7 32-bit values, finishing up with fB
itfields, |
2362 // so fBitfields should be 10 pointers and 6 32-bit values from the start. | 2364 // so fBitfields should be 10 pointers and 6 32-bit values from the start. |
2363 static_assert(offsetof(SkPaint, fBitfields) == 9 * sizeof(void*) + 6 * sizeo
f(uint32_t), | 2365 static_assert(offsetof(SkPaint, fBitfields) == 9 * sizeof(void*) + 6 * sizeo
f(uint32_t), |
2364 "SkPaint_notPackedTightly"); | 2366 "SkPaint_notPackedTightly"); |
2365 return SkChecksum::Murmur3(reinterpret_cast<const uint32_t*>(this), | 2367 return SkChecksum::Murmur3(reinterpret_cast<const uint32_t*>(this), |
2366 offsetof(SkPaint, fBitfields) + sizeof(fBitfields
)); | 2368 offsetof(SkPaint, fBitfields) + sizeof(fBitfields
)); |
2367 } | 2369 } |
OLD | NEW |