summaryrefslogtreecommitdiffstats
path: root/ui/surface
diff options
context:
space:
mode:
authorapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-24 21:07:04 +0000
committerapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-07-24 21:07:04 +0000
commitb162911f11fa5cd5c3aa3c2006906e8b338207c6 (patch)
treee57a245f0c942c8248126207a4b769d41681dd2e /ui/surface
parentc0b18bf810bfea966ab7ed1cc991d67eac9be85d (diff)
downloadchromium_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.cc88
-rw-r--r--ui/surface/accelerated_surface_win.h3
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);