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 "base/lock.h" |
15 #include "gfx/native_widget_types.h" | 15 #include "gfx/native_widget_types.h" |
16 | 16 |
17 namespace webkit_glue { | 17 namespace webkit { |
| 18 namespace npapi { |
18 struct WebPluginGeometry; | 19 struct WebPluginGeometry; |
19 } | 20 } |
| 21 } |
20 | 22 |
21 class AcceleratedSurfaceContainerMac; | 23 class AcceleratedSurfaceContainerMac; |
22 | 24 |
23 // Helper class that manages the backing store and on-screen rendering | 25 // Helper class that manages the backing store and on-screen rendering |
24 // of instances of the GPU plugin on the Mac. | 26 // of instances of the GPU plugin on the Mac. |
25 class AcceleratedSurfaceContainerManagerMac { | 27 class AcceleratedSurfaceContainerManagerMac { |
26 public: | 28 public: |
27 AcceleratedSurfaceContainerManagerMac(); | 29 AcceleratedSurfaceContainerManagerMac(); |
28 | 30 |
29 // Allocates a new "fake" PluginWindowHandle, which is used as the | 31 // Allocates a new "fake" PluginWindowHandle, which is used as the |
(...skipping 26 matching lines...) Expand all Loading... |
56 int32 width, | 58 int32 width, |
57 int32 height, | 59 int32 height, |
58 uint64 io_surface_identifier); | 60 uint64 io_surface_identifier); |
59 void SetSizeAndTransportDIB(gfx::PluginWindowHandle id, | 61 void SetSizeAndTransportDIB(gfx::PluginWindowHandle id, |
60 int32 width, | 62 int32 width, |
61 int32 height, | 63 int32 height, |
62 TransportDIB::Handle transport_dib); | 64 TransportDIB::Handle transport_dib); |
63 | 65 |
64 // Takes an update from WebKit about a plugin's position and size and moves | 66 // Takes an update from WebKit about a plugin's position and size and moves |
65 // the plugin accordingly. | 67 // the plugin accordingly. |
66 void SetPluginContainerGeometry(const webkit_glue::WebPluginGeometry& move); | 68 void SetPluginContainerGeometry( |
| 69 const webkit::npapi::WebPluginGeometry& move); |
67 | 70 |
68 // Draws the plugin container associated with the given id into the given | 71 // Draws the plugin container associated with the given id into the given |
69 // OpenGL context, which must already be current. | 72 // OpenGL context, which must already be current. |
70 void Draw(CGLContextObj context, gfx::PluginWindowHandle id); | 73 void Draw(CGLContextObj context, gfx::PluginWindowHandle id); |
71 | 74 |
72 // Causes the next Draw call on each container to trigger a texture upload. | 75 // Causes the next Draw call on each container to trigger a texture upload. |
73 // Should be called any time the drawing context has changed. | 76 // Should be called any time the drawing context has changed. |
74 void ForceTextureReload(); | 77 void ForceTextureReload(); |
75 | 78 |
76 // Notifies a surface that it has been painted to. | 79 // Notifies a surface that it has been painted to. |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 // Both |plugin_window_to_container_map_| and the | 116 // Both |plugin_window_to_container_map_| and the |
114 // AcceleratedSurfaceContainerMac in it are not threadsafe, but accessed from | 117 // AcceleratedSurfaceContainerMac in it are not threadsafe, but accessed from |
115 // multiple threads. All these accesses are guarded by this lock. | 118 // multiple threads. All these accesses are guarded by this lock. |
116 mutable Lock lock_; | 119 mutable Lock lock_; |
117 | 120 |
118 DISALLOW_COPY_AND_ASSIGN(AcceleratedSurfaceContainerManagerMac); | 121 DISALLOW_COPY_AND_ASSIGN(AcceleratedSurfaceContainerManagerMac); |
119 }; | 122 }; |
120 | 123 |
121 #endif // CHROME_BROWSER_RENDERER_HOST_GPU_PLUGIN_CONTAINER_MANAGER_MAC_H_ | 124 #endif // CHROME_BROWSER_RENDERER_HOST_GPU_PLUGIN_CONTAINER_MANAGER_MAC_H_ |
122 | 125 |
OLD | NEW |