OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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 #include "config.h" | 5 #include "config.h" |
6 | 6 |
7 #if USE(ACCELERATED_COMPOSITING) | 7 #if USE(ACCELERATED_COMPOSITING) |
8 | 8 |
9 #include "CCIOSurfaceLayerImpl.h" | 9 #include "CCIOSurfaceLayerImpl.h" |
10 | 10 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
68 // Do not check for error conditions. texImageIOSurface2DCHROMIUM is sup
posed to hold on to | 68 // Do not check for error conditions. texImageIOSurface2DCHROMIUM is sup
posed to hold on to |
69 // the last good IOSurface if the new one is already closed. This is onl
y a possibility | 69 // the last good IOSurface if the new one is already closed. This is onl
y a possibility |
70 // during live resizing of plugins. However, it seems that this is not s
ufficient to | 70 // during live resizing of plugins. However, it seems that this is not s
ufficient to |
71 // completely guard against garbage being drawn. If this is found to be
a significant issue, | 71 // completely guard against garbage being drawn. If this is found to be
a significant issue, |
72 // it may be necessary to explicitly tell the embedder when to free the
surfaces it has | 72 // it may be necessary to explicitly tell the embedder when to free the
surfaces it has |
73 // allocated. | 73 // allocated. |
74 m_ioSurfaceChanged = false; | 74 m_ioSurfaceChanged = false; |
75 } | 75 } |
76 } | 76 } |
77 | 77 |
78 void CCIOSurfaceLayerImpl::appendQuads(CCQuadSink& quadSink, bool&) | 78 void CCIOSurfaceLayerImpl::appendQuads(CCQuadSink& quadSink, CCAppendQuadsData&
appendQuadsData) |
79 { | 79 { |
80 CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createShare
dQuadState()); | 80 CCSharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createShare
dQuadState()); |
81 appendDebugBorderQuad(quadSink, sharedQuadState); | 81 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData); |
82 | 82 |
83 IntRect quadRect(IntPoint(), contentBounds()); | 83 IntRect quadRect(IntPoint(), contentBounds()); |
84 quadSink.append(CCIOSurfaceDrawQuad::create(sharedQuadState, quadRect, m_ioS
urfaceSize, m_ioSurfaceTextureId, CCIOSurfaceDrawQuad::Flipped)); | 84 quadSink.append(CCIOSurfaceDrawQuad::create(sharedQuadState, quadRect, m_ioS
urfaceSize, m_ioSurfaceTextureId, CCIOSurfaceDrawQuad::Flipped), appendQuadsData
); |
85 } | 85 } |
86 | 86 |
87 void CCIOSurfaceLayerImpl::dumpLayerProperties(TextStream& ts, int indent) const | 87 void CCIOSurfaceLayerImpl::dumpLayerProperties(TextStream& ts, int indent) const |
88 { | 88 { |
89 writeIndent(ts, indent); | 89 writeIndent(ts, indent); |
90 ts << "iosurface id: " << m_ioSurfaceId << " texture id: " << m_ioSurfaceTex
tureId; | 90 ts << "iosurface id: " << m_ioSurfaceId << " texture id: " << m_ioSurfaceTex
tureId; |
91 CCLayerImpl::dumpLayerProperties(ts, indent); | 91 CCLayerImpl::dumpLayerProperties(ts, indent); |
92 } | 92 } |
93 | 93 |
94 void CCIOSurfaceLayerImpl::didLoseContext() | 94 void CCIOSurfaceLayerImpl::didLoseContext() |
95 { | 95 { |
96 // We don't have a valid texture ID in the new context; however, | 96 // We don't have a valid texture ID in the new context; however, |
97 // the IOSurface is still valid. | 97 // the IOSurface is still valid. |
98 m_ioSurfaceTextureId = 0; | 98 m_ioSurfaceTextureId = 0; |
99 m_ioSurfaceChanged = true; | 99 m_ioSurfaceChanged = true; |
100 } | 100 } |
101 | 101 |
102 void CCIOSurfaceLayerImpl::setIOSurfaceProperties(unsigned ioSurfaceId, const In
tSize& size) | 102 void CCIOSurfaceLayerImpl::setIOSurfaceProperties(unsigned ioSurfaceId, const In
tSize& size) |
103 { | 103 { |
104 if (m_ioSurfaceId != ioSurfaceId) | 104 if (m_ioSurfaceId != ioSurfaceId) |
105 m_ioSurfaceChanged = true; | 105 m_ioSurfaceChanged = true; |
106 | 106 |
107 m_ioSurfaceId = ioSurfaceId; | 107 m_ioSurfaceId = ioSurfaceId; |
108 m_ioSurfaceSize = size; | 108 m_ioSurfaceSize = size; |
109 } | 109 } |
110 } | 110 } |
111 | 111 |
112 #endif // USE(ACCELERATED_COMPOSITING) | 112 #endif // USE(ACCELERATED_COMPOSITING) |
OLD | NEW |