diff options
author | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-24 21:07:04 +0000 |
---|---|---|
committer | apatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-07-24 21:07:04 +0000 |
commit | b162911f11fa5cd5c3aa3c2006906e8b338207c6 (patch) | |
tree | e57a245f0c942c8248126207a4b769d41681dd2e /ui/surface | |
parent | c0b18bf810bfea966ab7ed1cc991d67eac9be85d (diff) | |
download | chromium_src-b162911f11fa5cd5c3aa3c2006906e8b338207c6.zip chromium_src-b162911f11fa5cd5c3aa3c2006906e8b338207c6.tar.gz chromium_src-b162911f11fa5cd5c3aa3c2006906e8b338207c6.tar.bz2 |
Always reverse rows prior to presenting in AcceleratedSurface on Windows.
We aren't using it any the non-reversed path for anything now.
Review URL: https://chromiumcodereview.appspot.com/10804028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148197 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/surface')
-rw-r--r-- | ui/surface/accelerated_surface_win.cc | 88 | ||||
-rw-r--r-- | ui/surface/accelerated_surface_win.h | 3 |
2 files changed, 34 insertions, 57 deletions
diff --git a/ui/surface/accelerated_surface_win.cc b/ui/surface/accelerated_surface_win.cc index 9167e9d..da77ac5 100644 --- a/ui/surface/accelerated_surface_win.cc +++ b/ui/surface/accelerated_surface_win.cc @@ -34,8 +34,6 @@ typedef HRESULT (WINAPI *Direct3DCreate9ExFunc)(UINT sdk_version, const wchar_t kD3D9ModuleName[] = L"d3d9.dll"; const char kCreate3D9DeviceExName[] = "Direct3DCreate9Ex"; -const char kReverseImageTransportSurfaceRows[] = - "reverse-image-transport-surface-rows"; struct Vertex { float x, y, z, w; @@ -400,8 +398,6 @@ AcceleratedPresenter::AcceleratedPresenter(gfx::NativeWindow window) window_(window), event_(false, false), hidden_(true) { - reverse_rows_ = CommandLine::ForCurrentProcess()->HasSwitch( - kReverseImageTransportSurfaceRows); } scoped_refptr<AcceleratedPresenter> AcceleratedPresenter::GetForWindow( @@ -755,62 +751,46 @@ void AcceleratedPresenter::DoPresentAndAcknowledge( { TRACE_EVENT0("gpu", "Copy"); - if (!reverse_rows_) { - // Use a simple pixel / vertex shader pair to render a quad that flips the - // source texture on the vertical axis. - IDirect3DSurface9 *default_render_target = NULL; - present_thread_->device()->GetRenderTarget(0, &default_render_target); - - present_thread_->device()->SetRenderTarget(0, dest_surface); - present_thread_->device()->SetTexture(0, source_texture_); - - D3DVIEWPORT9 viewport = { - 0, 0, - size.width(), size.height(), - 0, 1 - }; - present_thread_->device()->SetViewport(&viewport); - - float halfPixelX = -1.0f / size.width(); - float halfPixelY = 1.0f / size.height(); - Vertex vertices[] = { - { halfPixelX - 1, halfPixelY + 1, 0.5f, 1, 0, 1 }, - { halfPixelX + 1, halfPixelY + 1, 0.5f, 1, 1, 1 }, - { halfPixelX + 1, halfPixelY - 1, 0.5f, 1, 1, 0 }, - { halfPixelX - 1, halfPixelY - 1, 0.5f, 1, 0, 0 } - }; - - present_thread_->device()->BeginScene(); - present_thread_->device()->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, - arraysize(vertices), - vertices, - sizeof(vertices[0])); - present_thread_->device()->EndScene(); - - present_thread_->device()->SetTexture(0, NULL); - present_thread_->device()->SetRenderTarget(0, default_render_target); - default_render_target->Release(); - } else { - // Copy the source texture directly into the swap chain without reversing - // the rows. - hr = present_thread_->device()->StretchRect(source_surface, - &rect, - dest_surface, - &rect, - D3DTEXF_NONE); - if (FAILED(hr)) - return; - } + // Use a simple pixel / vertex shader pair to render a quad that flips the + // source texture on the vertical axis. + IDirect3DSurface9 *default_render_target = NULL; + present_thread_->device()->GetRenderTarget(0, &default_render_target); + + present_thread_->device()->SetRenderTarget(0, dest_surface); + present_thread_->device()->SetTexture(0, source_texture_); + + D3DVIEWPORT9 viewport = { + 0, 0, + size.width(), size.height(), + 0, 1 + }; + present_thread_->device()->SetViewport(&viewport); + + float halfPixelX = -1.0f / size.width(); + float halfPixelY = 1.0f / size.height(); + Vertex vertices[] = { + { halfPixelX - 1, halfPixelY + 1, 0.5f, 1, 0, 1 }, + { halfPixelX + 1, halfPixelY + 1, 0.5f, 1, 1, 1 }, + { halfPixelX + 1, halfPixelY - 1, 0.5f, 1, 1, 0 }, + { halfPixelX - 1, halfPixelY - 1, 0.5f, 1, 0, 0 } + }; + + present_thread_->device()->BeginScene(); + present_thread_->device()->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, + arraysize(vertices), + vertices, + sizeof(vertices[0])); + present_thread_->device()->EndScene(); + + present_thread_->device()->SetTexture(0, NULL); + present_thread_->device()->SetRenderTarget(0, default_render_target); + default_render_target->Release(); } hr = present_thread_->query()->Issue(D3DISSUE_END); if (FAILED(hr)) return; - // Flush so the StretchRect can be processed by the GPU while the window is - // being resized. - present_thread_->query()->GetData(NULL, 0, D3DGETDATA_FLUSH); - present_size_ = size; // Wait for the StretchRect to complete before notifying the GPU process diff --git a/ui/surface/accelerated_surface_win.h b/ui/surface/accelerated_surface_win.h index f612908..2abf0ce 100644 --- a/ui/surface/accelerated_surface_win.h +++ b/ui/surface/accelerated_surface_win.h @@ -102,9 +102,6 @@ class SURFACE_EXPORT AcceleratedPresenter // are used so it is possible to represent it to quickly validate the window. base::win::ScopedComPtr<IDirect3DSwapChain9> swap_chain_; - // Whether surfaces are flipped vertically prior to presentation. - bool reverse_rows_; - bool hidden_; DISALLOW_COPY_AND_ASSIGN(AcceleratedPresenter); |