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

Side by Side Diff: content/renderer/android/synchronous_compositor_output_surface.cc

Issue 2188943002: Remove OutputSurfaceClient external clip (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: viewport -> viewport_size Created 4 years, 4 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/renderer/android/synchronous_compositor_output_surface.h" 5 #include "content/renderer/android/synchronous_compositor_output_surface.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after
295 NOTREACHED(); 295 NOTREACHED();
296 } 296 }
297 297
298 uint32_t SynchronousCompositorOutputSurface::GetFramebufferCopyTextureFormat() { 298 uint32_t SynchronousCompositorOutputSurface::GetFramebufferCopyTextureFormat() {
299 // This is a delegating output surface, no framebuffer/direct drawing support. 299 // This is a delegating output surface, no framebuffer/direct drawing support.
300 NOTREACHED(); 300 NOTREACHED();
301 return 0; 301 return 0;
302 } 302 }
303 303
304 void SynchronousCompositorOutputSurface::DemandDrawHw( 304 void SynchronousCompositorOutputSurface::DemandDrawHw(
305 const gfx::Size& surface_size, 305 const gfx::Size& viewport_size,
306 const gfx::Transform& transform,
307 const gfx::Rect& viewport,
308 const gfx::Rect& clip,
309 const gfx::Rect& viewport_rect_for_tile_priority, 306 const gfx::Rect& viewport_rect_for_tile_priority,
310 const gfx::Transform& transform_for_tile_priority) { 307 const gfx::Transform& transform_for_tile_priority) {
311 DCHECK(CalledOnValidThread()); 308 DCHECK(CalledOnValidThread());
312 DCHECK(HasClient()); 309 DCHECK(HasClient());
313 DCHECK(context_provider_.get()); 310 DCHECK(context_provider_.get());
314 CancelFallbackTick(); 311 CancelFallbackTick();
315 312
316 client_->SetExternalTilePriorityConstraints(viewport_rect_for_tile_priority, 313 client_->SetExternalTilePriorityConstraints(viewport_rect_for_tile_priority,
317 transform_for_tile_priority); 314 transform_for_tile_priority);
318 InvokeComposite(transform, viewport, clip); 315 InvokeComposite(gfx::Transform(), gfx::Rect(viewport_size));
319 } 316 }
320 317
321 void SynchronousCompositorOutputSurface::DemandDrawSw(SkCanvas* canvas) { 318 void SynchronousCompositorOutputSurface::DemandDrawSw(SkCanvas* canvas) {
322 DCHECK(CalledOnValidThread()); 319 DCHECK(CalledOnValidThread());
323 DCHECK(canvas); 320 DCHECK(canvas);
324 DCHECK(!current_sw_canvas_); 321 DCHECK(!current_sw_canvas_);
325 CancelFallbackTick(); 322 CancelFallbackTick();
326 323
327 base::AutoReset<SkCanvas*> canvas_resetter(&current_sw_canvas_, canvas); 324 base::AutoReset<SkCanvas*> canvas_resetter(&current_sw_canvas_, canvas);
328 325
329 SkIRect canvas_clip; 326 SkIRect canvas_clip;
330 canvas->getClipDeviceBounds(&canvas_clip); 327 canvas->getClipDeviceBounds(&canvas_clip);
331 gfx::Rect clip = gfx::SkIRectToRect(canvas_clip); 328 gfx::Rect viewport = gfx::SkIRectToRect(canvas_clip);
332 329
333 gfx::Transform transform(gfx::Transform::kSkipInitialization); 330 gfx::Transform transform(gfx::Transform::kSkipInitialization);
334 transform.matrix() = canvas->getTotalMatrix(); // Converts 3x3 matrix to 4x4. 331 transform.matrix() = canvas->getTotalMatrix(); // Converts 3x3 matrix to 4x4.
335 332
336 base::AutoReset<bool> set_in_software_draw(&in_software_draw_, true); 333 base::AutoReset<bool> set_in_software_draw(&in_software_draw_, true);
337 display_->SetExternalViewport(clip); 334 display_->SetExternalViewport(viewport);
338 display_->SetExternalClip(clip); 335 display_->SetExternalClip(viewport);
339 software_output_surface_->SetSurfaceSize( 336 software_output_surface_->SetSurfaceSize(
340 gfx::SkISizeToSize(canvas->getBaseLayerSize())); 337 gfx::SkISizeToSize(canvas->getBaseLayerSize()));
341 InvokeComposite(transform, clip, clip); 338 InvokeComposite(transform, viewport);
342 } 339 }
343 340
344 void SynchronousCompositorOutputSurface::InvokeComposite( 341 void SynchronousCompositorOutputSurface::InvokeComposite(
345 const gfx::Transform& transform, 342 const gfx::Transform& transform,
346 const gfx::Rect& viewport, 343 const gfx::Rect& viewport) {
347 const gfx::Rect& clip) {
348 gfx::Transform adjusted_transform = transform; 344 gfx::Transform adjusted_transform = transform;
349 adjusted_transform.matrix().postTranslate(-viewport.x(), -viewport.y(), 0); 345 adjusted_transform.matrix().postTranslate(-viewport.x(), -viewport.y(), 0);
350 did_swap_ = false; 346 did_swap_ = false;
351 client_->OnDraw(adjusted_transform, viewport, clip, in_software_draw_); 347 client_->OnDraw(adjusted_transform, viewport, in_software_draw_);
352 348
353 if (did_swap_) { 349 if (did_swap_) {
354 // This must happen after unwinding the stack and leaving the compositor. 350 // This must happen after unwinding the stack and leaving the compositor.
355 // Usually it is a separate task but we just defer it until OnDraw completes 351 // Usually it is a separate task but we just defer it until OnDraw completes
356 // instead. 352 // instead.
357 client_->DidSwapBuffersComplete(); 353 client_->DidSwapBuffersComplete();
358 } 354 }
359 } 355 }
360 356
361 void SynchronousCompositorOutputSurface::OnReclaimResources( 357 void SynchronousCompositorOutputSurface::OnReclaimResources(
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
422 client_->ReclaimResources(resources); 418 client_->ReclaimResources(resources);
423 } 419 }
424 420
425 void SynchronousCompositorOutputSurface::SetBeginFrameSource( 421 void SynchronousCompositorOutputSurface::SetBeginFrameSource(
426 cc::BeginFrameSource* begin_frame_source) { 422 cc::BeginFrameSource* begin_frame_source) {
427 // Software output is synchronous and doesn't use a BeginFrameSource. 423 // Software output is synchronous and doesn't use a BeginFrameSource.
428 NOTREACHED(); 424 NOTREACHED();
429 } 425 }
430 426
431 } // namespace content 427 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698