OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
pdr.
2015/02/10 23:47:08
Can we combine this with WebGraphicsContext?
jbroman
2015/02/11 00:32:54
The interface/impl pattern seems to be more common
| |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef WebGraphicsContextImpl_h | |
6 #define WebGraphicsContextImpl_h | |
7 | |
8 #include "platform/graphics/paint/DisplayItem.h" | |
9 #include "platform/graphics/paint/DisplayItemClient.h" | |
10 #include "public/web/WebGraphicsContext.h" | |
11 #include "wtf/OwnPtr.h" | |
12 | |
13 namespace blink { | |
14 | |
15 class DrawingRecorder; | |
16 class GraphicsContext; | |
17 | |
18 // Wraps a blink::GraphicsContext. | |
19 // Internal consumers can extract the underlying context (via WebGraphicsContext Impl). | |
20 // External consumers can make a single drawing using a WebCanvas. | |
21 class WebGraphicsContextImpl : public WebGraphicsContext { | |
22 public: | |
23 WebGraphicsContextImpl(GraphicsContext&, DisplayItemClient, DisplayItem::Typ e); | |
24 ~WebGraphicsContextImpl(); | |
25 GraphicsContext& graphicsContext() { return m_graphicsContext; } | |
26 | |
27 // blink::WebGraphicsContext | |
28 WebCanvas* beginDrawing(const WebFloatRect& bounds) override; | |
29 void endDrawing() override; | |
30 | |
31 private: | |
32 GraphicsContext& m_graphicsContext; | |
33 DisplayItemClient m_client; | |
34 DisplayItem::Type m_type; | |
35 OwnPtr<DrawingRecorder> m_drawingRecorder; | |
36 #ifndef NDEBUG | |
37 bool m_hasBegunDrawing; | |
38 #endif | |
39 }; | |
40 | |
41 // Source/web/ assumes that WebGraphicsContextImpl is the only implementation. | |
42 DEFINE_TYPE_CASTS(WebGraphicsContextImpl, WebGraphicsContext, webGraphicsContext , true, true); | |
43 | |
44 } // namespace blink | |
45 | |
46 #endif | |
OLD | NEW |