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

Side by Side Diff: cc/throttled_texture_uploader.cc

Issue 11189043: cc: Rename cc classes and members to match filenames (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
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 #include "cc/throttled_texture_uploader.h" 6 #include "cc/throttled_texture_uploader.h"
7 7
8 #include "CCPrioritizedTexture.h" 8 #include "CCPrioritizedTexture.h"
9 #include "CCProxy.h" 9 #include "CCProxy.h"
10 #include "Extensions3DChromium.h" 10 #include "Extensions3DChromium.h"
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 m_availableQueries.first()->begin(); 164 m_availableQueries.first()->begin();
165 } 165 }
166 166
167 void ThrottledTextureUploader::endQuery() 167 void ThrottledTextureUploader::endQuery()
168 { 168 {
169 m_availableQueries.first()->end(); 169 m_availableQueries.first()->end();
170 m_pendingQueries.append(m_availableQueries.takeFirst()); 170 m_pendingQueries.append(m_availableQueries.takeFirst());
171 m_numBlockingTextureUploads++; 171 m_numBlockingTextureUploads++;
172 } 172 }
173 173
174 void ThrottledTextureUploader::uploadTexture(CCResourceProvider* resourceProvide r, Parameters upload) 174 void ThrottledTextureUploader::uploadTexture(ResourceProvider* resourceProvider, Parameters upload)
175 { 175 {
176 bool isFullUpload = upload.geometry.destOffset.isZero() && 176 bool isFullUpload = upload.geometry.destOffset.isZero() &&
177 upload.geometry.sourceRect.size() == upload.texture->siz e(); 177 upload.geometry.sourceRect.size() == upload.texture->siz e();
178 178
179 if (isFullUpload) 179 if (isFullUpload)
180 beginQuery(); 180 beginQuery();
181 181
182 if (upload.bitmap) { 182 if (upload.bitmap) {
183 upload.bitmap->lockPixels(); 183 upload.bitmap->lockPixels();
184 upload.texture->upload( 184 upload.texture->upload(
185 resourceProvider, 185 resourceProvider,
186 static_cast<const uint8_t*>(upload.bitmap->getPixels()), 186 static_cast<const uint8_t*>(upload.bitmap->getPixels()),
187 upload.geometry.contentRect, 187 upload.geometry.contentRect,
188 upload.geometry.sourceRect, 188 upload.geometry.sourceRect,
189 upload.geometry.destOffset); 189 upload.geometry.destOffset);
190 upload.bitmap->unlockPixels(); 190 upload.bitmap->unlockPixels();
191 } 191 }
192 192
193 // TODO(reveman): Move this logic to CCTextureUpdateController after 193 // TODO(reveman): Move this logic to TextureUpdateController after
194 // removing Parameters struct. 194 // removing Parameters struct.
195 if (upload.picture) { 195 if (upload.picture) {
196 CCPrioritizedTexture* texture = upload.texture; 196 PrioritizedTexture* texture = upload.texture;
197 IntRect pictureRect = upload.geometry.contentRect; 197 IntRect pictureRect = upload.geometry.contentRect;
198 IntRect sourceRect = upload.geometry.sourceRect; 198 IntRect sourceRect = upload.geometry.sourceRect;
199 IntSize destOffset = upload.geometry.destOffset; 199 IntSize destOffset = upload.geometry.destOffset;
200 200
201 texture->acquireBackingTexture(resourceProvider); 201 texture->acquireBackingTexture(resourceProvider);
202 ASSERT(texture->haveBackingTexture()); 202 ASSERT(texture->haveBackingTexture());
203 203
204 ASSERT(resourceProvider->resourceType(texture->resourceId()) == 204 ASSERT(resourceProvider->resourceType(texture->resourceId()) ==
205 CCResourceProvider::GLTexture); 205 ResourceProvider::GLTexture);
206 206
207 WebGraphicsContext3D* paintContext = CCProxy::hasImplThread() ? 207 WebGraphicsContext3D* paintContext = Proxy::hasImplThread() ?
208 WebSharedGraphicsContext3D::compositorThreadContext() : 208 WebSharedGraphicsContext3D::compositorThreadContext() :
209 WebSharedGraphicsContext3D::mainThreadContext(); 209 WebSharedGraphicsContext3D::mainThreadContext();
210 GrContext* paintGrContext = CCProxy::hasImplThread() ? 210 GrContext* paintGrContext = Proxy::hasImplThread() ?
211 WebSharedGraphicsContext3D::compositorThreadGrContext() : 211 WebSharedGraphicsContext3D::compositorThreadGrContext() :
212 WebSharedGraphicsContext3D::mainThreadGrContext(); 212 WebSharedGraphicsContext3D::mainThreadGrContext();
213 213
214 // Flush the context in which the backing texture is created so that it 214 // Flush the context in which the backing texture is created so that it
215 // is available in other shared contexts. It is important to do here 215 // is available in other shared contexts. It is important to do here
216 // because the backing texture is created in one context while it is 216 // because the backing texture is created in one context while it is
217 // being written to in another. 217 // being written to in another.
218 resourceProvider->flush(); 218 resourceProvider->flush();
219 CCResourceProvider::ScopedWriteLockGL lock( 219 ResourceProvider::ScopedWriteLockGL lock(
220 resourceProvider, texture->resourceId()); 220 resourceProvider, texture->resourceId());
221 221
222 // Make sure ganesh uses the correct GL context. 222 // Make sure ganesh uses the correct GL context.
223 paintContext->makeContextCurrent(); 223 paintContext->makeContextCurrent();
224 224
225 // Create an accelerated canvas to draw on. 225 // Create an accelerated canvas to draw on.
226 scoped_ptr<SkCanvas> canvas = createAcceleratedCanvas( 226 scoped_ptr<SkCanvas> canvas = createAcceleratedCanvas(
227 paintGrContext, texture->size(), lock.textureId()); 227 paintGrContext, texture->size(), lock.textureId());
228 228
229 // The compositor expects the textures to be upside-down so it can flip 229 // The compositor expects the textures to be upside-down so it can flip
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 // Remove the oldest values from our history and insert the new one 271 // Remove the oldest values from our history and insert the new one
272 double texturesPerSecond = 1.0 / (usElapsed * 1e-6); 272 double texturesPerSecond = 1.0 / (usElapsed * 1e-6);
273 m_texturesPerSecondHistory.pop_back(); 273 m_texturesPerSecondHistory.pop_back();
274 m_texturesPerSecondHistory.push_front(texturesPerSecond); 274 m_texturesPerSecondHistory.push_front(texturesPerSecond);
275 275
276 m_availableQueries.append(m_pendingQueries.takeFirst()); 276 m_availableQueries.append(m_pendingQueries.takeFirst());
277 } 277 }
278 } 278 }
279 279
280 } 280 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698