| OLD | NEW |
| 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 #ifndef CHROME_BROWSER_RENDERER_HOST_GPU_PLUGIN_CONTAINER_MANAGER_MAC_H_ | 5 #ifndef CHROME_BROWSER_RENDERER_HOST_GPU_PLUGIN_CONTAINER_MANAGER_MAC_H_ |
| 6 #define CHROME_BROWSER_RENDERER_HOST_GPU_PLUGIN_CONTAINER_MANAGER_MAC_H_ | 6 #define CHROME_BROWSER_RENDERER_HOST_GPU_PLUGIN_CONTAINER_MANAGER_MAC_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <OpenGL/OpenGL.h> | 9 #include <OpenGL/OpenGL.h> |
| 10 #include <map> | 10 #include <map> |
| 11 | 11 |
| 12 #include "app/surface/transport_dib.h" | 12 #include "app/surface/transport_dib.h" |
| 13 #include "base/basictypes.h" | 13 #include "base/basictypes.h" |
| 14 #include "base/lock.h" |
| 14 #include "gfx/native_widget_types.h" | 15 #include "gfx/native_widget_types.h" |
| 15 | 16 |
| 16 namespace webkit_glue { | 17 namespace webkit_glue { |
| 17 struct WebPluginGeometry; | 18 struct WebPluginGeometry; |
| 18 } | 19 } |
| 19 | 20 |
| 20 class AcceleratedSurfaceContainerMac; | 21 class AcceleratedSurfaceContainerMac; |
| 21 | 22 |
| 22 // Helper class that manages the backing store and on-screen rendering | 23 // Helper class that manages the backing store and on-screen rendering |
| 23 // of instances of the GPU plugin on the Mac. | 24 // of instances of the GPU plugin on the Mac. |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 // there will only be one container active when the accelerated | 100 // there will only be one container active when the accelerated |
| 100 // compositor is active. | 101 // compositor is active. |
| 101 AcceleratedSurfaceContainerMac* root_container_; | 102 AcceleratedSurfaceContainerMac* root_container_; |
| 102 gfx::PluginWindowHandle root_container_handle_; | 103 gfx::PluginWindowHandle root_container_handle_; |
| 103 | 104 |
| 104 // True if gpu rendering is active. The root container is created on demand | 105 // True if gpu rendering is active. The root container is created on demand |
| 105 // and destroyed only when a renderer process exits. When the compositor was | 106 // and destroyed only when a renderer process exits. When the compositor was |
| 106 // created, this is set to |false| while the compositor is not needed. | 107 // created, this is set to |false| while the compositor is not needed. |
| 107 bool gpu_rendering_active_; | 108 bool gpu_rendering_active_; |
| 108 | 109 |
| 110 // Both |plugin_window_to_container_map_| and the |
| 111 // AcceleratedSurfaceContainerMac in it are not threadsafe, but accessed from |
| 112 // multiple threads. All these accesses are guarded by this lock. |
| 113 mutable Lock lock_; |
| 114 |
| 109 DISALLOW_COPY_AND_ASSIGN(AcceleratedSurfaceContainerManagerMac); | 115 DISALLOW_COPY_AND_ASSIGN(AcceleratedSurfaceContainerManagerMac); |
| 110 }; | 116 }; |
| 111 | 117 |
| 112 #endif // CHROME_BROWSER_RENDERER_HOST_GPU_PLUGIN_CONTAINER_MANAGER_MAC_H_ | 118 #endif // CHROME_BROWSER_RENDERER_HOST_GPU_PLUGIN_CONTAINER_MANAGER_MAC_H_ |
| 113 | 119 |
| OLD | NEW |