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

Side by Side Diff: third_party/WebKit/Source/modules/offscreencanvas2d/OffscreenCanvasRenderingContext2D.h

Issue 2359723003: Implement OffscreenCanvas Accelerated 2D commit() (Closed)
Patch Set: Fix Created 4 years, 2 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 OffscreenCanvasRenderingContext2D_h 5 #ifndef OffscreenCanvasRenderingContext2D_h
6 #define OffscreenCanvasRenderingContext2D_h 6 #define OffscreenCanvasRenderingContext2D_h
7 7
8 #include "core/html/canvas/CanvasContextCreationAttributes.h" 8 #include "core/html/canvas/CanvasContextCreationAttributes.h"
9 #include "core/html/canvas/CanvasRenderingContext.h" 9 #include "core/html/canvas/CanvasRenderingContext.h"
10 #include "core/html/canvas/CanvasRenderingContextFactory.h" 10 #include "core/html/canvas/CanvasRenderingContextFactory.h"
(...skipping 21 matching lines...) Expand all
32 return CanvasRenderingContext::Context2d; 32 return CanvasRenderingContext::Context2d;
33 } 33 }
34 }; 34 };
35 35
36 void commit(ExceptionState&); 36 void commit(ExceptionState&);
37 37
38 // CanvasRenderingContext implementation 38 // CanvasRenderingContext implementation
39 ~OffscreenCanvasRenderingContext2D() override; 39 ~OffscreenCanvasRenderingContext2D() override;
40 ContextType getContextType() const override { return Context2d; } 40 ContextType getContextType() const override { return Context2d; }
41 bool is2d() const override { return true; } 41 bool is2d() const override { return true; }
42 bool isAccelerated() const override;
42 void setOffscreenCanvasGetContextResult(OffscreenRenderingContext&) final; 43 void setOffscreenCanvasGetContextResult(OffscreenRenderingContext&) final;
43 void setIsHidden(bool) final { ASSERT_NOT_REACHED(); } 44 void setIsHidden(bool) final { ASSERT_NOT_REACHED(); }
44 void stop() final { ASSERT_NOT_REACHED(); } 45 void stop() final { ASSERT_NOT_REACHED(); }
45 void setCanvasGetContextResult(RenderingContext&) final {} 46 void setCanvasGetContextResult(RenderingContext&) final {}
46 void clearRect(double x, double y, double width, double height) override { B aseRenderingContext2D::clearRect(x, y, width, height); } 47 void clearRect(double x, double y, double width, double height) override { B aseRenderingContext2D::clearRect(x, y, width, height); }
47 PassRefPtr<Image> getImage(AccelerationHint, SnapshotReason) const final; 48 PassRefPtr<Image> getImage(AccelerationHint, SnapshotReason) const final;
48 49
49 // BaseRenderingContext2D implementation 50 // BaseRenderingContext2D implementation
50 bool originClean() const final; 51 bool originClean() const final;
51 void setOriginTainted() final; 52 void setOriginTainted() final;
(...skipping 27 matching lines...) Expand all
79 80
80 protected: 81 protected:
81 OffscreenCanvasRenderingContext2D(ScriptState*, OffscreenCanvas*, const Canv asContextCreationAttributes& attrs); 82 OffscreenCanvasRenderingContext2D(ScriptState*, OffscreenCanvas*, const Canv asContextCreationAttributes& attrs);
82 DECLARE_VIRTUAL_TRACE(); 83 DECLARE_VIRTUAL_TRACE();
83 84
84 private: 85 private:
85 bool m_needsMatrixClipRestore = false; 86 bool m_needsMatrixClipRestore = false;
86 std::unique_ptr<ImageBuffer> m_imageBuffer; 87 std::unique_ptr<ImageBuffer> m_imageBuffer;
87 88
88 bool isPaintable() const final; 89 bool isPaintable() const final;
90
91 PassRefPtr<StaticBitmapImage> transferToStaticBitmapImage();
xidachen 2016/09/22 19:05:55 Please change this to RefPtr<> instead of PassRefP
xlai (Olivia) 2016/09/22 19:36:18 Done.
89 }; 92 };
90 93
91 DEFINE_TYPE_CASTS(OffscreenCanvasRenderingContext2D, CanvasRenderingContext, con text, 94 DEFINE_TYPE_CASTS(OffscreenCanvasRenderingContext2D, CanvasRenderingContext, con text,
92 context->is2d() && context->getOffscreenCanvas(), 95 context->is2d() && context->getOffscreenCanvas(),
93 context.is2d() && context.getOffscreenCanvas()); 96 context.is2d() && context.getOffscreenCanvas());
94 97
95 } // namespace blink 98 } // namespace blink
96 99
97 #endif // OffscreenCanvasRenderingContext2D_h 100 #endif // OffscreenCanvasRenderingContext2D_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698