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

Side by Side Diff: gpu/gpu_plugin/gpu_plugin_object_win.cc

Issue 465040: Added CommandBufferClient, CommandBufferStub and some IPC messages.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years 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 | « gpu/gpu_plugin/gpu_plugin_object_unittest.cc ('k') | gpu/gpu_plugin/gpu_plugin_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <windows.h>
6
7 #include "gpu/command_buffer/service/gpu_processor.h"
8 #include "gpu/gpu_plugin/gpu_plugin_object.h"
9
10 namespace gpu_plugin {
11
12 namespace {
13 const LPCTSTR kPluginObjectProperty = TEXT("GPUPluginObject");
14 const LPCTSTR kOriginalWindowProc = TEXT("GPUPluginObjectOriginalWindowProc");
15
16 LRESULT CALLBACK WindowProc(HWND handle,
17 UINT message,
18 WPARAM w_param,
19 LPARAM l_param) {
20 return ::DefWindowProc(handle, message, w_param, l_param);
21 }
22 } // namespace anonymous
23
24 NPError GPUPluginObject::PlatformSpecificSetWindow(NPWindow* new_window) {
25 // Detach properties from old window and restore the original window proc.
26 if (window_.window) {
27 HWND handle = reinterpret_cast<HWND>(window_.window);
28 ::RemoveProp(handle, kPluginObjectProperty);
29
30 LONG original_window_proc = reinterpret_cast<LONG>(
31 ::GetProp(handle, kOriginalWindowProc));
32 ::SetWindowLong(handle, GWL_WNDPROC,
33 original_window_proc);
34 ::RemoveProp(handle, kOriginalWindowProc);
35 }
36
37 // Attach properties to new window and set a new window proc.
38 if (new_window->window) {
39 HWND handle = reinterpret_cast<HWND>(new_window->window);
40 ::SetProp(handle,
41 kPluginObjectProperty,
42 reinterpret_cast<HANDLE>(this));
43
44 LONG original_window_proc = ::GetWindowLong(handle, GWL_WNDPROC);
45 ::SetProp(handle,
46 kOriginalWindowProc,
47 reinterpret_cast<HANDLE>(original_window_proc));
48 ::SetWindowLong(handle, GWL_WNDPROC,
49 reinterpret_cast<LONG>(WindowProc));
50
51 status_ = kWaitingForOpenCommandBuffer;
52 } else {
53 status_ = kWaitingForSetWindow;
54 if (processor_) {
55 processor_->Destroy();
56 }
57 }
58
59 return NPERR_NO_ERROR;
60 }
61
62 } // namespace gpu_plugin
OLDNEW
« no previous file with comments | « gpu/gpu_plugin/gpu_plugin_object_unittest.cc ('k') | gpu/gpu_plugin/gpu_plugin_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698