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

Side by Side Diff: chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc

Issue 6142009: Upating the app, ceee, chrome, ipc, media, and net directories to use the correct lock.h file. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Unified patch updating all references to the new base/synchronization/lock.h Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "chrome/browser/renderer_host/accelerated_surface_container_manager_mac .h" 5 #include "chrome/browser/renderer_host/accelerated_surface_container_manager_mac .h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/renderer_host/accelerated_surface_container_mac.h" 8 #include "chrome/browser/renderer_host/accelerated_surface_container_mac.h"
9 #include "webkit/plugins/npapi/webplugin.h" 9 #include "webkit/plugins/npapi/webplugin.h"
10 10
11 AcceleratedSurfaceContainerManagerMac::AcceleratedSurfaceContainerManagerMac() 11 AcceleratedSurfaceContainerManagerMac::AcceleratedSurfaceContainerManagerMac()
12 : current_id_(0), 12 : current_id_(0),
13 root_container_(NULL), 13 root_container_(NULL),
14 root_container_handle_(gfx::kNullPluginWindow), 14 root_container_handle_(gfx::kNullPluginWindow),
15 gpu_rendering_active_(false) { 15 gpu_rendering_active_(false) {
16 } 16 }
17 17
18 gfx::PluginWindowHandle 18 gfx::PluginWindowHandle
19 AcceleratedSurfaceContainerManagerMac::AllocateFakePluginWindowHandle( 19 AcceleratedSurfaceContainerManagerMac::AllocateFakePluginWindowHandle(
20 bool opaque, bool root) { 20 bool opaque, bool root) {
21 AutoLock lock(lock_); 21 base::AutoLock lock(lock_);
22 22
23 AcceleratedSurfaceContainerMac* container = 23 AcceleratedSurfaceContainerMac* container =
24 new AcceleratedSurfaceContainerMac(this, opaque); 24 new AcceleratedSurfaceContainerMac(this, opaque);
25 gfx::PluginWindowHandle res = 25 gfx::PluginWindowHandle res =
26 static_cast<gfx::PluginWindowHandle>(++current_id_); 26 static_cast<gfx::PluginWindowHandle>(++current_id_);
27 plugin_window_to_container_map_.insert(std::make_pair(res, container)); 27 plugin_window_to_container_map_.insert(std::make_pair(res, container));
28 if (root) { 28 if (root) {
29 root_container_ = container; 29 root_container_ = container;
30 root_container_handle_ = res; 30 root_container_handle_ = res;
31 } 31 }
32 return res; 32 return res;
33 } 33 }
34 34
35 void AcceleratedSurfaceContainerManagerMac::DestroyFakePluginWindowHandle( 35 void AcceleratedSurfaceContainerManagerMac::DestroyFakePluginWindowHandle(
36 gfx::PluginWindowHandle id) { 36 gfx::PluginWindowHandle id) {
37 AutoLock lock(lock_); 37 base::AutoLock lock(lock_);
38 38
39 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id); 39 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
40 if (container) { 40 if (container) {
41 if (container == root_container_) { 41 if (container == root_container_) {
42 root_container_ = NULL; 42 root_container_ = NULL;
43 root_container_handle_ = gfx::kNullPluginWindow; 43 root_container_handle_ = gfx::kNullPluginWindow;
44 } 44 }
45 delete container; 45 delete container;
46 } 46 }
47 plugin_window_to_container_map_.erase(id); 47 plugin_window_to_container_map_.erase(id);
(...skipping 10 matching lines...) Expand all
58 if (gpu_rendering_active_ && !active) 58 if (gpu_rendering_active_ && !active)
59 SetRootSurfaceInvalid(); 59 SetRootSurfaceInvalid();
60 gpu_rendering_active_ = active; 60 gpu_rendering_active_ = active;
61 } 61 }
62 62
63 void AcceleratedSurfaceContainerManagerMac::SetSizeAndIOSurface( 63 void AcceleratedSurfaceContainerManagerMac::SetSizeAndIOSurface(
64 gfx::PluginWindowHandle id, 64 gfx::PluginWindowHandle id,
65 int32 width, 65 int32 width,
66 int32 height, 66 int32 height,
67 uint64 io_surface_identifier) { 67 uint64 io_surface_identifier) {
68 AutoLock lock(lock_); 68 base::AutoLock lock(lock_);
69 69
70 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id); 70 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
71 if (container) { 71 if (container) {
72 container->SetSizeAndIOSurface(width, height, io_surface_identifier); 72 container->SetSizeAndIOSurface(width, height, io_surface_identifier);
73 } 73 }
74 } 74 }
75 75
76 void AcceleratedSurfaceContainerManagerMac::SetSizeAndTransportDIB( 76 void AcceleratedSurfaceContainerManagerMac::SetSizeAndTransportDIB(
77 gfx::PluginWindowHandle id, 77 gfx::PluginWindowHandle id,
78 int32 width, 78 int32 width,
79 int32 height, 79 int32 height,
80 TransportDIB::Handle transport_dib) { 80 TransportDIB::Handle transport_dib) {
81 AutoLock lock(lock_); 81 base::AutoLock lock(lock_);
82 82
83 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id); 83 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
84 if (container) 84 if (container)
85 container->SetSizeAndTransportDIB(width, height, transport_dib); 85 container->SetSizeAndTransportDIB(width, height, transport_dib);
86 } 86 }
87 87
88 void AcceleratedSurfaceContainerManagerMac::SetPluginContainerGeometry( 88 void AcceleratedSurfaceContainerManagerMac::SetPluginContainerGeometry(
89 const webkit::npapi::WebPluginGeometry& move) { 89 const webkit::npapi::WebPluginGeometry& move) {
90 AutoLock lock(lock_); 90 base::AutoLock lock(lock_);
91 91
92 AcceleratedSurfaceContainerMac* container = MapIDToContainer(move.window); 92 AcceleratedSurfaceContainerMac* container = MapIDToContainer(move.window);
93 if (container) 93 if (container)
94 container->SetGeometry(move); 94 container->SetGeometry(move);
95 } 95 }
96 96
97 void AcceleratedSurfaceContainerManagerMac::Draw(CGLContextObj context, 97 void AcceleratedSurfaceContainerManagerMac::Draw(CGLContextObj context,
98 gfx::PluginWindowHandle id) { 98 gfx::PluginWindowHandle id) {
99 AutoLock lock(lock_); 99 base::AutoLock lock(lock_);
100 100
101 glColorMask(true, true, true, true); 101 glColorMask(true, true, true, true);
102 // Should match the clear color of RenderWidgetHostViewMac. 102 // Should match the clear color of RenderWidgetHostViewMac.
103 glClearColor(1.0f, 1.0f, 1.0f, 1.0f); 103 glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
104 // TODO(thakis): Clearing the whole color buffer is wasteful, since most of 104 // TODO(thakis): Clearing the whole color buffer is wasteful, since most of
105 // it is overwritten by the surface. 105 // it is overwritten by the surface.
106 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 106 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
107 glDisable(GL_DEPTH_TEST); 107 glDisable(GL_DEPTH_TEST);
108 glDisable(GL_BLEND); 108 glDisable(GL_BLEND);
109 109
110 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); 110 glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
111 111
112 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id); 112 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
113 CHECK(container); 113 CHECK(container);
114 container->Draw(context); 114 container->Draw(context);
115 115
116 // Unbind any texture from the texture target to ensure that the 116 // Unbind any texture from the texture target to ensure that the
117 // next time through we will have to re-bind the texture and thereby 117 // next time through we will have to re-bind the texture and thereby
118 // pick up modifications from the other process. 118 // pick up modifications from the other process.
119 GLenum target = GL_TEXTURE_RECTANGLE_ARB; 119 GLenum target = GL_TEXTURE_RECTANGLE_ARB;
120 glBindTexture(target, 0); 120 glBindTexture(target, 0);
121 121
122 glFlush(); 122 glFlush();
123 } 123 }
124 124
125 void AcceleratedSurfaceContainerManagerMac::ForceTextureReload() { 125 void AcceleratedSurfaceContainerManagerMac::ForceTextureReload() {
126 AutoLock lock(lock_); 126 base::AutoLock lock(lock_);
127 127
128 for (PluginWindowToContainerMap::const_iterator i = 128 for (PluginWindowToContainerMap::const_iterator i =
129 plugin_window_to_container_map_.begin(); 129 plugin_window_to_container_map_.begin();
130 i != plugin_window_to_container_map_.end(); ++i) { 130 i != plugin_window_to_container_map_.end(); ++i) {
131 AcceleratedSurfaceContainerMac* container = i->second; 131 AcceleratedSurfaceContainerMac* container = i->second;
132 container->ForceTextureReload(); 132 container->ForceTextureReload();
133 } 133 }
134 } 134 }
135 135
136 void AcceleratedSurfaceContainerManagerMac::SetSurfaceWasPaintedTo( 136 void AcceleratedSurfaceContainerManagerMac::SetSurfaceWasPaintedTo(
137 gfx::PluginWindowHandle id, uint64 surface_id) { 137 gfx::PluginWindowHandle id, uint64 surface_id) {
138 AutoLock lock(lock_); 138 base::AutoLock lock(lock_);
139 139
140 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id); 140 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
141 if (container) 141 if (container)
142 container->set_was_painted_to(surface_id); 142 container->set_was_painted_to(surface_id);
143 } 143 }
144 144
145 void AcceleratedSurfaceContainerManagerMac::SetRootSurfaceInvalid() { 145 void AcceleratedSurfaceContainerManagerMac::SetRootSurfaceInvalid() {
146 AutoLock lock(lock_); 146 base::AutoLock lock(lock_);
147 if (root_container_) 147 if (root_container_)
148 root_container_->set_surface_invalid(); 148 root_container_->set_surface_invalid();
149 } 149 }
150 150
151 bool AcceleratedSurfaceContainerManagerMac::SurfaceShouldBeVisible( 151 bool AcceleratedSurfaceContainerManagerMac::SurfaceShouldBeVisible(
152 gfx::PluginWindowHandle id) const { 152 gfx::PluginWindowHandle id) const {
153 AutoLock lock(lock_); 153 base::AutoLock lock(lock_);
154 154
155 if (IsRootContainer(id) && !gpu_rendering_active_) 155 if (IsRootContainer(id) && !gpu_rendering_active_)
156 return false; 156 return false;
157 157
158 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id); 158 AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
159 return container && container->ShouldBeVisible(); 159 return container && container->ShouldBeVisible();
160 } 160 }
161 161
162 AcceleratedSurfaceContainerMac* 162 AcceleratedSurfaceContainerMac*
163 AcceleratedSurfaceContainerManagerMac::MapIDToContainer( 163 AcceleratedSurfaceContainerManagerMac::MapIDToContainer(
164 gfx::PluginWindowHandle id) const { 164 gfx::PluginWindowHandle id) const {
165 PluginWindowToContainerMap::const_iterator i = 165 PluginWindowToContainerMap::const_iterator i =
166 plugin_window_to_container_map_.find(id); 166 plugin_window_to_container_map_.find(id);
167 if (i != plugin_window_to_container_map_.end()) 167 if (i != plugin_window_to_container_map_.end())
168 return i->second; 168 return i->second;
169 169
170 LOG(ERROR) << "Request for plugin container for unknown window id " << id; 170 LOG(ERROR) << "Request for plugin container for unknown window id " << id;
171 171
172 return NULL; 172 return NULL;
173 } 173 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698