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

Side by Side Diff: gpu/ipc/common/gpu_surface_tracker.cc

Issue 2562733002: Implement our own GLThread for VR Shell. (Closed)
Patch Set: sigh Created 4 years 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "gpu/ipc/common/gpu_surface_tracker.h" 5 #include "gpu/ipc/common/gpu_surface_tracker.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "build/build_config.h" 8 #include "build/build_config.h"
9 9
10 #if defined(OS_ANDROID) 10 #if defined(OS_ANDROID)
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 #if defined(OS_ANDROID) 57 #if defined(OS_ANDROID)
58 if (it->second != gfx::kNullAcceleratedWidget) 58 if (it->second != gfx::kNullAcceleratedWidget)
59 ANativeWindow_acquire(it->second); 59 ANativeWindow_acquire(it->second);
60 #endif // defined(OS_ANDROID) 60 #endif // defined(OS_ANDROID)
61 61
62 return it->second; 62 return it->second;
63 } 63 }
64 64
65 #if defined(OS_ANDROID) 65 #if defined(OS_ANDROID)
66 void GpuSurfaceTracker::RegisterViewSurface( 66 void GpuSurfaceTracker::RegisterViewSurface(
67 int surface_id, const base::android::JavaRef<jobject>& j_surface) { 67 int surface_id, jobject j_surface) {
68 base::AutoLock lock(surface_view_map_lock_); 68 base::AutoLock lock(surface_view_map_lock_);
69 DCHECK(surface_view_map_.find(surface_id) == surface_view_map_.end()); 69 DCHECK(surface_view_map_.find(surface_id) == surface_view_map_.end());
70 70
71 surface_view_map_[surface_id] = 71 surface_view_map_[surface_id] =
72 gl::ScopedJavaSurface::AcquireExternalSurface(j_surface.obj()); 72 gl::ScopedJavaSurface::AcquireExternalSurface(j_surface);
73 CHECK(surface_view_map_[surface_id].IsValid()); 73 CHECK(surface_view_map_[surface_id].IsValid());
74 } 74 }
75 75
76 void GpuSurfaceTracker::UnregisterViewSurface(int surface_id) 76 void GpuSurfaceTracker::UnregisterViewSurface(int surface_id)
77 { 77 {
78 base::AutoLock lock(surface_view_map_lock_); 78 base::AutoLock lock(surface_view_map_lock_);
79 DCHECK(surface_view_map_.find(surface_id) != surface_view_map_.end()); 79 DCHECK(surface_view_map_.find(surface_id) != surface_view_map_.end());
80 surface_view_map_.erase(surface_id); 80 surface_view_map_.erase(surface_id);
81 } 81 }
82 82
83 gl::ScopedJavaSurface GpuSurfaceTracker::AcquireJavaSurface(int surface_id) { 83 gl::ScopedJavaSurface GpuSurfaceTracker::AcquireJavaSurface(int surface_id) {
84 base::AutoLock lock(surface_view_map_lock_); 84 base::AutoLock lock(surface_view_map_lock_);
85 SurfaceViewMap::const_iterator iter = surface_view_map_.find(surface_id); 85 SurfaceViewMap::const_iterator iter = surface_view_map_.find(surface_id);
86 if (iter == surface_view_map_.end()) 86 if (iter == surface_view_map_.end())
87 return gl::ScopedJavaSurface(); 87 return gl::ScopedJavaSurface();
88 88
89 const gl::ScopedJavaSurface& j_surface = iter->second; 89 const gl::ScopedJavaSurface& j_surface = iter->second;
90 DCHECK(j_surface.IsValid()); 90 DCHECK(j_surface.IsValid());
91 return gl::ScopedJavaSurface::AcquireExternalSurface( 91 return gl::ScopedJavaSurface::AcquireExternalSurface(
92 j_surface.j_surface().obj()); 92 j_surface.j_surface().obj());
93 } 93 }
94 #endif 94 #endif
95 95
96 std::size_t GpuSurfaceTracker::GetSurfaceCount() { 96 std::size_t GpuSurfaceTracker::GetSurfaceCount() {
97 base::AutoLock lock(surface_map_lock_); 97 base::AutoLock lock(surface_map_lock_);
98 return surface_map_.size(); 98 return surface_map_.size();
99 } 99 }
100 100
101 } // namespace gpu 101 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/ipc/common/gpu_surface_tracker.h ('k') | ui/android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698