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

Unified Diff: ui/surface/accelerated_surface_win.cc

Issue 10804028: Always reverse rows prior to presenting in AcceleratedSurface on Windows. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/surface/accelerated_surface_win.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/surface/accelerated_surface_win.cc
===================================================================
--- ui/surface/accelerated_surface_win.cc (revision 147444)
+++ ui/surface/accelerated_surface_win.cc (working copy)
@@ -34,8 +34,6 @@
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 @@
window_(window),
event_(false, false),
hidden_(true) {
- reverse_rows_ = CommandLine::ForCurrentProcess()->HasSwitch(
- kReverseImageTransportSurfaceRows);
}
scoped_refptr<AcceleratedPresenter> AcceleratedPresenter::GetForWindow(
@@ -755,62 +751,46 @@
{
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);
+ // 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_);
+ 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);
+ 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 }
- };
+ 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()->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;
- }
+ 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
« no previous file with comments | « ui/surface/accelerated_surface_win.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698