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

Side by Side Diff: Source/platform/image-decoders/webp/WEBPImageDecoder.cpp

Issue 400543004: Rename WebCore namespace to blink in Platform (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 5 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 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 67
68 uint8_t blendR = blendChannel(SkGetPackedR32(src), srcA, SkGetPackedR32(dst) , dstFactorA, scale); 68 uint8_t blendR = blendChannel(SkGetPackedR32(src), srcA, SkGetPackedR32(dst) , dstFactorA, scale);
69 uint8_t blendG = blendChannel(SkGetPackedG32(src), srcA, SkGetPackedG32(dst) , dstFactorA, scale); 69 uint8_t blendG = blendChannel(SkGetPackedG32(src), srcA, SkGetPackedG32(dst) , dstFactorA, scale);
70 uint8_t blendB = blendChannel(SkGetPackedB32(src), srcA, SkGetPackedB32(dst) , dstFactorA, scale); 70 uint8_t blendB = blendChannel(SkGetPackedB32(src), srcA, SkGetPackedB32(dst) , dstFactorA, scale);
71 71
72 return SkPackARGB32NoCheck(blendA, blendR, blendG, blendB); 72 return SkPackARGB32NoCheck(blendA, blendR, blendG, blendB);
73 } 73 }
74 74
75 // Returns two point ranges (<left, width> pairs) at row 'canvasY', that belong to 'src' but not 'dst'. 75 // Returns two point ranges (<left, width> pairs) at row 'canvasY', that belong to 'src' but not 'dst'.
76 // A point range is empty if the corresponding width is 0. 76 // A point range is empty if the corresponding width is 0.
77 inline void findBlendRangeAtRow(const WebCore::IntRect& src, const WebCore::IntR ect& dst, int canvasY, int& left1, int& width1, int& left2, int& width2) 77 inline void findBlendRangeAtRow(const blink::IntRect& src, const blink::IntRect& dst, int canvasY, int& left1, int& width1, int& left2, int& width2)
78 { 78 {
79 ASSERT_WITH_SECURITY_IMPLICATION(canvasY >= src.y() && canvasY < src.maxY()) ; 79 ASSERT_WITH_SECURITY_IMPLICATION(canvasY >= src.y() && canvasY < src.maxY()) ;
80 left1 = -1; 80 left1 = -1;
81 width1 = 0; 81 width1 = 0;
82 left2 = -1; 82 left2 = -1;
83 width2 = 0; 83 width2 = 0;
84 84
85 if (canvasY < dst.y() || canvasY >= dst.maxY() || src.x() >= dst.maxX() || s rc.maxX() <= dst.x()) { 85 if (canvasY < dst.y() || canvasY >= dst.maxY() || src.x() >= dst.maxX() || s rc.maxX() <= dst.x()) {
86 left1 = src.x(); 86 left1 = src.x();
87 width1 = src.width(); 87 width1 = src.width();
88 return; 88 return;
89 } 89 }
90 90
91 if (src.x() < dst.x()) { 91 if (src.x() < dst.x()) {
92 left1 = src.x(); 92 left1 = src.x();
93 width1 = dst.x() - src.x(); 93 width1 = dst.x() - src.x();
94 } 94 }
95 95
96 if (src.maxX() > dst.maxX()) { 96 if (src.maxX() > dst.maxX()) {
97 left2 = dst.maxX(); 97 left2 = dst.maxX();
98 width2 = src.maxX() - dst.maxX(); 98 width2 = src.maxX() - dst.maxX();
99 } 99 }
100 } 100 }
101 101
102 void alphaBlendPremultiplied(WebCore::ImageFrame& src, WebCore::ImageFrame& dst, int canvasY, int left, int width) 102 void alphaBlendPremultiplied(blink::ImageFrame& src, blink::ImageFrame& dst, int canvasY, int left, int width)
103 { 103 {
104 for (int x = 0; x < width; ++x) { 104 for (int x = 0; x < width; ++x) {
105 int canvasX = left + x; 105 int canvasX = left + x;
106 WebCore::ImageFrame::PixelData& pixel = *src.getAddr(canvasX, canvasY); 106 blink::ImageFrame::PixelData& pixel = *src.getAddr(canvasX, canvasY);
107 if (SkGetPackedA32(pixel) != 0xff) { 107 if (SkGetPackedA32(pixel) != 0xff) {
108 WebCore::ImageFrame::PixelData prevPixel = *dst.getAddr(canvasX, can vasY); 108 blink::ImageFrame::PixelData prevPixel = *dst.getAddr(canvasX, canva sY);
109 pixel = SkPMSrcOver(pixel, prevPixel); 109 pixel = SkPMSrcOver(pixel, prevPixel);
110 } 110 }
111 } 111 }
112 } 112 }
113 113
114 void alphaBlendNonPremultiplied(WebCore::ImageFrame& src, WebCore::ImageFrame& d st, int canvasY, int left, int width) 114 void alphaBlendNonPremultiplied(blink::ImageFrame& src, blink::ImageFrame& dst, int canvasY, int left, int width)
115 { 115 {
116 for (int x = 0; x < width; ++x) { 116 for (int x = 0; x < width; ++x) {
117 int canvasX = left + x; 117 int canvasX = left + x;
118 WebCore::ImageFrame::PixelData& pixel = *src.getAddr(canvasX, canvasY); 118 blink::ImageFrame::PixelData& pixel = *src.getAddr(canvasX, canvasY);
119 if (SkGetPackedA32(pixel) != 0xff) { 119 if (SkGetPackedA32(pixel) != 0xff) {
120 WebCore::ImageFrame::PixelData prevPixel = *dst.getAddr(canvasX, can vasY); 120 blink::ImageFrame::PixelData prevPixel = *dst.getAddr(canvasX, canva sY);
121 pixel = blendSrcOverDstNonPremultiplied(pixel, prevPixel); 121 pixel = blendSrcOverDstNonPremultiplied(pixel, prevPixel);
122 } 122 }
123 } 123 }
124 } 124 }
125 125
126 namespace WebCore { 126 namespace blink {
127 127
128 WEBPImageDecoder::WEBPImageDecoder(ImageSource::AlphaOption alphaOption, 128 WEBPImageDecoder::WEBPImageDecoder(ImageSource::AlphaOption alphaOption,
129 ImageSource::GammaAndColorProfileOption gammaAndColorProfileOption, 129 ImageSource::GammaAndColorProfileOption gammaAndColorProfileOption,
130 size_t maxDecodedBytes) 130 size_t maxDecodedBytes)
131 : ImageDecoder(alphaOption, gammaAndColorProfileOption, maxDecodedBytes) 131 : ImageDecoder(alphaOption, gammaAndColorProfileOption, maxDecodedBytes)
132 , m_decoder(0) 132 , m_decoder(0)
133 , m_formatFlags(0) 133 , m_formatFlags(0)
134 , m_frameBackgroundHasAlpha(false) 134 , m_frameBackgroundHasAlpha(false)
135 , m_hasColorProfile(false) 135 , m_hasColorProfile(false)
136 #if USE(QCMSLIB) 136 #if USE(QCMSLIB)
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 applyPostProcessing(frameIndex); 603 applyPostProcessing(frameIndex);
604 return false; 604 return false;
605 } 605 }
606 // FALLTHROUGH 606 // FALLTHROUGH
607 default: 607 default:
608 clear(); 608 clear();
609 return setFailed(); 609 return setFailed();
610 } 610 }
611 } 611 }
612 612
613 } // namespace WebCore 613 } // namespace blink
OLDNEW
« no previous file with comments | « Source/platform/image-decoders/webp/WEBPImageDecoder.h ('k') | Source/platform/image-decoders/webp/WEBPImageDecoderTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698