| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/browser/compositor/gpu_surfaceless_browser_compositor_output_s
     urface.h" | 5 #include "content/browser/compositor/gpu_surfaceless_browser_compositor_output_s
     urface.h" | 
| 6 | 6 | 
| 7 #include <utility> | 7 #include <utility> | 
| 8 | 8 | 
| 9 #include "cc/output/compositor_frame.h" | 9 #include "cc/output/compositor_frame.h" | 
| 10 #include "cc/output/output_surface_client.h" | 10 #include "cc/output/output_surface_client.h" | 
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 79   DCHECK(buffer_queue_); | 79   DCHECK(buffer_queue_); | 
| 80   buffer_queue_->PageFlipComplete(); | 80   buffer_queue_->PageFlipComplete(); | 
| 81   GpuBrowserCompositorOutputSurface::OnSwapBuffersComplete(); | 81   GpuBrowserCompositorOutputSurface::OnSwapBuffersComplete(); | 
| 82 } | 82 } | 
| 83 | 83 | 
| 84 void GpuSurfacelessBrowserCompositorOutputSurface::BindFramebuffer() { | 84 void GpuSurfacelessBrowserCompositorOutputSurface::BindFramebuffer() { | 
| 85   DCHECK(buffer_queue_); | 85   DCHECK(buffer_queue_); | 
| 86   buffer_queue_->BindFramebuffer(); | 86   buffer_queue_->BindFramebuffer(); | 
| 87 } | 87 } | 
| 88 | 88 | 
|  | 89 GLenum GpuSurfacelessBrowserCompositorOutputSurface:: | 
|  | 90     GetFramebufferCopyTextureFormat() { | 
|  | 91   return buffer_queue_->internal_format(); | 
|  | 92 } | 
|  | 93 | 
| 89 void GpuSurfacelessBrowserCompositorOutputSurface::Reshape( | 94 void GpuSurfacelessBrowserCompositorOutputSurface::Reshape( | 
| 90     const gfx::Size& size, | 95     const gfx::Size& size, | 
| 91     float scale_factor, | 96     float scale_factor, | 
| 92     bool alpha) { | 97     bool alpha) { | 
| 93   GpuBrowserCompositorOutputSurface::Reshape(size, scale_factor, alpha); | 98   GpuBrowserCompositorOutputSurface::Reshape(size, scale_factor, alpha); | 
| 94   DCHECK(buffer_queue_); | 99   DCHECK(buffer_queue_); | 
| 95   buffer_queue_->Reshape(SurfaceSize(), scale_factor); | 100   buffer_queue_->Reshape(SurfaceSize(), scale_factor); | 
| 96 } | 101 } | 
| 97 | 102 | 
| 98 void GpuSurfacelessBrowserCompositorOutputSurface::OnGpuSwapBuffersCompleted( | 103 void GpuSurfacelessBrowserCompositorOutputSurface::OnGpuSwapBuffersCompleted( | 
| 99     const std::vector<ui::LatencyInfo>& latency_info, | 104     const std::vector<ui::LatencyInfo>& latency_info, | 
| 100     gfx::SwapResult result, | 105     gfx::SwapResult result, | 
| 101     const gpu::GpuProcessHostedCALayerTreeParamsMac* params_mac) { | 106     const gpu::GpuProcessHostedCALayerTreeParamsMac* params_mac) { | 
| 102   bool force_swap = false; | 107   bool force_swap = false; | 
| 103   if (result == gfx::SwapResult::SWAP_NAK_RECREATE_BUFFERS) { | 108   if (result == gfx::SwapResult::SWAP_NAK_RECREATE_BUFFERS) { | 
| 104     // Even through the swap failed, this is a fixable error so we can pretend | 109     // Even through the swap failed, this is a fixable error so we can pretend | 
| 105     // it succeeded to the rest of the system. | 110     // it succeeded to the rest of the system. | 
| 106     result = gfx::SwapResult::SWAP_ACK; | 111     result = gfx::SwapResult::SWAP_ACK; | 
| 107     buffer_queue_->RecreateBuffers(); | 112     buffer_queue_->RecreateBuffers(); | 
| 108     force_swap = true; | 113     force_swap = true; | 
| 109   } | 114   } | 
| 110   GpuBrowserCompositorOutputSurface::OnGpuSwapBuffersCompleted( | 115   GpuBrowserCompositorOutputSurface::OnGpuSwapBuffersCompleted( | 
| 111       latency_info, result, params_mac); | 116       latency_info, result, params_mac); | 
| 112   if (force_swap) | 117   if (force_swap) | 
| 113     client_->SetNeedsRedrawRect(gfx::Rect(SurfaceSize())); | 118     client_->SetNeedsRedrawRect(gfx::Rect(SurfaceSize())); | 
| 114 } | 119 } | 
| 115 | 120 | 
| 116 }  // namespace content | 121 }  // namespace content | 
| OLD | NEW | 
|---|