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

Side by Side Diff: Source/WebCore/platform/graphics/cg/GraphicsContext3DCG.cpp

Issue 10444013: Merge 117191 - Assertion failure running Mozilla's WebGL performance regression tests (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1132/
Patch Set: Created 8 years, 7 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * Copyright (C) 2010 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
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 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
233 } 233 }
234 SourceDataFormat srcDataFormat = getSourceDataFormat(componentsPerPixel, alp haFormat, bitsPerComponent == 16, bigEndianSource); 234 SourceDataFormat srcDataFormat = getSourceDataFormat(componentsPerPixel, alp haFormat, bitsPerComponent == 16, bigEndianSource);
235 if (srcDataFormat == SourceFormatNumFormats) 235 if (srcDataFormat == SourceFormatNumFormats)
236 return false; 236 return false;
237 237
238 RetainPtr<CFDataRef> pixelData; 238 RetainPtr<CFDataRef> pixelData;
239 pixelData.adoptCF(CGDataProviderCopyData(CGImageGetDataProvider(cgImage))); 239 pixelData.adoptCF(CGDataProviderCopyData(CGImageGetDataProvider(cgImage)));
240 if (!pixelData) 240 if (!pixelData)
241 return false; 241 return false;
242 const UInt8* rgba = CFDataGetBytePtr(pixelData.get()); 242 const UInt8* rgba = CFDataGetBytePtr(pixelData.get());
243 outputVector.resize(width * height * 4); 243
244 unsigned int packedSize;
245 // Output data is tightly packed (alignment == 1).
246 if (computeImageSizeInBytes(format, type, width, height, 1, &packedSize, 0) != GraphicsContext3D::NO_ERROR)
247 return false;
248 outputVector.resize(packedSize);
249
244 unsigned int srcUnpackAlignment = 0; 250 unsigned int srcUnpackAlignment = 0;
245 size_t bytesPerRow = CGImageGetBytesPerRow(cgImage); 251 size_t bytesPerRow = CGImageGetBytesPerRow(cgImage);
246 unsigned int padding = bytesPerRow - bitsPerPixel / 8 * width; 252 unsigned int padding = bytesPerRow - bitsPerPixel / 8 * width;
247 if (padding) { 253 if (padding) {
248 srcUnpackAlignment = padding + 1; 254 srcUnpackAlignment = padding + 1;
249 while (bytesPerRow % srcUnpackAlignment) 255 while (bytesPerRow % srcUnpackAlignment)
250 ++srcUnpackAlignment; 256 ++srcUnpackAlignment;
251 } 257 }
252 bool rt = packPixels(rgba, srcDataFormat, width, height, srcUnpackAlignment, 258 bool rt = packPixels(rgba, srcDataFormat, width, height, srcUnpackAlignment,
253 format, type, neededAlphaOp, outputVector.data()); 259 format, type, neededAlphaOp, outputVector.data());
(...skipping 17 matching lines...) Expand all
271 CGContextSaveGState(context); 277 CGContextSaveGState(context);
272 CGContextSetBlendMode(context, kCGBlendModeCopy); 278 CGContextSetBlendMode(context, kCGBlendModeCopy);
273 CGContextSetInterpolationQuality(context, kCGInterpolationNone); 279 CGContextSetInterpolationQuality(context, kCGInterpolationNone);
274 CGContextDrawImage(context, rect, cgImage.get()); 280 CGContextDrawImage(context, rect, cgImage.get());
275 CGContextRestoreGState(context); 281 CGContextRestoreGState(context);
276 } 282 }
277 283
278 } // namespace WebCore 284 } // namespace WebCore
279 285
280 #endif // ENABLE(WEBGL) 286 #endif // ENABLE(WEBGL)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698