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

Side by Side Diff: chrome/renderer/render_widget.h

Issue 1136006: Calling OpenGL from the renderer process. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 9 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
« no previous file with comments | « chrome/renderer/render_thread.cc ('k') | chrome/renderer/render_widget.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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_RENDERER_RENDER_WIDGET_H_ 5 #ifndef CHROME_RENDERER_RENDER_WIDGET_H_
6 #define CHROME_RENDERER_RENDER_WIDGET_H_ 6 #define CHROME_RENDERER_RENDER_WIDGET_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
11 #include "base/ref_counted.h" 11 #include "base/ref_counted.h"
12 #include "base/shared_memory.h" 12 #include "base/shared_memory.h"
13 #include "chrome/renderer/gpu_channel_host.h"
14 #include "chrome/renderer/paint_aggregator.h" 13 #include "chrome/renderer/paint_aggregator.h"
15 #include "chrome/renderer/render_process.h" 14 #include "chrome/renderer/render_process.h"
16 #include "gfx/native_widget_types.h" 15 #include "gfx/native_widget_types.h"
17 #include "gfx/point.h" 16 #include "gfx/point.h"
18 #include "gfx/rect.h" 17 #include "gfx/rect.h"
19 #include "gfx/size.h" 18 #include "gfx/size.h"
20 #include "ipc/ipc_channel.h" 19 #include "ipc/ipc_channel.h"
21 #include "ipc/ipc_channel_handle.h"
22 #include "skia/ext/platform_canvas.h" 20 #include "skia/ext/platform_canvas.h"
23 #include "third_party/skia/include/core/SkBitmap.h" 21 #include "third_party/skia/include/core/SkBitmap.h"
24 #include "third_party/WebKit/WebKit/chromium/public/WebCompositionCommand.h" 22 #include "third_party/WebKit/WebKit/chromium/public/WebCompositionCommand.h"
25 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h" 23 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h"
26 #include "third_party/WebKit/WebKit/chromium/public/WebTextDirection.h" 24 #include "third_party/WebKit/WebKit/chromium/public/WebTextDirection.h"
27 #include "third_party/WebKit/WebKit/chromium/public/WebWidgetClient.h" 25 #include "third_party/WebKit/WebKit/chromium/public/WebWidgetClient.h"
28 #include "webkit/glue/webcursor.h" 26 #include "webkit/glue/webcursor.h"
29 27
30 class RenderThreadBase; 28 class RenderThreadBase;
31 struct ViewHostMsg_ShowPopup_Params; 29 struct ViewHostMsg_ShowPopup_Params;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 // Called when a plugin window has been destroyed, to make sure the currently 98 // Called when a plugin window has been destroyed, to make sure the currently
101 // pending moves don't try to reference it. 99 // pending moves don't try to reference it.
102 void CleanupWindowInPluginMoves(gfx::PluginWindowHandle window); 100 void CleanupWindowInPluginMoves(gfx::PluginWindowHandle window);
103 101
104 // Invalidates entire widget rect to generate a full repaint. 102 // Invalidates entire widget rect to generate a full repaint.
105 void GenerateFullRepaint(); 103 void GenerateFullRepaint();
106 104
107 // Close the underlying WebWidget. 105 // Close the underlying WebWidget.
108 virtual void Close(); 106 virtual void Close();
109 107
110 // Asynchronously establish a channel to the GPU plugin if not previously
111 // established or if it has been lost (for example if the GPU plugin crashed).
112 // Use GetGpuChannel() to determine when the channel is ready for use.
113 void EstablishGpuChannel();
114
115 // Get the GPU channel. Returns NULL if the channel is not established or
116 // has been lost.
117 GpuChannelHost* GetGpuChannel();
118
119 protected: 108 protected:
120 // Friend RefCounted so that the dtor can be non-public. Using this class 109 // Friend RefCounted so that the dtor can be non-public. Using this class
121 // without ref-counting is an error. 110 // without ref-counting is an error.
122 friend class base::RefCounted<RenderWidget>; 111 friend class base::RefCounted<RenderWidget>;
123 112
124 RenderWidget(RenderThreadBase* render_thread, bool activatable); 113 RenderWidget(RenderThreadBase* render_thread, bool activatable);
125 virtual ~RenderWidget(); 114 virtual ~RenderWidget();
126 115
127 // Initializes this view with the given opener. CompleteInit must be called 116 // Initializes this view with the given opener. CompleteInit must be called
128 // later. 117 // later.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 void OnHandleInputEvent(const IPC::Message& message); 153 void OnHandleInputEvent(const IPC::Message& message);
165 void OnMouseCaptureLost(); 154 void OnMouseCaptureLost();
166 virtual void OnSetFocus(bool enable); 155 virtual void OnSetFocus(bool enable);
167 void OnImeSetInputMode(bool is_active); 156 void OnImeSetInputMode(bool is_active);
168 void OnImeSetComposition(WebKit::WebCompositionCommand command, 157 void OnImeSetComposition(WebKit::WebCompositionCommand command,
169 int cursor_position, 158 int cursor_position,
170 int target_start, int target_end, 159 int target_start, int target_end,
171 const string16& ime_string); 160 const string16& ime_string);
172 void OnMsgRepaint(const gfx::Size& size_to_paint); 161 void OnMsgRepaint(const gfx::Size& size_to_paint);
173 void OnSetTextDirection(WebKit::WebTextDirection direction); 162 void OnSetTextDirection(WebKit::WebTextDirection direction);
174 void OnGpuChannelEstablished(const IPC::ChannelHandle& channel_handle);
175 163
176 // Override point to notify derived classes that a paint has happened. 164 // Override point to notify derived classes that a paint has happened.
177 // DidInitiatePaint happens when we've generated a new bitmap and sent it to 165 // DidInitiatePaint happens when we've generated a new bitmap and sent it to
178 // the browser. DidFlushPaint happens once we've received the ACK that the 166 // the browser. DidFlushPaint happens once we've received the ACK that the
179 // screen has actually been updated. 167 // screen has actually been updated.
180 virtual void DidInitiatePaint() {} 168 virtual void DidInitiatePaint() {}
181 virtual void DidFlushPaint() {} 169 virtual void DidFlushPaint() {}
182 170
183 // Sets the "hidden" state of this widget. All accesses to is_hidden_ should 171 // Sets the "hidden" state of this widget. All accesses to is_hidden_ should
184 // use this method so that we can properly inform the RenderThread of our 172 // use this method so that we can properly inform the RenderThread of our
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 int pending_window_rect_count_; 313 int pending_window_rect_count_;
326 WebKit::WebRect pending_window_rect_; 314 WebKit::WebRect pending_window_rect_;
327 315
328 scoped_ptr<ViewHostMsg_ShowPopup_Params> popup_params_; 316 scoped_ptr<ViewHostMsg_ShowPopup_Params> popup_params_;
329 317
330 scoped_ptr<IPC::Message> pending_input_event_ack_; 318 scoped_ptr<IPC::Message> pending_input_event_ack_;
331 319
332 // Indicates if the next sequence of Char events should be suppressed or not. 320 // Indicates if the next sequence of Char events should be suppressed or not.
333 bool suppress_next_char_events_; 321 bool suppress_next_char_events_;
334 322
335 // The channel from the renderer process to the GPU process.
336 scoped_refptr<GpuChannelHost> gpu_channel_;
337
338 DISALLOW_COPY_AND_ASSIGN(RenderWidget); 323 DISALLOW_COPY_AND_ASSIGN(RenderWidget);
339 }; 324 };
340 325
341 #endif // CHROME_RENDERER_RENDER_WIDGET_H_ 326 #endif // CHROME_RENDERER_RENDER_WIDGET_H_
OLDNEW
« no previous file with comments | « chrome/renderer/render_thread.cc ('k') | chrome/renderer/render_widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698