OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 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 are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * 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 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 bridge->opacityMode(), | 73 bridge->opacityMode(), |
74 bridge->skSurfaceColorSpace(), | 74 bridge->skSurfaceColorSpace(), |
75 bridge->colorType()), | 75 bridge->colorType()), |
76 m_layerBridge(std::move(bridge)) { | 76 m_layerBridge(std::move(bridge)) { |
77 init(); | 77 init(); |
78 } | 78 } |
79 | 79 |
80 ~Canvas2DImageBufferSurface() override { m_layerBridge->beginDestruction(); } | 80 ~Canvas2DImageBufferSurface() override { m_layerBridge->beginDestruction(); } |
81 | 81 |
82 // ImageBufferSurface implementation | 82 // ImageBufferSurface implementation |
83 void finalizeFrame(const FloatRect& dirtyRect) override { | 83 void finalizeFrame() override { m_layerBridge->finalizeFrame(); } |
84 m_layerBridge->finalizeFrame(dirtyRect); | 84 void doPaintInvalidation(const FloatRect& dirtyRect) override { |
| 85 m_layerBridge->doPaintInvalidation(dirtyRect); |
85 } | 86 } |
86 void willOverwriteCanvas() override { m_layerBridge->willOverwriteCanvas(); } | 87 void willOverwriteCanvas() override { m_layerBridge->willOverwriteCanvas(); } |
87 PaintCanvas* canvas() override { return m_layerBridge->canvas(); } | 88 PaintCanvas* canvas() override { return m_layerBridge->canvas(); } |
88 void disableDeferral(DisableDeferralReason reason) override { | 89 void disableDeferral(DisableDeferralReason reason) override { |
89 m_layerBridge->disableDeferral(reason); | 90 m_layerBridge->disableDeferral(reason); |
90 } | 91 } |
91 bool isValid() const override { return m_layerBridge->checkSurfaceValid(); } | 92 bool isValid() const override { return m_layerBridge->checkSurfaceValid(); } |
92 bool restore() override { return m_layerBridge->restoreSurface(); } | 93 bool restore() override { return m_layerBridge->restoreSurface(); } |
93 WebLayer* layer() const override { return m_layerBridge->layer(); } | 94 WebLayer* layer() const override { return m_layerBridge->layer(); } |
94 bool isAccelerated() const override { return m_layerBridge->isAccelerated(); } | 95 bool isAccelerated() const override { return m_layerBridge->isAccelerated(); } |
95 void setFilterQuality(SkFilterQuality filterQuality) override { | 96 void setFilterQuality(SkFilterQuality filterQuality) override { |
96 m_layerBridge->setFilterQuality(filterQuality); | 97 m_layerBridge->setFilterQuality(filterQuality); |
97 } | 98 } |
98 void setIsHidden(bool hidden) override { m_layerBridge->setIsHidden(hidden); } | 99 void setIsHidden(bool hidden) override { m_layerBridge->setIsHidden(hidden); } |
99 void setImageBuffer(ImageBuffer* imageBuffer) override { | 100 void setImageBuffer(ImageBuffer* imageBuffer) override { |
100 m_layerBridge->setImageBuffer(imageBuffer); | 101 m_layerBridge->setImageBuffer(imageBuffer); |
101 } | 102 } |
102 void didDraw(const FloatRect& rect) override { m_layerBridge->didDraw(rect); } | 103 void didDraw(const FloatRect& rect) override { m_layerBridge->didDraw(rect); } |
103 void flush(FlushReason) override { m_layerBridge->flush(); } | 104 void flush(FlushReason) override { m_layerBridge->flush(); } |
104 void flushGpu(FlushReason) override { m_layerBridge->flushGpu(); } | 105 void flushGpu(FlushReason) override { m_layerBridge->flushGpu(); } |
105 void prepareSurfaceForPaintingIfNeeded() override { | |
106 m_layerBridge->prepareSurfaceForPaintingIfNeeded(); | |
107 } | |
108 bool writePixels(const SkImageInfo& origInfo, | 106 bool writePixels(const SkImageInfo& origInfo, |
109 const void* pixels, | 107 const void* pixels, |
110 size_t rowBytes, | 108 size_t rowBytes, |
111 int x, | 109 int x, |
112 int y) override { | 110 int y) override { |
113 return m_layerBridge->writePixels(origInfo, pixels, rowBytes, x, y); | 111 return m_layerBridge->writePixels(origInfo, pixels, rowBytes, x, y); |
114 } | 112 } |
115 | 113 |
116 sk_sp<SkImage> newImageSnapshot(AccelerationHint hint, | 114 sk_sp<SkImage> newImageSnapshot(AccelerationHint hint, |
117 SnapshotReason reason) override { | 115 SnapshotReason reason) override { |
118 return m_layerBridge->newImageSnapshot(hint, reason); | 116 return m_layerBridge->newImageSnapshot(hint, reason); |
119 } | 117 } |
120 | 118 |
121 private: | 119 private: |
122 void init() { | 120 void init() { |
123 clear(); | 121 clear(); |
124 if (isValid()) | 122 if (isValid()) |
125 m_layerBridge->flush(); | 123 m_layerBridge->flush(); |
126 } | 124 } |
127 | 125 |
128 RefPtr<Canvas2DLayerBridge> m_layerBridge; | 126 RefPtr<Canvas2DLayerBridge> m_layerBridge; |
129 }; | 127 }; |
130 | 128 |
131 } // namespace blink | 129 } // namespace blink |
132 | 130 |
133 #endif | 131 #endif |
OLD | NEW |