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

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

Issue 17335008: remove dst/rendertarget support for kARGB_4444_Config (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 7 years, 6 months 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
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"
(...skipping 12 matching lines...) Expand all
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->getConfig()) {
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 case SkBitmap::kARGB_4444_Config:
34 if (fAlpha == 255 && fDevice->isOpaque()) 33 if (fAlpha == 255 && fDevice->isOpaque())
35 flags |= kOpaqueAlpha_Flag; 34 flags |= kOpaqueAlpha_Flag;
36 break; 35 break;
37 default: 36 default:
38 break; 37 break;
39 } 38 }
40 return flags; 39 return flags;
41 } 40 }
42 41
43 void SkTransparentShader::shadeSpan(int x, int y, SkPMColor span[], int count) { 42 void SkTransparentShader::shadeSpan(int x, int y, SkPMColor span[], int count) {
(...skipping 28 matching lines...) Expand all
72 unsigned b = SkPacked16ToB32(c); 71 unsigned b = SkPacked16ToB32(c);
73 72
74 span[i] = SkPackARGB32( alpha, 73 span[i] = SkPackARGB32( alpha,
75 SkAlphaMul(r, scale), 74 SkAlphaMul(r, scale),
76 SkAlphaMul(g, scale), 75 SkAlphaMul(g, scale),
77 SkAlphaMul(b, scale)); 76 SkAlphaMul(b, scale));
78 } 77 }
79 } 78 }
80 break; 79 break;
81 } 80 }
82 case SkBitmap::kARGB_4444_Config: {
83 const uint16_t* src = fDevice->getAddr16(x, y);
84 if (scale == 256) {
85 for (int i = count - 1; i >= 0; --i) {
86 span[i] = SkPixel4444ToPixel32(src[i]);
87 }
88 } else {
89 unsigned scale16 = scale >> 4;
90 for (int i = count - 1; i >= 0; --i) {
91 uint32_t c = SkExpand_4444(src[i]) * scale16;
92 span[i] = SkCompact_8888(c);
93 }
94 }
95 break;
96 }
97 case SkBitmap::kIndex8_Config: 81 case SkBitmap::kIndex8_Config:
98 SkDEBUGFAIL("index8 not supported as a destination device"); 82 SkDEBUGFAIL("index8 not supported as a destination device");
99 break; 83 break;
100 case SkBitmap::kA8_Config: { 84 case SkBitmap::kA8_Config: {
101 const uint8_t* src = fDevice->getAddr8(x, y); 85 const uint8_t* src = fDevice->getAddr8(x, y);
102 if (scale == 256) { 86 if (scale == 256) {
103 for (int i = count - 1; i >= 0; --i) { 87 for (int i = count - 1; i >= 0; --i) {
104 span[i] = SkPackARGB32(src[i], 0, 0, 0); 88 span[i] = SkPackARGB32(src[i], 0, 0, 0);
105 } 89 }
106 } else { 90 } else {
(...skipping 22 matching lines...) Expand all
129 113
130 #ifdef SK_DEVELOPER 114 #ifdef SK_DEVELOPER
131 void SkTransparentShader::toString(SkString* str) const { 115 void SkTransparentShader::toString(SkString* str) const {
132 str->append("SkTransparentShader: ("); 116 str->append("SkTransparentShader: (");
133 117
134 this->INHERITED::toString(str); 118 this->INHERITED::toString(str);
135 119
136 str->append(")"); 120 str->append(")");
137 } 121 }
138 #endif 122 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698