| 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 "android_webview/browser/parent_output_surface.h" | 5 #include "android_webview/browser/parent_output_surface.h" |
| 6 | 6 |
| 7 #include "android_webview/browser/aw_render_thread_context_provider.h" | 7 #include "android_webview/browser/aw_render_thread_context_provider.h" |
| 8 #include "android_webview/browser/scoped_app_gl_state_restore.h" | 8 #include "android_webview/browser/scoped_app_gl_state_restore.h" |
| 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" |
| 11 #include "gpu/command_buffer/client/gles2_interface.h" | 11 #include "gpu/command_buffer/client/gles2_interface.h" |
| 12 | 12 |
| 13 namespace android_webview { | 13 namespace android_webview { |
| 14 | 14 |
| 15 ParentOutputSurface::ParentOutputSurface( | 15 ParentOutputSurface::ParentOutputSurface( |
| 16 scoped_refptr<AwRenderThreadContextProvider> context_provider) | 16 scoped_refptr<AwRenderThreadContextProvider> context_provider) |
| 17 : cc::OutputSurface(std::move(context_provider)) { | 17 : cc::OutputSurface(std::move(context_provider)) { |
| 18 } | 18 } |
| 19 | 19 |
| 20 ParentOutputSurface::~ParentOutputSurface() { | 20 ParentOutputSurface::~ParentOutputSurface() { |
| 21 } | 21 } |
| 22 | 22 |
| 23 void ParentOutputSurface::DidLoseOutputSurface() { | 23 void ParentOutputSurface::DidLoseOutputSurface() { |
| 24 // Android WebView does not handle context loss. | 24 // Android WebView does not handle context loss. |
| 25 LOG(FATAL) << "Render thread context loss"; | 25 LOG(FATAL) << "Render thread context loss"; |
| 26 } | 26 } |
| 27 | 27 |
| 28 void ParentOutputSurface::EnsureBackbuffer() {} |
| 29 |
| 30 void ParentOutputSurface::DiscardBackbuffer() { |
| 31 context_provider()->ContextGL()->DiscardBackbufferCHROMIUM(); |
| 32 } |
| 33 |
| 34 void ParentOutputSurface::BindFramebuffer() { |
| 35 context_provider()->ContextGL()->BindFramebuffer(GL_FRAMEBUFFER, 0); |
| 36 } |
| 37 |
| 28 void ParentOutputSurface::Reshape(const gfx::Size& size, | 38 void ParentOutputSurface::Reshape(const gfx::Size& size, |
| 29 float scale_factor, | 39 float scale_factor, |
| 30 const gfx::ColorSpace& color_space, | 40 const gfx::ColorSpace& color_space, |
| 31 bool has_alpha) { | 41 bool has_alpha) { |
| 32 DCHECK_EQ(1.f, scale_factor); | 42 DCHECK_EQ(1.f, scale_factor); |
| 33 surface_size_ = size; | 43 surface_size_ = size; |
| 34 } | 44 } |
| 35 | 45 |
| 36 void ParentOutputSurface::SwapBuffers(cc::CompositorFrame frame) { | 46 void ParentOutputSurface::SwapBuffers(cc::CompositorFrame frame) { |
| 37 context_provider_->ContextGL()->ShallowFlushCHROMIUM(); | 47 context_provider_->ContextGL()->ShallowFlushCHROMIUM(); |
| (...skipping 24 matching lines...) Expand all Loading... |
| 62 gl->StencilOpSeparate(GL_BACK, stencil_state.stencil_back_fail_op, | 72 gl->StencilOpSeparate(GL_BACK, stencil_state.stencil_back_fail_op, |
| 63 stencil_state.stencil_back_z_fail_op, | 73 stencil_state.stencil_back_z_fail_op, |
| 64 stencil_state.stencil_back_z_pass_op); | 74 stencil_state.stencil_back_z_pass_op); |
| 65 } | 75 } |
| 66 | 76 |
| 67 uint32_t ParentOutputSurface::GetFramebufferCopyTextureFormat() { | 77 uint32_t ParentOutputSurface::GetFramebufferCopyTextureFormat() { |
| 68 auto* gl = static_cast<AwRenderThreadContextProvider*>(context_provider()); | 78 auto* gl = static_cast<AwRenderThreadContextProvider*>(context_provider()); |
| 69 return gl->GetCopyTextureInternalFormat(); | 79 return gl->GetCopyTextureInternalFormat(); |
| 70 } | 80 } |
| 71 | 81 |
| 82 cc::OverlayCandidateValidator* |
| 83 ParentOutputSurface::GetOverlayCandidateValidator() const { |
| 84 return nullptr; |
| 85 } |
| 86 |
| 87 bool ParentOutputSurface::IsDisplayedAsOverlayPlane() const { |
| 88 return false; |
| 89 } |
| 90 |
| 91 unsigned ParentOutputSurface::GetOverlayTextureId() const { |
| 92 return 0; |
| 93 } |
| 94 |
| 95 bool ParentOutputSurface::SurfaceIsSuspendForRecycle() const { |
| 96 return false; |
| 97 } |
| 98 |
| 72 } // namespace android_webview | 99 } // namespace android_webview |
| OLD | NEW |