| Index: content/browser/renderer_host/render_message_filter.cc
|
| diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
|
| index c5eed716df1c3f21b0a0f300e9f6a7a846406f5f..7b202b7f51065a2eca72a1c1fb59cc7ba20906a1 100644
|
| --- a/content/browser/renderer_host/render_message_filter.cc
|
| +++ b/content/browser/renderer_host/render_message_filter.cc
|
| @@ -92,6 +92,11 @@
|
| #include "media/base/android/webaudio_media_codec_bridge.h"
|
| #endif
|
|
|
| +#if defined(USE_OZONE)
|
| +#include "content/common/gpu/client/gpu_memory_buffer_impl_ozone.h"
|
| +#include "ui/gfx/ozone/surface_factory_ozone.h"
|
| +#endif
|
| +
|
| using net::CookieStore;
|
|
|
| namespace content {
|
| @@ -1254,6 +1259,7 @@ void RenderMessageFilter::OnAllocateGpuMemoryBuffer(
|
| uint32 width,
|
| uint32 height,
|
| uint32 internalformat,
|
| + gfx::GpuMemoryBuffer::Usage usage,
|
| gfx::GpuMemoryBufferHandle* handle) {
|
| if (!GpuMemoryBufferImpl::IsFormatValid(internalformat)) {
|
| handle->type = gfx::EMPTY_BUFFER;
|
| @@ -1321,6 +1327,16 @@ void RenderMessageFilter::OnAllocateGpuMemoryBuffer(
|
| }
|
| #endif
|
|
|
| +#if defined(USE_OZONE)
|
| + if (GpuMemoryBufferImplOzone::IsFormatSupported(internalformat) &&
|
| + usage == gfx::GpuMemoryBuffer::SCANOUT) {
|
| + handle->type = gfx::OZONE_NATIVE_BUFFER;
|
| + handle->ozone_native_buffer =
|
| + gfx::SurfaceFactoryOzone::GetInstance()->CreateNativeBuffer(
|
| + gfx::Size(width, height), gfx::SurfaceFactoryOzone::RGBA_8888);
|
| + }
|
| +#endif
|
| +
|
| uint64 stride = static_cast<uint64>(width) *
|
| GpuMemoryBufferImpl::BytesPerPixel(internalformat);
|
| if (stride > std::numeric_limits<uint32>::max()) {
|
|
|