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

Side by Side Diff: content/browser/gpu/gpu_surface_tracker.cc

Issue 1359163005: Remove surface_id from RenderWidget/RenderWidgetHost and friends (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@channel_creation_preempt
Patch Set: fix more tests Created 5 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
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 "content/browser/gpu/gpu_surface_tracker.h" 5 #include "content/browser/gpu/gpu_surface_tracker.h"
6 6
7 #if defined(OS_ANDROID) 7 #if defined(OS_ANDROID)
8 #include <android/native_window_jni.h> 8 #include <android/native_window_jni.h>
9 #endif // defined(OS_ANDROID) 9 #endif // defined(OS_ANDROID)
10 10
11 #include "base/logging.h" 11 #include "base/logging.h"
12 12
13 namespace content { 13 namespace content {
14 14
15 GpuSurfaceTracker::GpuSurfaceTracker() 15 GpuSurfaceTracker::GpuSurfaceTracker()
16 : next_surface_id_(1) { 16 : next_surface_id_(1) {
17 GpuSurfaceLookup::InitInstance(this); 17 GpuSurfaceLookup::InitInstance(this);
18 } 18 }
19 19
20 GpuSurfaceTracker::~GpuSurfaceTracker() { 20 GpuSurfaceTracker::~GpuSurfaceTracker() {
21 GpuSurfaceLookup::InitInstance(NULL); 21 GpuSurfaceLookup::InitInstance(NULL);
22 } 22 }
23 23
24 GpuSurfaceTracker* GpuSurfaceTracker::GetInstance() { 24 GpuSurfaceTracker* GpuSurfaceTracker::GetInstance() {
25 return base::Singleton<GpuSurfaceTracker>::get(); 25 return base::Singleton<GpuSurfaceTracker>::get();
26 } 26 }
27 27
28 int GpuSurfaceTracker::AddSurfaceForRenderer(int renderer_id,
29 int render_widget_id) {
30 base::AutoLock lock(lock_);
31 int surface_id = next_surface_id_++;
32 surface_map_[surface_id] =
33 SurfaceInfo(renderer_id, render_widget_id, gfx::kNullAcceleratedWidget,
34 gfx::GLSurfaceHandle());
35 return surface_id;
36 }
37
38 int GpuSurfaceTracker::LookupSurfaceForRenderer(int renderer_id,
39 int render_widget_id) {
40 base::AutoLock lock(lock_);
41 for (SurfaceMap::iterator it = surface_map_.begin(); it != surface_map_.end();
42 ++it) {
43 const SurfaceInfo& info = it->second;
44 if (info.renderer_id == renderer_id &&
45 info.render_widget_id == render_widget_id) {
46 return it->first;
47 }
48 }
49 return 0;
50 }
51
52 int GpuSurfaceTracker::AddSurfaceForNativeWidget( 28 int GpuSurfaceTracker::AddSurfaceForNativeWidget(
53 gfx::AcceleratedWidget widget) { 29 gfx::AcceleratedWidget widget) {
54 base::AutoLock lock(lock_); 30 base::AutoLock lock(lock_);
55 int surface_id = next_surface_id_++; 31 int surface_id = next_surface_id_++;
56 surface_map_[surface_id] = SurfaceInfo(0, 0, widget, gfx::GLSurfaceHandle()); 32 surface_map_[surface_id] = SurfaceInfo(widget, gfx::GLSurfaceHandle());
57 return surface_id; 33 return surface_id;
58 } 34 }
59 35
60 void GpuSurfaceTracker::RemoveSurface(int surface_id) { 36 void GpuSurfaceTracker::RemoveSurface(int surface_id) {
61 base::AutoLock lock(lock_); 37 base::AutoLock lock(lock_);
62 DCHECK(surface_map_.find(surface_id) != surface_map_.end()); 38 DCHECK(surface_map_.find(surface_id) != surface_map_.end());
63 surface_map_.erase(surface_id); 39 surface_map_.erase(surface_id);
64 } 40 }
65 41
66 void GpuSurfaceTracker::SetSurfaceHandle(int surface_id, 42 void GpuSurfaceTracker::SetSurfaceHandle(int surface_id,
(...skipping 25 matching lines...) Expand all
92 68
93 return it->second.native_widget; 69 return it->second.native_widget;
94 } 70 }
95 71
96 std::size_t GpuSurfaceTracker::GetSurfaceCount() { 72 std::size_t GpuSurfaceTracker::GetSurfaceCount() {
97 base::AutoLock lock(lock_); 73 base::AutoLock lock(lock_);
98 return surface_map_.size(); 74 return surface_map_.size();
99 } 75 }
100 76
101 GpuSurfaceTracker::SurfaceInfo::SurfaceInfo() 77 GpuSurfaceTracker::SurfaceInfo::SurfaceInfo()
102 : renderer_id(0), 78 : native_widget(gfx::kNullAcceleratedWidget) {}
103 render_widget_id(0),
104 native_widget(gfx::kNullAcceleratedWidget) { }
105 79
106 GpuSurfaceTracker::SurfaceInfo::SurfaceInfo( 80 GpuSurfaceTracker::SurfaceInfo::SurfaceInfo(
107 int renderer_id,
108 int render_widget_id,
109 const gfx::AcceleratedWidget& native_widget, 81 const gfx::AcceleratedWidget& native_widget,
110 const gfx::GLSurfaceHandle& handle) 82 const gfx::GLSurfaceHandle& handle)
111 : renderer_id(renderer_id), 83 : native_widget(native_widget), handle(handle) {}
112 render_widget_id(render_widget_id),
113 native_widget(native_widget),
114 handle(handle) {}
115 84
116 GpuSurfaceTracker::SurfaceInfo::~SurfaceInfo() { } 85 GpuSurfaceTracker::SurfaceInfo::~SurfaceInfo() { }
117 86
118 87
119 } // namespace content 88 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/gpu/gpu_surface_tracker.h ('k') | content/browser/media/capture/web_contents_video_capture_device_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698