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

Side by Side Diff: Source/platform/graphics/filters/FEComponentTransfer.cpp

Issue 112053007: Compute source/destination rectangles in FEComponentTransfer::applySkia (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Test touched up. Created 7 years 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
« no previous file with comments | « LayoutTests/svg/filters/feComponentTransfer-subregion-expected.svg ('k') | no next file » | 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 * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
4 * Copyright (C) 2005 Eric Seidel <eric@webkit.org> 4 * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * Copyright (C) 2013 Google Inc. All rights reserved. 7 * Copyright (C) 2013 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 return false; 182 return false;
183 183
184 RefPtr<Image> image = in->asImageBuffer()->copyImage(DontCopyBackingStore); 184 RefPtr<Image> image = in->asImageBuffer()->copyImage(DontCopyBackingStore);
185 RefPtr<NativeImageSkia> nativeImage = image->nativeImageForCurrentFrame(); 185 RefPtr<NativeImageSkia> nativeImage = image->nativeImageForCurrentFrame();
186 if (!nativeImage) 186 if (!nativeImage)
187 return false; 187 return false;
188 188
189 unsigned char rValues[256], gValues[256], bValues[256], aValues[256]; 189 unsigned char rValues[256], gValues[256], bValues[256], aValues[256];
190 getValues(rValues, gValues, bValues, aValues); 190 getValues(rValues, gValues, bValues, aValues);
191 191
192 SkRect skSrc = requestedRegionOfInputImageData(in->absolutePaintRect());
193 SkRect skDst = IntRect(IntPoint(), absolutePaintRect().size());
192 SkPaint paint; 194 SkPaint paint;
193 paint.setColorFilter(SkTableColorFilter::CreateARGB(aValues, rValues, gValue s, bValues))->unref(); 195 paint.setColorFilter(SkTableColorFilter::CreateARGB(aValues, rValues, gValue s, bValues))->unref();
194 paint.setXfermodeMode(SkXfermode::kSrc_Mode); 196 paint.setXfermodeMode(SkXfermode::kSrc_Mode);
195 resultImage->context()->drawBitmap(nativeImage->bitmap(), 0, 0, &paint); 197 resultImage->context()->drawBitmapRect(nativeImage->bitmap(), &skSrc, skDst, &paint);
196 198
197 return true; 199 return true;
198 } 200 }
199 201
200 PassRefPtr<SkImageFilter> FEComponentTransfer::createImageFilter(SkiaImageFilter Builder* builder) 202 PassRefPtr<SkImageFilter> FEComponentTransfer::createImageFilter(SkiaImageFilter Builder* builder)
201 { 203 {
202 RefPtr<SkImageFilter> input(builder->build(inputEffect(0), operatingColorSpa ce())); 204 RefPtr<SkImageFilter> input(builder->build(inputEffect(0), operatingColorSpa ce()));
203 205
204 unsigned char rValues[256], gValues[256], bValues[256], aValues[256]; 206 unsigned char rValues[256], gValues[256], bValues[256], aValues[256];
205 getValues(rValues, gValues, bValues, aValues); 207 getValues(rValues, gValues, bValues, aValues);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 ts << "{green: " << m_greenFunc << "}\n"; 274 ts << "{green: " << m_greenFunc << "}\n";
273 writeIndent(ts, indent + 2); 275 writeIndent(ts, indent + 2);
274 ts << "{blue: " << m_blueFunc << "}\n"; 276 ts << "{blue: " << m_blueFunc << "}\n";
275 writeIndent(ts, indent + 2); 277 writeIndent(ts, indent + 2);
276 ts << "{alpha: " << m_alphaFunc << "}]\n"; 278 ts << "{alpha: " << m_alphaFunc << "}]\n";
277 inputEffect(0)->externalRepresentation(ts, indent + 1); 279 inputEffect(0)->externalRepresentation(ts, indent + 1);
278 return ts; 280 return ts;
279 } 281 }
280 282
281 } // namespace WebCore 283 } // namespace WebCore
OLDNEW
« no previous file with comments | « LayoutTests/svg/filters/feComponentTransfer-subregion-expected.svg ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698