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

Side by Side Diff: cc/texture_layer_impl.cc

Issue 11888010: Cosmetic cleanup to texture_layer mailboxes. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 7 years, 11 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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 "cc/texture_layer_impl.h" 5 #include "cc/texture_layer_impl.h"
6 6
7 #include "base/stringprintf.h" 7 #include "base/stringprintf.h"
8 #include "cc/layer_tree_impl.h" 8 #include "cc/layer_tree_impl.h"
9 #include "cc/quad_sink.h" 9 #include "cc/quad_sink.h"
10 #include "cc/renderer.h" 10 #include "cc/renderer.h"
(...skipping 17 matching lines...) Expand all
28 m_vertexOpacity[3] = 1.0f; 28 m_vertexOpacity[3] = 1.0f;
29 } 29 }
30 30
31 TextureLayerImpl::~TextureLayerImpl() 31 TextureLayerImpl::~TextureLayerImpl()
32 { 32 {
33 if (m_externalTextureResource) { 33 if (m_externalTextureResource) {
34 DCHECK(m_usesMailbox); 34 DCHECK(m_usesMailbox);
35 ResourceProvider* provider = layerTreeImpl()->resource_provider(); 35 ResourceProvider* provider = layerTreeImpl()->resource_provider();
36 provider->deleteResource(m_externalTextureResource); 36 provider->deleteResource(m_externalTextureResource);
37 } 37 }
38 if (m_hasPendingMailbox && !m_pendingMailboxName.empty()) 38 if (m_hasPendingMailbox)
39 m_pendingMailboxReleaseCallback.Run(0); 39 m_pendingTextureMailbox.RunReleaseCallback(0);
40 } 40 }
41 41
42 void TextureLayerImpl::setTextureMailbox(const std::string& mailboxName, const b ase::Callback<void(unsigned)>& releaseCallback) 42 void TextureLayerImpl::setTextureMailbox(const TextureMailbox& mailbox)
43 { 43 {
44 DCHECK(m_usesMailbox); 44 DCHECK(m_usesMailbox);
45 // Same mailbox name was commited, nothing to do. 45 // Same mailbox name was commited, nothing to do.
46 if (m_pendingMailboxName.compare(mailboxName) == 0) 46 if (m_pendingTextureMailbox.Equals(mailbox))
47 return; 47 return;
48 // Two commits without a draw, ack the previous mailbox. 48 // Two commits without a draw, ack the previous mailbox.
49 if (m_hasPendingMailbox && !m_pendingMailboxReleaseCallback.is_null()) 49 if (m_hasPendingMailbox)
50 m_pendingMailboxReleaseCallback.Run(0); 50 m_pendingTextureMailbox.RunReleaseCallback(0);
51 51
52 m_pendingMailboxName = mailboxName; 52 m_pendingTextureMailbox = mailbox;
53 m_hasPendingMailbox = true; 53 m_hasPendingMailbox = true;
54 m_pendingMailboxReleaseCallback = releaseCallback;
55 } 54 }
56 55
57 void TextureLayerImpl::willDraw(ResourceProvider* resourceProvider) 56 void TextureLayerImpl::willDraw(ResourceProvider* resourceProvider)
58 { 57 {
59 if (!m_usesMailbox) { 58 if (!m_usesMailbox) {
60 if (!m_textureId) 59 if (!m_textureId)
61 return; 60 return;
62 DCHECK(!m_externalTextureResource); 61 DCHECK(!m_externalTextureResource);
63 m_externalTextureResource = resourceProvider->createResourceFromExternal Texture(m_textureId); 62 m_externalTextureResource = resourceProvider->createResourceFromExternal Texture(m_textureId);
64 return; 63 return;
65 } 64 }
66 65
67 if (!m_hasPendingMailbox) 66 if (!m_hasPendingMailbox)
68 return; 67 return;
69 68
70 if (m_externalTextureResource) { 69 if (m_externalTextureResource) {
71 resourceProvider->deleteResource(m_externalTextureResource); 70 resourceProvider->deleteResource(m_externalTextureResource);
72 m_externalTextureResource = 0; 71 m_externalTextureResource = 0;
73 } 72 }
74 if (!m_pendingMailboxName.empty()) 73 if (!m_pendingTextureMailbox.IsEmpty())
75 m_externalTextureResource = resourceProvider->createResourceFromTextureM ailbox(m_pendingMailboxName, m_pendingMailboxReleaseCallback); 74 m_externalTextureResource = resourceProvider->createResourceFromTextureM ailbox(m_pendingTextureMailbox);
76 m_hasPendingMailbox = false; 75 m_hasPendingMailbox = false;
77 } 76 }
78 77
79 void TextureLayerImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQu adsData) 78 void TextureLayerImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQu adsData)
80 { 79 {
81 if (!m_externalTextureResource) 80 if (!m_externalTextureResource)
82 return; 81 return;
83 82
84 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQ uadState()); 83 SharedQuadState* sharedQuadState = quadSink.useSharedQuadState(createSharedQ uadState());
85 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData); 84 appendDebugBorderQuad(quadSink, sharedQuadState, appendQuadsData);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 { 133 {
135 return "TextureLayer"; 134 return "TextureLayer";
136 } 135 }
137 136
138 bool TextureLayerImpl::canClipSelf() const 137 bool TextureLayerImpl::canClipSelf() const
139 { 138 {
140 return true; 139 return true;
141 } 140 }
142 141
143 } // namespace cc 142 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698