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

Side by Side Diff: gpu/command_buffer/service/async_pixel_transfer_manager.cc

Issue 1186393004: gpu: Remove async texture uploads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 3 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
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "gpu/command_buffer/service/async_pixel_transfer_manager.h"
6
7 #include "gpu/command_buffer/service/async_pixel_transfer_delegate.h"
8
9 namespace gpu {
10
11 AsyncPixelTransferCompletionObserver::AsyncPixelTransferCompletionObserver() {}
12
13 AsyncPixelTransferCompletionObserver::~AsyncPixelTransferCompletionObserver() {}
14
15 AsyncPixelTransferManager::AsyncPixelTransferManager() {}
16
17 AsyncPixelTransferManager::~AsyncPixelTransferManager() {
18 if (manager_)
19 manager_->RemoveObserver(this);
20
21 for (TextureToDelegateMap::iterator ref = delegate_map_.begin();
22 ref != delegate_map_.end();
23 ref++) {
24 ref->first->RemoveObserver();
25 }
26 }
27
28 void AsyncPixelTransferManager::Initialize(gles2::TextureManager* manager) {
29 manager_ = manager;
30 manager_->AddObserver(this);
31 }
32
33 AsyncPixelTransferDelegate*
34 AsyncPixelTransferManager::CreatePixelTransferDelegate(
35 gles2::TextureRef* ref,
36 const AsyncTexImage2DParams& define_params) {
37 DCHECK(!GetPixelTransferDelegate(ref));
38 AsyncPixelTransferDelegate* delegate =
39 CreatePixelTransferDelegateImpl(ref, define_params);
40 delegate_map_[ref] = make_linked_ptr(delegate);
41 ref->AddObserver();
42 return delegate;
43 }
44
45 AsyncPixelTransferDelegate*
46 AsyncPixelTransferManager::GetPixelTransferDelegate(
47 gles2::TextureRef* ref) {
48 TextureToDelegateMap::iterator it = delegate_map_.find(ref);
49 if (it == delegate_map_.end()) {
50 return NULL;
51 } else {
52 return it->second.get();
53 }
54 }
55
56 void AsyncPixelTransferManager::ClearPixelTransferDelegateForTest(
57 gles2::TextureRef* ref) {
58 TextureToDelegateMap::iterator it = delegate_map_.find(ref);
59 if (it != delegate_map_.end()) {
60 delegate_map_.erase(it);
61 ref->RemoveObserver();
62 }
63 }
64
65 bool AsyncPixelTransferManager::AsyncTransferIsInProgress(
66 gles2::TextureRef* ref) {
67 AsyncPixelTransferDelegate* delegate = GetPixelTransferDelegate(ref);
68 return delegate && delegate->TransferIsInProgress();
69 }
70
71 void AsyncPixelTransferManager::OnTextureManagerDestroying(
72 gles2::TextureManager* manager) {
73 // TextureManager should outlive AsyncPixelTransferManager.
74 NOTREACHED();
75 manager_ = NULL;
76 }
77
78 void AsyncPixelTransferManager::OnTextureRefDestroying(
79 gles2::TextureRef* texture) {
80 TextureToDelegateMap::iterator it = delegate_map_.find(texture);
81 if (it != delegate_map_.end()) {
82 delegate_map_.erase(it);
83 texture->RemoveObserver();
84 }
85 }
86
87 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698