Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(56)

Side by Side Diff: src/effects/SkTransparentShader.cpp

Issue 51033004: add SK_ATTR_DEPRECATED -- will need to disable for chrome, since it triggers a warning (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/effects/SkTestImageFilters.cpp ('k') | src/gpu/GrClipMaskManager.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "SkTransparentShader.h" 10 #include "SkTransparentShader.h"
11 #include "SkColorPriv.h" 11 #include "SkColorPriv.h"
12 #include "SkString.h" 12 #include "SkString.h"
13 13
14 bool SkTransparentShader::setContext(const SkBitmap& device, 14 bool SkTransparentShader::setContext(const SkBitmap& device,
15 const SkPaint& paint, 15 const SkPaint& paint,
16 const SkMatrix& matrix) { 16 const SkMatrix& matrix) {
17 fDevice = &device; 17 fDevice = &device;
18 fAlpha = paint.getAlpha(); 18 fAlpha = paint.getAlpha();
19 19
20 return this->INHERITED::setContext(device, paint, matrix); 20 return this->INHERITED::setContext(device, paint, matrix);
21 } 21 }
22 22
23 uint32_t SkTransparentShader::getFlags() { 23 uint32_t SkTransparentShader::getFlags() {
24 uint32_t flags = this->INHERITED::getFlags(); 24 uint32_t flags = this->INHERITED::getFlags();
25 25
26 switch (fDevice->getConfig()) { 26 switch (fDevice->config()) {
27 case SkBitmap::kRGB_565_Config: 27 case SkBitmap::kRGB_565_Config:
28 flags |= kHasSpan16_Flag; 28 flags |= kHasSpan16_Flag;
29 if (fAlpha == 255) 29 if (fAlpha == 255)
30 flags |= kOpaqueAlpha_Flag; 30 flags |= kOpaqueAlpha_Flag;
31 break; 31 break;
32 case SkBitmap::kARGB_8888_Config: 32 case SkBitmap::kARGB_8888_Config:
33 if (fAlpha == 255 && fDevice->isOpaque()) 33 if (fAlpha == 255 && fDevice->isOpaque())
34 flags |= kOpaqueAlpha_Flag; 34 flags |= kOpaqueAlpha_Flag;
35 break; 35 break;
36 default: 36 default:
37 break; 37 break;
38 } 38 }
39 return flags; 39 return flags;
40 } 40 }
41 41
42 void SkTransparentShader::shadeSpan(int x, int y, SkPMColor span[], int count) { 42 void SkTransparentShader::shadeSpan(int x, int y, SkPMColor span[], int count) {
43 unsigned scale = SkAlpha255To256(fAlpha); 43 unsigned scale = SkAlpha255To256(fAlpha);
44 44
45 switch (fDevice->getConfig()) { 45 switch (fDevice->config()) {
46 case SkBitmap::kARGB_8888_Config: 46 case SkBitmap::kARGB_8888_Config:
47 if (scale == 256) { 47 if (scale == 256) {
48 SkPMColor* src = fDevice->getAddr32(x, y); 48 SkPMColor* src = fDevice->getAddr32(x, y);
49 if (src != span) { 49 if (src != span) {
50 memcpy(span, src, count * sizeof(SkPMColor)); 50 memcpy(span, src, count * sizeof(SkPMColor));
51 } 51 }
52 } else { 52 } else {
53 const SkPMColor* src = fDevice->getAddr32(x, y); 53 const SkPMColor* src = fDevice->getAddr32(x, y);
54 for (int i = count - 1; i >= 0; --i) { 54 for (int i = count - 1; i >= 0; --i) {
55 span[i] = SkAlphaMulQ(src[i], scale); 55 span[i] = SkAlphaMulQ(src[i], scale);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 } 96 }
97 case SkBitmap::kA1_Config: 97 case SkBitmap::kA1_Config:
98 SkDEBUGFAIL("kA1_Config umimplemented at this time"); 98 SkDEBUGFAIL("kA1_Config umimplemented at this time");
99 break; 99 break;
100 default: // to avoid warnings 100 default: // to avoid warnings
101 break; 101 break;
102 } 102 }
103 } 103 }
104 104
105 void SkTransparentShader::shadeSpan16(int x, int y, uint16_t span[], int count) { 105 void SkTransparentShader::shadeSpan16(int x, int y, uint16_t span[], int count) {
106 SkASSERT(fDevice->getConfig() == SkBitmap::kRGB_565_Config); 106 SkASSERT(fDevice->config() == SkBitmap::kRGB_565_Config);
107 107
108 uint16_t* src = fDevice->getAddr16(x, y); 108 uint16_t* src = fDevice->getAddr16(x, y);
109 if (src != span) { 109 if (src != span) {
110 memcpy(span, src, count << 1); 110 memcpy(span, src, count << 1);
111 } 111 }
112 } 112 }
113 113
114 #ifdef SK_DEVELOPER 114 #ifdef SK_DEVELOPER
115 void SkTransparentShader::toString(SkString* str) const { 115 void SkTransparentShader::toString(SkString* str) const {
116 str->append("SkTransparentShader: ("); 116 str->append("SkTransparentShader: (");
117 117
118 this->INHERITED::toString(str); 118 this->INHERITED::toString(str);
119 119
120 str->append(")"); 120 str->append(")");
121 } 121 }
122 #endif 122 #endif
OLDNEW
« no previous file with comments | « src/effects/SkTestImageFilters.cpp ('k') | src/gpu/GrClipMaskManager.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698