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 "SkDraw.h" | 8 #include "SkDraw.h" |
9 #include "SkBlitter.h" | 9 #include "SkBlitter.h" |
10 #include "SkBounder.h" | 10 #include "SkBounder.h" |
(...skipping 2511 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2522 if (NULL == xmode) { | 2522 if (NULL == xmode) { |
2523 xmode = SkXfermode::Create(SkXfermode::kModulate_Mode); | 2523 xmode = SkXfermode::Create(SkXfermode::kModulate_Mode); |
2524 releaseMode = true; | 2524 releaseMode = true; |
2525 } | 2525 } |
2526 SkShader* compose = SkNEW_ARGS(SkComposeShader, | 2526 SkShader* compose = SkNEW_ARGS(SkComposeShader, |
2527 (&triShader, shader, xmode)); | 2527 (&triShader, shader, xmode)); |
2528 p.setShader(compose)->unref(); | 2528 p.setShader(compose)->unref(); |
2529 if (releaseMode) { | 2529 if (releaseMode) { |
2530 xmode->unref(); | 2530 xmode->unref(); |
2531 } | 2531 } |
2532 shader = compose; | |
2533 } | 2532 } |
2534 } | 2533 } |
2535 | 2534 |
2536 SkAutoBlitterChoose blitter(*fBitmap, *fMatrix, p); | 2535 SkAutoBlitterChoose blitter(*fBitmap, *fMatrix, p); |
2537 // important that we abort early, as below we may manipulate the shader | 2536 // important that we abort early, as below we may manipulate the shader |
2538 // and that is only valid if the shader returned true from setContext. | 2537 // and that is only valid if the shader returned true from setContext. |
2539 // If it returned false, then our blitter will be the NullBlitter. | 2538 // If it returned false, then our blitter will be the NullBlitter. |
2540 if (blitter->isNullBlitter()) { | 2539 if (blitter->isNullBlitter()) { |
2541 return; | 2540 return; |
2542 } | 2541 } |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2821 mask->fImage = SkMask::AllocImage(size); | 2820 mask->fImage = SkMask::AllocImage(size); |
2822 memset(mask->fImage, 0, mask->computeImageSize()); | 2821 memset(mask->fImage, 0, mask->computeImageSize()); |
2823 } | 2822 } |
2824 | 2823 |
2825 if (SkMask::kJustComputeBounds_CreateMode != mode) { | 2824 if (SkMask::kJustComputeBounds_CreateMode != mode) { |
2826 draw_into_mask(*mask, devPath, style); | 2825 draw_into_mask(*mask, devPath, style); |
2827 } | 2826 } |
2828 | 2827 |
2829 return true; | 2828 return true; |
2830 } | 2829 } |
OLD | NEW |