diff options
Diffstat (limited to 'chromium/content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.h')
-rw-r--r-- | chromium/content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/chromium/content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.h b/chromium/content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.h new file mode 100644 index 00000000000..c1cbfc3c319 --- /dev/null +++ b/chromium/content/common/gpu/client/gpu_memory_buffer_impl_surface_texture.h @@ -0,0 +1,44 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_COMMON_GPU_CLIENT_GPU_MEMORY_BUFFER_IMPL_SURFACE_TEXTURE_H_ +#define CONTENT_COMMON_GPU_CLIENT_GPU_MEMORY_BUFFER_IMPL_SURFACE_TEXTURE_H_ + +#include "content/common/gpu/client/gpu_memory_buffer_impl.h" + +struct ANativeWindow; + +namespace content { + +// Implementation of GPU memory buffer based on SurfaceTextures. +class GpuMemoryBufferImplSurfaceTexture : public GpuMemoryBufferImpl { + public: + GpuMemoryBufferImplSurfaceTexture(const gfx::Size& size, + unsigned internalformat); + virtual ~GpuMemoryBufferImplSurfaceTexture(); + + static bool IsFormatSupported(unsigned internalformat); + static bool IsUsageSupported(unsigned usage); + static bool IsConfigurationSupported(unsigned internalformat, unsigned usage); + static int WindowFormat(unsigned internalformat); + + bool InitializeFromHandle(gfx::GpuMemoryBufferHandle handle); + + // Overridden from gfx::GpuMemoryBuffer: + virtual void* Map() OVERRIDE; + virtual void Unmap() OVERRIDE; + virtual gfx::GpuMemoryBufferHandle GetHandle() const OVERRIDE; + virtual uint32 GetStride() const OVERRIDE; + + private: + gfx::SurfaceTextureId surface_texture_id_; + ANativeWindow* native_window_; + size_t stride_; + + DISALLOW_COPY_AND_ASSIGN(GpuMemoryBufferImplSurfaceTexture); +}; + +} // namespace content + +#endif // CONTENT_COMMON_GPU_CLIENT_GPU_MEMORY_BUFFER_IMPL_SURFACE_TEXTURE_H_ |