| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 The Android Open Source Project |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #include "SkBlitter.h" | 10 #include "SkBlitter.h" |
| (...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 865 SkPaint* p = paint.writable(); | 865 SkPaint* p = paint.writable(); |
| 866 shader = p->setShader(NULL); | 866 shader = p->setShader(NULL); |
| 867 cf = p->setColorFilter(NULL); | 867 cf = p->setColorFilter(NULL); |
| 868 mode = p->setXfermodeMode(SkXfermode::kSrc_Mode); | 868 mode = p->setXfermodeMode(SkXfermode::kSrc_Mode); |
| 869 p->setColor(0); | 869 p->setColor(0); |
| 870 } | 870 } |
| 871 | 871 |
| 872 if (NULL == shader) { | 872 if (NULL == shader) { |
| 873 if (mode) { | 873 if (mode) { |
| 874 // xfermodes (and filters) require shaders for our current blitters | 874 // xfermodes (and filters) require shaders for our current blitters |
| 875 shader = SkNEW(SkColorShader); | 875 shader = SkNEW_ARGS(SkColorShader, (paint->getColor())); |
| 876 paint.writable()->setShader(shader)->unref(); | 876 paint.writable()->setShader(shader)->unref(); |
| 877 paint.writable()->setAlpha(0xFF); |
| 877 } else if (cf) { | 878 } else if (cf) { |
| 878 // if no shader && no xfermode, we just apply the colorfilter to | 879 // if no shader && no xfermode, we just apply the colorfilter to |
| 879 // our color and move on. | 880 // our color and move on. |
| 880 SkPaint* writablePaint = paint.writable(); | 881 SkPaint* writablePaint = paint.writable(); |
| 881 writablePaint->setColor(cf->filterColor(paint->getColor())); | 882 writablePaint->setColor(cf->filterColor(paint->getColor())); |
| 882 writablePaint->setColorFilter(NULL); | 883 writablePaint->setColorFilter(NULL); |
| 883 cf = NULL; | 884 cf = NULL; |
| 884 } | 885 } |
| 885 } | 886 } |
| 886 | 887 |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 964 | 965 |
| 965 fShader->ref(); | 966 fShader->ref(); |
| 966 fShaderFlags = fShader->getFlags(); | 967 fShaderFlags = fShader->getFlags(); |
| 967 } | 968 } |
| 968 | 969 |
| 969 SkShaderBlitter::~SkShaderBlitter() { | 970 SkShaderBlitter::~SkShaderBlitter() { |
| 970 SkASSERT(fShader->setContextHasBeenCalled()); | 971 SkASSERT(fShader->setContextHasBeenCalled()); |
| 971 fShader->endContext(); | 972 fShader->endContext(); |
| 972 fShader->unref(); | 973 fShader->unref(); |
| 973 } | 974 } |
| OLD | NEW |