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

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

Issue 6462034: Refactor how surfaces are acquired for GPU compositing. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove unnecessary include. Created 9 years, 10 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/render_widget_host_view_win.h" 5 #include "chrome/browser/renderer_host/render_widget_host_view_win.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
(...skipping 1527 matching lines...) Expand 10 before | Expand all | Expand 10 after
1538 PaintCompositorHostWindow(hWnd); 1538 PaintCompositorHostWindow(hWnd);
1539 return 0; 1539 return 0;
1540 default: 1540 default:
1541 return DefWindowProc(hWnd, message, wParam, lParam); 1541 return DefWindowProc(hWnd, message, wParam, lParam);
1542 } 1542 }
1543 } 1543 }
1544 1544
1545 // Creates a HWND within the RenderWidgetHostView that will serve as a host 1545 // Creates a HWND within the RenderWidgetHostView that will serve as a host
1546 // for a HWND that the GPU process will create. The host window is used 1546 // for a HWND that the GPU process will create. The host window is used
1547 // to Z-position the GPU's window relative to other plugin windows. 1547 // to Z-position the GPU's window relative to other plugin windows.
1548 gfx::PluginWindowHandle RenderWidgetHostViewWin::GetCompositorHostWindow() { 1548 gfx::PluginWindowHandle RenderWidgetHostViewWin::AcquireCompositingSurface() {
1549 // If the window has been created, don't recreate it a second time 1549 // If the window has been created, don't recreate it a second time
1550 if (compositor_host_window_) 1550 if (compositor_host_window_)
1551 return compositor_host_window_; 1551 return compositor_host_window_;
1552 1552
1553 static ATOM window_class = 0; 1553 static ATOM window_class = 0;
1554 if (!window_class) { 1554 if (!window_class) {
1555 WNDCLASSEX wcex; 1555 WNDCLASSEX wcex;
1556 wcex.cbSize = sizeof(WNDCLASSEX); 1556 wcex.cbSize = sizeof(WNDCLASSEX);
1557 wcex.style = 0; 1557 wcex.style = 0;
1558 wcex.lpfnWndProc = CompositorHostWindowProc; 1558 wcex.lpfnWndProc = CompositorHostWindowProc;
(...skipping 18 matching lines...) Expand all
1577 compositor_host_window_ = CreateWindowEx( 1577 compositor_host_window_ = CreateWindowEx(
1578 WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR, 1578 WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR,
1579 MAKEINTATOM(window_class), 0, 1579 MAKEINTATOM(window_class), 0,
1580 WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_DISABLED, 1580 WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_DISABLED,
1581 0, 0, width, height, m_hWnd, 0, GetModuleHandle(NULL), 0); 1581 0, 0, width, height, m_hWnd, 0, GetModuleHandle(NULL), 0);
1582 DCHECK(compositor_host_window_); 1582 DCHECK(compositor_host_window_);
1583 1583
1584 return static_cast<gfx::PluginWindowHandle>(compositor_host_window_); 1584 return static_cast<gfx::PluginWindowHandle>(compositor_host_window_);
1585 } 1585 }
1586 1586
1587 void RenderWidgetHostViewWin::ReleaseCompositingSurface(
1588 gfx::PluginWindowHandle surface) {
1589 ShowCompositorHostWindow(false);
1590 }
1591
1587 void RenderWidgetHostViewWin::ShowCompositorHostWindow(bool show) { 1592 void RenderWidgetHostViewWin::ShowCompositorHostWindow(bool show) {
1588 // When we first create the compositor, we will get a show request from 1593 // When we first create the compositor, we will get a show request from
1589 // the renderer before we have gotten the create request from the GPU. In this 1594 // the renderer before we have gotten the create request from the GPU. In this
1590 // case, simply ignore the show request. 1595 // case, simply ignore the show request.
1591 if (compositor_host_window_ == NULL) 1596 if (compositor_host_window_ == NULL)
1592 return; 1597 return;
1593 1598
1594 if (show) { 1599 if (show) {
1595 UINT flags = SWP_NOSENDCHANGING | SWP_NOCOPYBITS | SWP_NOZORDER | 1600 UINT flags = SWP_NOSENDCHANGING | SWP_NOCOPYBITS | SWP_NOZORDER |
1596 SWP_NOACTIVATE | SWP_DEFERERASE | SWP_SHOWWINDOW; 1601 SWP_NOACTIVATE | SWP_DEFERERASE | SWP_SHOWWINDOW;
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
1809 } 1814 }
1810 1815
1811 // static 1816 // static
1812 RenderWidgetHostView* 1817 RenderWidgetHostView*
1813 RenderWidgetHostView::GetRenderWidgetHostViewFromNativeView( 1818 RenderWidgetHostView::GetRenderWidgetHostViewFromNativeView(
1814 gfx::NativeView native_view) { 1819 gfx::NativeView native_view) {
1815 return ::IsWindow(native_view) ? 1820 return ::IsWindow(native_view) ?
1816 reinterpret_cast<RenderWidgetHostView*>( 1821 reinterpret_cast<RenderWidgetHostView*>(
1817 ViewProp::GetValue(native_view, kRenderWidgetHostViewKey)) : NULL; 1822 ViewProp::GetValue(native_view, kRenderWidgetHostViewKey)) : NULL;
1818 } 1823 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_widget_host_view_win.h ('k') | chrome/browser/renderer_host/test/test_render_view_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698