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

Unified Diff: ui/surface/accelerated_surface_transformer_win.cc

Issue 12090109: Tab Capture: Backing store readbacks to YV12 VideoFrames. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Style fix per wjia Created 7 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 side-by-side diff with in-line comments
Download patch
Index: ui/surface/accelerated_surface_transformer_win.cc
diff --git a/ui/surface/accelerated_surface_transformer_win.cc b/ui/surface/accelerated_surface_transformer_win.cc
index 694f1695faceb753b808b1fe36ff1dbb515125f5..30fd1af23f476facfa4531913a9e95c6bfd64987 100644
--- a/ui/surface/accelerated_surface_transformer_win.cc
+++ b/ui/surface/accelerated_surface_transformer_win.cc
@@ -69,8 +69,7 @@ class ScopedRenderTargetRestorer {
// by repeating downsampling of the image of |src_subrect| by a factor no more
// than 2.
int GetResampleCount(const gfx::Rect& src_subrect,
- const gfx::Size& dst_size,
- const gfx::Size& back_buffer_size) {
+ const gfx::Size& dst_size) {
// At least one copy is required, since the back buffer itself is not
// lockable.
int min_resample_count = 1;
@@ -319,17 +318,17 @@ void AcceleratedSurfaceTransformer::DrawScreenAlignedQuad(
bool AcceleratedSurfaceTransformer::ResizeBilinear(
IDirect3DSurface9* src_surface,
const gfx::Rect& src_subrect,
- IDirect3DSurface9* dst_surface) {
- gfx::Size src_size = d3d_utils::GetSize(src_surface);
- gfx::Size dst_size = d3d_utils::GetSize(dst_surface);
+ IDirect3DSurface9* dst_surface,
+ const gfx::Rect& dst_rect) {
+ gfx::Size src_size = src_subrect.size();
+ gfx::Size dst_size = dst_rect.size();
if (src_size.IsEmpty() || dst_size.IsEmpty())
return false;
HRESULT hr = S_OK;
// Set up intermediate buffers needed for downsampling.
- const int resample_count =
- GetResampleCount(src_subrect, dst_size, src_size);
+ const int resample_count = GetResampleCount(src_subrect, dst_size);
base::win::ScopedComPtr<IDirect3DSurface9> temp_buffer[2];
const gfx::Size half_size =
GetHalfSizeNoLessThan(src_subrect.size(), dst_size);
@@ -360,10 +359,16 @@ bool AcceleratedSurfaceTransformer::ResizeBilinear(
TRACE_EVENT0("gpu", "StretchRect");
IDirect3DSurface9* read_buffer =
(i == 0) ? src_surface : temp_buffer[read_buffer_index];
- IDirect3DSurface9* write_buffer =
- (i == resample_count - 1) ? dst_surface :
- temp_buffer[write_buffer_index];
- RECT write_rect = gfx::Rect(write_size).ToRECT();
+ IDirect3DSurface9* write_buffer;
+ RECT write_rect;
+ if (i == resample_count - 1) {
+ write_buffer = dst_surface;
+ write_rect = dst_rect.ToRECT();
+ } else {
+ write_buffer = temp_buffer[write_buffer_index];
+ write_rect = gfx::Rect(write_size).ToRECT();
+ }
+
hr = device()->StretchRect(read_buffer,
&read_rect,
write_buffer,
« no previous file with comments | « ui/surface/accelerated_surface_transformer_win.h ('k') | ui/surface/accelerated_surface_transformer_win_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698