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

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLCanvasElement.h

Issue 1467103003: Basic use implementation for MediaStream from Canvas: captureStream() (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added new interface to LayoutTests. Created 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2006, 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2006, 2009, 2010 Apple Inc. All rights reserved.
3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 18 matching lines...) Expand all
29 #define HTMLCanvasElement_h 29 #define HTMLCanvasElement_h
30 30
31 #include "bindings/core/v8/ScriptValue.h" 31 #include "bindings/core/v8/ScriptValue.h"
32 #include "bindings/core/v8/UnionTypesCore.h" 32 #include "bindings/core/v8/UnionTypesCore.h"
33 #include "core/CoreExport.h" 33 #include "core/CoreExport.h"
34 #include "core/dom/DOMTypedArray.h" 34 #include "core/dom/DOMTypedArray.h"
35 #include "core/dom/Document.h" 35 #include "core/dom/Document.h"
36 #include "core/dom/DocumentVisibilityObserver.h" 36 #include "core/dom/DocumentVisibilityObserver.h"
37 #include "core/fileapi/FileCallback.h" 37 #include "core/fileapi/FileCallback.h"
38 #include "core/html/HTMLElement.h" 38 #include "core/html/HTMLElement.h"
39 #include "core/html/canvas/CanvasDrawListener.h"
39 #include "core/html/canvas/CanvasImageSource.h" 40 #include "core/html/canvas/CanvasImageSource.h"
40 #include "core/imagebitmap/ImageBitmapSource.h" 41 #include "core/imagebitmap/ImageBitmapSource.h"
41 #include "platform/geometry/FloatRect.h" 42 #include "platform/geometry/FloatRect.h"
42 #include "platform/geometry/IntSize.h" 43 #include "platform/geometry/IntSize.h"
43 #include "platform/graphics/GraphicsTypes.h" 44 #include "platform/graphics/GraphicsTypes.h"
44 #include "platform/graphics/GraphicsTypes3D.h" 45 #include "platform/graphics/GraphicsTypes3D.h"
45 #include "platform/graphics/ImageBufferClient.h" 46 #include "platform/graphics/ImageBufferClient.h"
46 #include "platform/heap/Handle.h" 47 #include "platform/heap/Handle.h"
47 48
48 #define CanvasDefaultInterpolationQuality InterpolationLow 49 #define CanvasDefaultInterpolationQuality InterpolationLow
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 96
96 bool isPaintable() const; 97 bool isPaintable() const;
97 98
98 static String toEncodingMimeType(const String& mimeType); 99 static String toEncodingMimeType(const String& mimeType);
99 String toDataURL(const String& mimeType, const ScriptValue& qualityArgument, ExceptionState&) const; 100 String toDataURL(const String& mimeType, const ScriptValue& qualityArgument, ExceptionState&) const;
100 String toDataURL(const String& mimeType, ExceptionState& exceptionState) con st { return toDataURL(mimeType, ScriptValue(), exceptionState); } 101 String toDataURL(const String& mimeType, ExceptionState& exceptionState) con st { return toDataURL(mimeType, ScriptValue(), exceptionState); }
101 102
102 void toBlob(FileCallback*, const String& mimeType, const ScriptValue& qualit yArgument, ExceptionState&); 103 void toBlob(FileCallback*, const String& mimeType, const ScriptValue& qualit yArgument, ExceptionState&);
103 void toBlob(FileCallback* callback, const String& mimeType, ExceptionState& exceptionState) { return toBlob(callback, mimeType, ScriptValue(), exceptionStat e); } 104 void toBlob(FileCallback* callback, const String& mimeType, ExceptionState& exceptionState) { return toBlob(callback, mimeType, ScriptValue(), exceptionStat e); }
104 105
106 // Used for canvas capture.
107 void addListener(CanvasDrawListener*);
108 void removeListener(CanvasDrawListener*);
109
105 // Used for rendering 110 // Used for rendering
106 void didDraw(const FloatRect&); 111 void didDraw(const FloatRect&);
107 112
108 void paint(GraphicsContext*, const LayoutRect&); 113 void paint(GraphicsContext*, const LayoutRect&);
109 114
110 SkCanvas* drawingCanvas() const; 115 SkCanvas* drawingCanvas() const;
111 void disableDeferral() const; 116 void disableDeferral() const;
112 SkCanvas* existingDrawingCanvas() const; 117 SkCanvas* existingDrawingCanvas() const;
113 118
114 void setRenderingContext(PassOwnPtrWillBeRawPtr<CanvasRenderingContext>); 119 void setRenderingContext(PassOwnPtrWillBeRawPtr<CanvasRenderingContext>);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 196
192 PassOwnPtr<ImageBufferSurface> createImageBufferSurface(const IntSize& devic eSize, int* msaaSampleCount); 197 PassOwnPtr<ImageBufferSurface> createImageBufferSurface(const IntSize& devic eSize, int* msaaSampleCount);
193 void createImageBuffer(); 198 void createImageBuffer();
194 void createImageBufferInternal(PassOwnPtr<ImageBufferSurface> externalSurfac e); 199 void createImageBufferInternal(PassOwnPtr<ImageBufferSurface> externalSurfac e);
195 bool shouldUseDisplayList(const IntSize& deviceSize); 200 bool shouldUseDisplayList(const IntSize& deviceSize);
196 201
197 void setSurfaceSize(const IntSize&); 202 void setSurfaceSize(const IntSize&);
198 203
199 bool paintsIntoCanvasBuffer() const; 204 bool paintsIntoCanvasBuffer() const;
200 205
206 void notifyListenersCanvasChanged();
207
201 ImageData* toImageData(SourceDrawingBuffer) const; 208 ImageData* toImageData(SourceDrawingBuffer) const;
202 String toDataURLInternal(const String& mimeType, const double& quality, Sour ceDrawingBuffer) const; 209 String toDataURLInternal(const String& mimeType, const double& quality, Sour ceDrawingBuffer) const;
203 210
211 PersistentHeapHashSetWillBeHeapHashSet<WeakMember<CanvasDrawListener>> m_lis teners;
212
204 IntSize m_size; 213 IntSize m_size;
205 214
206 OwnPtrWillBeMember<CanvasRenderingContext> m_context; 215 OwnPtrWillBeMember<CanvasRenderingContext> m_context;
207 216
208 bool m_ignoreReset; 217 bool m_ignoreReset;
209 FloatRect m_dirtyRect; 218 FloatRect m_dirtyRect;
210 219
211 mutable intptr_t m_externallyAllocatedMemory; 220 mutable intptr_t m_externallyAllocatedMemory;
212 221
213 bool m_originClean; 222 bool m_originClean;
214 223
215 // It prevents HTMLCanvasElement::buffer() from continuously re-attempting t o allocate an imageBuffer 224 // It prevents HTMLCanvasElement::buffer() from continuously re-attempting t o allocate an imageBuffer
216 // after the first attempt failed. 225 // after the first attempt failed.
217 mutable bool m_didFailToCreateImageBuffer; 226 mutable bool m_didFailToCreateImageBuffer;
218 bool m_imageBufferIsClear; 227 bool m_imageBufferIsClear;
219 OwnPtr<ImageBuffer> m_imageBuffer; 228 OwnPtr<ImageBuffer> m_imageBuffer;
220 229
221 mutable RefPtr<Image> m_copiedImage; // FIXME: This is temporary for platfor ms that have to copy the image buffer to render (and for CSSCanvasValue). 230 mutable RefPtr<Image> m_copiedImage; // FIXME: This is temporary for platfor ms that have to copy the image buffer to render (and for CSSCanvasValue).
222 }; 231 };
223 232
224 } // namespace blink 233 } // namespace blink
225 234
226 #endif // HTMLCanvasElement_h 235 #endif // HTMLCanvasElement_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/core.gypi ('k') | third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698