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

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

Issue 2868323003: Canvas2D on WebGL texture (Closed)
Patch Set: Created 3 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 // 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 <memory>
8 #include "core/html/canvas/CanvasContextCreationAttributes.h" 9 #include "core/html/canvas/CanvasContextCreationAttributes.h"
9 #include "core/html/canvas/CanvasRenderingContext.h" 10 #include "core/html/canvas/CanvasRenderingContext.h"
10 #include "core/html/canvas/CanvasRenderingContextFactory.h" 11 #include "core/html/canvas/CanvasRenderingContextFactory.h"
11 #include "modules/canvas2d/BaseRenderingContext2D.h" 12 #include "modules/canvas2d/BaseRenderingContext2D.h"
12 #include <memory> 13 #include "modules/webgl/WebGLTexture.h"
13 14
14 namespace blink { 15 namespace blink {
15 16
16 class MODULES_EXPORT OffscreenCanvasRenderingContext2D final 17 class MODULES_EXPORT OffscreenCanvasRenderingContext2D final
17 : public CanvasRenderingContext, 18 : public CanvasRenderingContext,
18 public BaseRenderingContext2D { 19 public BaseRenderingContext2D {
19 DEFINE_WRAPPERTYPEINFO(); 20 DEFINE_WRAPPERTYPEINFO();
20 USING_GARBAGE_COLLECTED_MIXIN(OffscreenCanvasRenderingContext2D); 21 USING_GARBAGE_COLLECTED_MIXIN(OffscreenCanvasRenderingContext2D);
21 22
22 public: 23 public:
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 bool OriginClean() const final; 68 bool OriginClean() const final;
68 void SetOriginTainted() final; 69 void SetOriginTainted() final;
69 bool WouldTaintOrigin(CanvasImageSource*, ExecutionContext*) final; 70 bool WouldTaintOrigin(CanvasImageSource*, ExecutionContext*) final;
70 71
71 int Width() const final; 72 int Width() const final;
72 int Height() const final; 73 int Height() const final;
73 74
74 bool HasImageBuffer() const final; 75 bool HasImageBuffer() const final;
75 ImageBuffer* GetImageBuffer() const final; 76 ImageBuffer* GetImageBuffer() const final;
76 77
78 ImageBuffer* CreateTextureImageBuffer();
79
77 bool ParseColorOrCurrentColor(Color&, const String& color_string) const final; 80 bool ParseColorOrCurrentColor(Color&, const String& color_string) const final;
78 81
79 PaintCanvas* DrawingCanvas() const final; 82 PaintCanvas* DrawingCanvas() const final;
80 PaintCanvas* ExistingDrawingCanvas() const final; 83 PaintCanvas* ExistingDrawingCanvas() const final;
81 void DisableDeferral(DisableDeferralReason) final; 84 void DisableDeferral(DisableDeferralReason) final;
82 85
83 AffineTransform BaseTransform() const final; 86 AffineTransform BaseTransform() const final;
84 void DidDraw(const SkIRect& dirty_rect) final; // overrides 87 void DidDraw(const SkIRect& dirty_rect) final; // overrides
85 // BaseRenderingContext2D and 88 // BaseRenderingContext2D and
86 // CanvasRenderingContext 89 // CanvasRenderingContext
(...skipping 23 matching lines...) Expand all
110 } 113 }
111 114
112 private: 115 private:
113 bool IsPaintable() const final; 116 bool IsPaintable() const final;
114 117
115 RefPtr<StaticBitmapImage> TransferToStaticBitmapImage(); 118 RefPtr<StaticBitmapImage> TransferToStaticBitmapImage();
116 119
117 CanvasColorSpace ColorSpace() const override; 120 CanvasColorSpace ColorSpace() const override;
118 String ColorSpaceAsString() const override; 121 String ColorSpaceAsString() const override;
119 CanvasPixelFormat PixelFormat() const override; 122 CanvasPixelFormat PixelFormat() const override;
123
124 Member<WebGLTexture> webgl_texture_;
125 std::unique_ptr<ImageBuffer> texture_image_buffer_;
120 }; 126 };
121 127
122 DEFINE_TYPE_CASTS(OffscreenCanvasRenderingContext2D, 128 DEFINE_TYPE_CASTS(OffscreenCanvasRenderingContext2D,
123 CanvasRenderingContext, 129 CanvasRenderingContext,
124 context, 130 context,
125 context->Is2d() && context->host(), 131 context->Is2d() && context->host(),
126 context.Is2d() && context.host()); 132 context.Is2d() && context.host());
127 133
128 } // namespace blink 134 } // namespace blink
129 135
130 #endif // OffscreenCanvasRenderingContext2D_h 136 #endif // OffscreenCanvasRenderingContext2D_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698