OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 // WebExternalTextureLayerClient implementation. | 58 // WebExternalTextureLayerClient implementation. |
59 bool prepareMailbox(WebExternalTextureMailbox*, WebExternalBitmap*) override
; | 59 bool prepareMailbox(WebExternalTextureMailbox*, WebExternalBitmap*) override
; |
60 void mailboxReleased(const WebExternalTextureMailbox&, bool lostResource) ov
erride; | 60 void mailboxReleased(const WebExternalTextureMailbox&, bool lostResource) ov
erride; |
61 | 61 |
62 // ImageBufferSurface implementation | 62 // ImageBufferSurface implementation |
63 void finalizeFrame(const FloatRect &dirtyRect); | 63 void finalizeFrame(const FloatRect &dirtyRect); |
64 void willWritePixels(); | 64 void willWritePixels(); |
65 void willOverwriteAllPixels(); | 65 void willOverwriteAllPixels(); |
66 void willOverwriteCanvas(); | 66 void willOverwriteCanvas(); |
67 SkCanvas* canvas(); | 67 SkCanvas* canvas(); |
68 SkCanvas* immediateCanvas(); | 68 void disableDeferral(); |
69 bool checkSurfaceValid(); | 69 bool checkSurfaceValid(); |
70 bool restoreSurface(); | 70 bool restoreSurface(); |
71 WebLayer* layer() const; | 71 WebLayer* layer() const; |
72 bool isAccelerated() const { return true; } | 72 bool isAccelerated() const { return true; } |
73 void setFilterQuality(SkFilterQuality); | 73 void setFilterQuality(SkFilterQuality); |
74 void setIsHidden(bool); | 74 void setIsHidden(bool); |
75 void setImageBuffer(ImageBuffer*); | 75 void setImageBuffer(ImageBuffer*); |
76 void didDraw(); | 76 void didDraw(); |
77 bool writePixels(const SkImageInfo&, const void* pixels, size_t rowBytes, in
t x, int y); | 77 bool writePixels(const SkImageInfo&, const void* pixels, size_t rowBytes, in
t x, int y); |
78 void flush(); | 78 void flush(); |
(...skipping 22 matching lines...) Expand all Loading... |
101 ImageBuffer* m_imageBuffer; | 101 ImageBuffer* m_imageBuffer; |
102 int m_msaaSampleCount; | 102 int m_msaaSampleCount; |
103 size_t m_bytesAllocated; | 103 size_t m_bytesAllocated; |
104 bool m_haveRecordedDrawCommands; | 104 bool m_haveRecordedDrawCommands; |
105 int m_framesPending; | 105 int m_framesPending; |
106 int m_framesSinceMailboxRelease; | 106 int m_framesSinceMailboxRelease; |
107 bool m_destructionInProgress; | 107 bool m_destructionInProgress; |
108 bool m_rateLimitingEnabled; | 108 bool m_rateLimitingEnabled; |
109 SkFilterQuality m_filterQuality; | 109 SkFilterQuality m_filterQuality; |
110 bool m_isHidden; | 110 bool m_isHidden; |
| 111 bool m_isDeferralEnabled; |
111 | 112 |
112 friend class Canvas2DLayerBridgeTest; | 113 friend class Canvas2DLayerBridgeTest; |
113 | 114 |
114 struct MailboxInfo { | 115 struct MailboxInfo { |
115 WebExternalTextureMailbox m_mailbox; | 116 WebExternalTextureMailbox m_mailbox; |
116 RefPtr<SkImage> m_image; | 117 RefPtr<SkImage> m_image; |
117 RefPtr<Canvas2DLayerBridge> m_parentLayerBridge; | 118 RefPtr<Canvas2DLayerBridge> m_parentLayerBridge; |
118 | 119 |
119 MailboxInfo(const MailboxInfo&); | 120 MailboxInfo(const MailboxInfo&); |
120 MailboxInfo() {} | 121 MailboxInfo() {} |
121 }; | 122 }; |
122 | 123 |
123 uint32_t m_lastImageId; | 124 uint32_t m_lastImageId; |
124 | 125 |
125 enum { | 126 enum { |
126 // We should normally not have more that two active mailboxes at a time, | 127 // We should normally not have more that two active mailboxes at a time, |
127 // but sometime we may have three due to the async nature of mailbox han
dling. | 128 // but sometime we may have three due to the async nature of mailbox han
dling. |
128 MaxActiveMailboxes = 3, | 129 MaxActiveMailboxes = 3, |
129 }; | 130 }; |
130 | 131 |
131 Deque<MailboxInfo, MaxActiveMailboxes> m_mailboxes; | 132 Deque<MailboxInfo, MaxActiveMailboxes> m_mailboxes; |
132 GLenum m_lastFilter; | 133 GLenum m_lastFilter; |
133 OpacityMode m_opacityMode; | 134 OpacityMode m_opacityMode; |
134 IntSize m_size; | 135 IntSize m_size; |
135 }; | 136 }; |
136 | 137 |
137 } // namespace blink | 138 } // namespace blink |
138 | 139 |
139 #endif | 140 #endif |
OLD | NEW |