Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2008 The Android Open Source Project | 3 * Copyright 2008 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 "SkCanvas.h" | 10 #include "SkCanvas.h" |
| (...skipping 838 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 849 fClipStack.save(); | 849 fClipStack.save(); |
| 850 } | 850 } |
| 851 | 851 |
| 852 return saveCount; | 852 return saveCount; |
| 853 } | 853 } |
| 854 | 854 |
| 855 void SkCanvas::willSave(SaveFlags) { | 855 void SkCanvas::willSave(SaveFlags) { |
| 856 // Do nothing. Subclasses may do something. | 856 // Do nothing. Subclasses may do something. |
| 857 } | 857 } |
| 858 | 858 |
| 859 int SkCanvas::save() { | |
| 860 this->willSave(kMatrixClip_SaveFlag); | |
| 861 return this->internalSave(kMatrixClip_SaveFlag); | |
| 862 } | |
| 863 | |
| 859 int SkCanvas::save(SaveFlags flags) { | 864 int SkCanvas::save(SaveFlags flags) { |
| 860 this->willSave(flags); | 865 this->willSave(flags); |
| 861 // call shared impl | 866 // call shared impl |
| 862 return this->internalSave(flags); | 867 return this->internalSave(flags); |
| 863 } | 868 } |
| 864 | 869 |
| 865 static bool bounds_affects_clip(SkCanvas::SaveFlags flags) { | 870 static bool bounds_affects_clip(SkCanvas::SaveFlags flags) { |
| 866 #ifdef SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG | 871 #ifdef SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG |
| 867 return (flags & SkCanvas::kClipToLayer_SaveFlag) != 0; | 872 return (flags & SkCanvas::kClipToLayer_SaveFlag) != 0; |
| 868 #else | 873 #else |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 913 } | 918 } |
| 914 return true; | 919 return true; |
| 915 } | 920 } |
| 916 | 921 |
| 917 SkCanvas::SaveLayerStrategy SkCanvas::willSaveLayer(const SkRect*, const SkPaint *, SaveFlags) { | 922 SkCanvas::SaveLayerStrategy SkCanvas::willSaveLayer(const SkRect*, const SkPaint *, SaveFlags) { |
| 918 | 923 |
| 919 // Do nothing. Subclasses may do something. | 924 // Do nothing. Subclasses may do something. |
| 920 return kFullLayer_SaveLayerStrategy; | 925 return kFullLayer_SaveLayerStrategy; |
| 921 } | 926 } |
| 922 | 927 |
| 928 int SkCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint) { | |
| 929 // Overriding classes may return false to signal that we don't need to creat e a layer. | |
|
mtklein
2014/04/23 17:43:12
...return kNoLayer_SaveLayerStrategy...?
Or just
f(malita)
2014/04/24 20:39:23
Done.
| |
| 930 SaveLayerStrategy strategy = this->willSaveLayer(bounds, paint, kARGB_ClipLa yer_SaveFlag); | |
| 931 return this->internalSaveLayer(bounds, paint, kARGB_ClipLayer_SaveFlag, fals e, strategy); | |
| 932 } | |
| 933 | |
| 923 int SkCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint, | 934 int SkCanvas::saveLayer(const SkRect* bounds, const SkPaint* paint, |
| 924 SaveFlags flags) { | 935 SaveFlags flags) { |
| 925 // Overriding classes may return false to signal that we don't need to creat e a layer. | 936 // Overriding classes may return false to signal that we don't need to creat e a layer. |
| 926 SaveLayerStrategy strategy = this->willSaveLayer(bounds, paint, flags); | 937 SaveLayerStrategy strategy = this->willSaveLayer(bounds, paint, flags); |
| 927 return this->internalSaveLayer(bounds, paint, flags, false, strategy); | 938 return this->internalSaveLayer(bounds, paint, flags, false, strategy); |
| 928 } | 939 } |
| 929 | 940 |
| 930 static SkBaseDevice* create_compatible_device(SkCanvas* canvas, | 941 static SkBaseDevice* create_compatible_device(SkCanvas* canvas, |
| 931 const SkImageInfo& info) { | 942 const SkImageInfo& info) { |
| 932 SkBaseDevice* device = canvas->getDevice(); | 943 SkBaseDevice* device = canvas->getDevice(); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 990 device->unref(); | 1001 device->unref(); |
| 991 | 1002 |
| 992 layer->fNext = fMCRec->fTopLayer; | 1003 layer->fNext = fMCRec->fTopLayer; |
| 993 fMCRec->fLayer = layer; | 1004 fMCRec->fLayer = layer; |
| 994 fMCRec->fTopLayer = layer; // this field is NOT an owner of layer | 1005 fMCRec->fTopLayer = layer; // this field is NOT an owner of layer |
| 995 | 1006 |
| 996 fSaveLayerCount += 1; | 1007 fSaveLayerCount += 1; |
| 997 return count; | 1008 return count; |
| 998 } | 1009 } |
| 999 | 1010 |
| 1011 int SkCanvas::saveLayerAlpha(const SkRect* bounds, U8CPU alpha) { | |
| 1012 return this->saveLayerAlpha(bounds, alpha, kARGB_ClipLayer_SaveFlag); | |
| 1013 } | |
| 1014 | |
| 1000 int SkCanvas::saveLayerAlpha(const SkRect* bounds, U8CPU alpha, | 1015 int SkCanvas::saveLayerAlpha(const SkRect* bounds, U8CPU alpha, |
| 1001 SaveFlags flags) { | 1016 SaveFlags flags) { |
| 1002 if (0xFF == alpha) { | 1017 if (0xFF == alpha) { |
| 1003 return this->saveLayer(bounds, NULL, flags); | 1018 return this->saveLayer(bounds, NULL, flags); |
| 1004 } else { | 1019 } else { |
| 1005 SkPaint tmpPaint; | 1020 SkPaint tmpPaint; |
| 1006 tmpPaint.setAlpha(alpha); | 1021 tmpPaint.setAlpha(alpha); |
| 1007 return this->saveLayer(bounds, &tmpPaint, flags); | 1022 return this->saveLayer(bounds, &tmpPaint, flags); |
| 1008 } | 1023 } |
| 1009 } | 1024 } |
| (...skipping 1657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2667 if (!supported_for_raster_canvas(info)) { | 2682 if (!supported_for_raster_canvas(info)) { |
| 2668 return NULL; | 2683 return NULL; |
| 2669 } | 2684 } |
| 2670 | 2685 |
| 2671 SkBitmap bitmap; | 2686 SkBitmap bitmap; |
| 2672 if (!bitmap.installPixels(info, pixels, rowBytes)) { | 2687 if (!bitmap.installPixels(info, pixels, rowBytes)) { |
| 2673 return NULL; | 2688 return NULL; |
| 2674 } | 2689 } |
| 2675 return SkNEW_ARGS(SkCanvas, (bitmap)); | 2690 return SkNEW_ARGS(SkCanvas, (bitmap)); |
| 2676 } | 2691 } |
| OLD | NEW |