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

Side by Side Diff: third_party/WebKit/Source/platform/graphics/RecordingImageBufferSurface.h

Issue 2080623002: Revert "Remove OwnPtr from Blink." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef RecordingImageBufferSurface_h 5 #ifndef RecordingImageBufferSurface_h
6 #define RecordingImageBufferSurface_h 6 #define RecordingImageBufferSurface_h
7 7
8 #include "platform/graphics/GraphicsContext.h" 8 #include "platform/graphics/GraphicsContext.h"
9 #include "platform/graphics/ImageBufferSurface.h" 9 #include "platform/graphics/ImageBufferSurface.h"
10 #include "public/platform/WebThread.h" 10 #include "public/platform/WebThread.h"
11 #include "wtf/Allocator.h" 11 #include "wtf/Allocator.h"
12 #include "wtf/Noncopyable.h" 12 #include "wtf/Noncopyable.h"
13 #include "wtf/OwnPtr.h"
13 #include "wtf/RefPtr.h" 14 #include "wtf/RefPtr.h"
14 #include <memory>
15 15
16 class SkCanvas; 16 class SkCanvas;
17 class SkPicture; 17 class SkPicture;
18 class SkPictureRecorder; 18 class SkPictureRecorder;
19 19
20 namespace blink { 20 namespace blink {
21 21
22 class ImageBuffer; 22 class ImageBuffer;
23 class RecordingImageBufferSurfaceTest; 23 class RecordingImageBufferSurfaceTest;
24 24
25 class RecordingImageBufferFallbackSurfaceFactory { 25 class RecordingImageBufferFallbackSurfaceFactory {
26 USING_FAST_MALLOC(RecordingImageBufferFallbackSurfaceFactory); 26 USING_FAST_MALLOC(RecordingImageBufferFallbackSurfaceFactory);
27 WTF_MAKE_NONCOPYABLE(RecordingImageBufferFallbackSurfaceFactory); 27 WTF_MAKE_NONCOPYABLE(RecordingImageBufferFallbackSurfaceFactory);
28 public: 28 public:
29 virtual std::unique_ptr<ImageBufferSurface> createSurface(const IntSize&, Op acityMode) = 0; 29 virtual PassOwnPtr<ImageBufferSurface> createSurface(const IntSize&, Opacity Mode) = 0;
30 virtual ~RecordingImageBufferFallbackSurfaceFactory() { } 30 virtual ~RecordingImageBufferFallbackSurfaceFactory() { }
31 protected: 31 protected:
32 RecordingImageBufferFallbackSurfaceFactory() { } 32 RecordingImageBufferFallbackSurfaceFactory() { }
33 }; 33 };
34 34
35 class PLATFORM_EXPORT RecordingImageBufferSurface : public ImageBufferSurface { 35 class PLATFORM_EXPORT RecordingImageBufferSurface : public ImageBufferSurface {
36 WTF_MAKE_NONCOPYABLE(RecordingImageBufferSurface); USING_FAST_MALLOC(Recordi ngImageBufferSurface); 36 WTF_MAKE_NONCOPYABLE(RecordingImageBufferSurface); USING_FAST_MALLOC(Recordi ngImageBufferSurface);
37 public: 37 public:
38 // If the fallbackFactory is null the buffer surface should only be used 38 // If the fallbackFactory is null the buffer surface should only be used
39 // for one frame and should not be used for any operations which need a 39 // for one frame and should not be used for any operations which need a
40 // raster surface, (i.e. writePixels). 40 // raster surface, (i.e. writePixels).
41 // Only #getPicture should be used to access the resulting frame. 41 // Only #getPicture should be used to access the resulting frame.
42 RecordingImageBufferSurface(const IntSize&, std::unique_ptr<RecordingImageBu fferFallbackSurfaceFactory> fallbackFactory = nullptr, OpacityMode = NonOpaque); 42 RecordingImageBufferSurface(const IntSize&, PassOwnPtr<RecordingImageBufferF allbackSurfaceFactory> fallbackFactory = nullptr, OpacityMode = NonOpaque);
43 ~RecordingImageBufferSurface() override; 43 ~RecordingImageBufferSurface() override;
44 44
45 // Implementation of ImageBufferSurface interfaces 45 // Implementation of ImageBufferSurface interfaces
46 SkCanvas* canvas() override; 46 SkCanvas* canvas() override;
47 void disableDeferral(DisableDeferralReason) override; 47 void disableDeferral(DisableDeferralReason) override;
48 PassRefPtr<SkPicture> getPicture() override; 48 PassRefPtr<SkPicture> getPicture() override;
49 void flush(FlushReason) override; 49 void flush(FlushReason) override;
50 void didDraw(const FloatRect&) override; 50 void didDraw(const FloatRect&) override;
51 bool isValid() const override { return true; } 51 bool isValid() const override { return true; }
52 bool isRecording() const override { return !m_fallbackSurface; } 52 bool isRecording() const override { return !m_fallbackSurface; }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 FallbackReasonSubPixelTextAntiAliasingSupport = 18, 87 FallbackReasonSubPixelTextAntiAliasingSupport = 18,
88 FallbackReasonCount, 88 FallbackReasonCount,
89 }; 89 };
90 private: 90 private:
91 friend class RecordingImageBufferSurfaceTest; // for unit testing 91 friend class RecordingImageBufferSurfaceTest; // for unit testing
92 void fallBackToRasterCanvas(FallbackReason); 92 void fallBackToRasterCanvas(FallbackReason);
93 void initializeCurrentFrame(); 93 void initializeCurrentFrame();
94 bool finalizeFrameInternal(FallbackReason*); 94 bool finalizeFrameInternal(FallbackReason*);
95 int approximateOpCount(); 95 int approximateOpCount();
96 96
97 std::unique_ptr<SkPictureRecorder> m_currentFrame; 97 OwnPtr<SkPictureRecorder> m_currentFrame;
98 RefPtr<SkPicture> m_previousFrame; 98 RefPtr<SkPicture> m_previousFrame;
99 std::unique_ptr<ImageBufferSurface> m_fallbackSurface; 99 OwnPtr<ImageBufferSurface> m_fallbackSurface;
100 ImageBuffer* m_imageBuffer; 100 ImageBuffer* m_imageBuffer;
101 int m_initialSaveCount; 101 int m_initialSaveCount;
102 int m_currentFramePixelCount; 102 int m_currentFramePixelCount;
103 int m_previousFramePixelCount; 103 int m_previousFramePixelCount;
104 bool m_frameWasCleared; 104 bool m_frameWasCleared;
105 bool m_didRecordDrawCommandsInCurrentFrame; 105 bool m_didRecordDrawCommandsInCurrentFrame;
106 bool m_currentFrameHasExpensiveOp; 106 bool m_currentFrameHasExpensiveOp;
107 bool m_previousFrameHasExpensiveOp; 107 bool m_previousFrameHasExpensiveOp;
108 std::unique_ptr<RecordingImageBufferFallbackSurfaceFactory> m_fallbackFactor y; 108 OwnPtr<RecordingImageBufferFallbackSurfaceFactory> m_fallbackFactory;
109 }; 109 };
110 110
111 } // namespace blink 111 } // namespace blink
112 112
113 #endif 113 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698