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

Side by Side Diff: third_party/WebKit/Source/core/imagebitmap/ImageBitmapFactories.cpp

Issue 1609763002: Implement ImageBitmap options premultiplyAlpha (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 11 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) 2013, Google Inc. All rights reserved. 2 * Copyright (c) 2013, 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 are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * 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 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 return value.getAsImageData(); 61 return value.getAsImageData();
62 if (value.isImageBitmap()) 62 if (value.isImageBitmap())
63 return value.getAsImageBitmap().get(); 63 return value.getAsImageBitmap().get();
64 ASSERT_NOT_REACHED(); 64 ASSERT_NOT_REACHED();
65 return nullptr; 65 return nullptr;
66 } 66 }
67 67
68 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, const ImageBitmapSourceUnion& bitmapSource, ExceptionS tate& exceptionState) 68 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, const ImageBitmapSourceUnion& bitmapSource, ExceptionS tate& exceptionState)
69 { 69 {
70 ImageBitmapOptions options; 70 ImageBitmapOptions options;
71 options.setPremultiplyAlpha(true);
71 return createImageBitmap(scriptState, eventTarget, bitmapSource, options, ex ceptionState); 72 return createImageBitmap(scriptState, eventTarget, bitmapSource, options, ex ceptionState);
72 } 73 }
73 74
74 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, const ImageBitmapSourceUnion& bitmapSource, const Imag eBitmapOptions& options, ExceptionState& exceptionState) 75 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, const ImageBitmapSourceUnion& bitmapSource, const Imag eBitmapOptions& options, ExceptionState& exceptionState)
75 { 76 {
76 ImageBitmapSource* bitmapSourceInternal = toImageBitmapSourceInternal(bitmap Source); 77 ImageBitmapSource* bitmapSourceInternal = toImageBitmapSourceInternal(bitmap Source);
77 if (bitmapSourceInternal->isBlob()) { 78 if (bitmapSourceInternal->isBlob()) {
78 Blob* blob = static_cast<Blob*>(bitmapSourceInternal); 79 Blob* blob = static_cast<Blob*>(bitmapSourceInternal);
79 ImageBitmapLoader* loader = ImageBitmapFactories::ImageBitmapLoader::cre ate(from(eventTarget), IntRect(), options, scriptState); 80 ImageBitmapLoader* loader = ImageBitmapFactories::ImageBitmapLoader::cre ate(from(eventTarget), IntRect(), options, scriptState);
80 ScriptPromise promise = loader->promise(); 81 ScriptPromise promise = loader->promise();
81 from(eventTarget).addLoader(loader); 82 from(eventTarget).addLoader(loader);
82 loader->loadBlobAsync(eventTarget.executionContext(), blob); 83 loader->loadBlobAsync(eventTarget.executionContext(), blob);
83 return promise; 84 return promise;
84 } 85 }
85 IntSize srcSize = bitmapSourceInternal->bitmapSourceSize(); 86 IntSize srcSize = bitmapSourceInternal->bitmapSourceSize();
86 return createImageBitmap(scriptState, eventTarget, bitmapSourceInternal, 0, 0, srcSize.width(), srcSize.height(), options, exceptionState); 87 return createImageBitmap(scriptState, eventTarget, bitmapSourceInternal, 0, 0, srcSize.width(), srcSize.height(), options, exceptionState);
87 } 88 }
88 89
89 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, const ImageBitmapSourceUnion& bitmapSource, int sx, in t sy, int sw, int sh, ExceptionState& exceptionState) 90 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, const ImageBitmapSourceUnion& bitmapSource, int sx, in t sy, int sw, int sh, ExceptionState& exceptionState)
90 { 91 {
91 ImageBitmapOptions options; 92 ImageBitmapOptions options;
93 options.setPremultiplyAlpha(true);
92 return createImageBitmap(scriptState, eventTarget, bitmapSource, sx, sy, sw, sh, options, exceptionState); 94 return createImageBitmap(scriptState, eventTarget, bitmapSource, sx, sy, sw, sh, options, exceptionState);
93 } 95 }
94 96
95 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, const ImageBitmapSourceUnion& bitmapSource, int sx, in t sy, int sw, int sh, const ImageBitmapOptions& options, ExceptionState& excepti onState) 97 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, const ImageBitmapSourceUnion& bitmapSource, int sx, in t sy, int sw, int sh, const ImageBitmapOptions& options, ExceptionState& excepti onState)
96 { 98 {
97 ImageBitmapSource* bitmapSourceInternal = toImageBitmapSourceInternal(bitmap Source); 99 ImageBitmapSource* bitmapSourceInternal = toImageBitmapSourceInternal(bitmap Source);
98 return createImageBitmap(scriptState, eventTarget, bitmapSourceInternal, sx, sy, sw, sh, options, exceptionState); 100 return createImageBitmap(scriptState, eventTarget, bitmapSourceInternal, sx, sy, sw, sh, options, exceptionState);
99 } 101 }
100 102
101 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, ImageBitmapSource* bitmapSource, int sx, int sy, int s w, int sh, const ImageBitmapOptions& options, ExceptionState& exceptionState) 103 ScriptPromise ImageBitmapFactories::createImageBitmap(ScriptState* scriptState, EventTarget& eventTarget, ImageBitmapSource* bitmapSource, int sx, int sy, int s w, int sh, const ImageBitmapOptions& options, ExceptionState& exceptionState)
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 { 152 {
151 ASSERT(m_pendingLoaders.contains(loader)); 153 ASSERT(m_pendingLoaders.contains(loader));
152 m_pendingLoaders.remove(loader); 154 m_pendingLoaders.remove(loader);
153 } 155 }
154 156
155 ImageBitmapFactories::ImageBitmapLoader::ImageBitmapLoader(ImageBitmapFactories& factory, const IntRect& cropRect, ScriptState* scriptState, const ImageBitmapOp tions& options) 157 ImageBitmapFactories::ImageBitmapLoader::ImageBitmapLoader(ImageBitmapFactories& factory, const IntRect& cropRect, ScriptState* scriptState, const ImageBitmapOp tions& options)
156 : m_loader(FileReaderLoader::ReadAsArrayBuffer, this) 158 : m_loader(FileReaderLoader::ReadAsArrayBuffer, this)
157 , m_factory(&factory) 159 , m_factory(&factory)
158 , m_resolver(ScriptPromiseResolver::create(scriptState)) 160 , m_resolver(ScriptPromiseResolver::create(scriptState))
159 , m_cropRect(cropRect) 161 , m_cropRect(cropRect)
160 , m_options(options)
161 { 162 {
163 m_options.setPremultiplyAlpha(true);
162 } 164 }
163 165
164 void ImageBitmapFactories::ImageBitmapLoader::loadBlobAsync(ExecutionContext* co ntext, Blob* blob) 166 void ImageBitmapFactories::ImageBitmapLoader::loadBlobAsync(ExecutionContext* co ntext, Blob* blob)
165 { 167 {
166 m_loader.start(context, blob->blobDataHandle()); 168 m_loader.start(context, blob->blobDataHandle());
167 } 169 }
168 170
169 DEFINE_TRACE(ImageBitmapFactories) 171 DEFINE_TRACE(ImageBitmapFactories)
170 { 172 {
171 visitor->trace(m_pendingLoaders); 173 visitor->trace(m_pendingLoaders);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 rejectPromise(); 216 rejectPromise();
215 } 217 }
216 218
217 DEFINE_TRACE(ImageBitmapFactories::ImageBitmapLoader) 219 DEFINE_TRACE(ImageBitmapFactories::ImageBitmapLoader)
218 { 220 {
219 visitor->trace(m_factory); 221 visitor->trace(m_factory);
220 visitor->trace(m_resolver); 222 visitor->trace(m_resolver);
221 } 223 }
222 224
223 } // namespace blink 225 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698