|  | // Copyright 2015 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 UI_GFX_BUFFER_FORMAT_UTIL_H_ | 
|  | #define UI_GFX_BUFFER_FORMAT_UTIL_H_ | 
|  |  | 
|  | #include "base/basictypes.h" | 
|  | #include "ui/gfx/buffer_types.h" | 
|  | #include "ui/gfx/geometry/size.h" | 
|  | #include "ui/gfx/gfx_export.h" | 
|  |  | 
|  | namespace gfx { | 
|  |  | 
|  | // Returns the number of planes for |format|. | 
|  | GFX_EXPORT size_t NumberOfPlanesForBufferFormat(BufferFormat format); | 
|  |  | 
|  | // Returns the subsampling factor applied to the given zero-indexed |plane| of | 
|  | // |format| both horizontally and vertically. | 
|  | GFX_EXPORT size_t SubsamplingFactorForBufferFormat( | 
|  | BufferFormat format, int plane); | 
|  |  | 
|  | // Returns the number of bytes used to store a row of the given zero-indexed | 
|  | // |plane| of |format|. | 
|  | GFX_EXPORT size_t RowSizeForBufferFormat( | 
|  | size_t width, gfx::BufferFormat format, int plane); | 
|  | GFX_EXPORT bool RowSizeForBufferFormatChecked( | 
|  | size_t width, gfx::BufferFormat format, int plane, size_t* size_in_bytes) | 
|  | WARN_UNUSED_RESULT; | 
|  |  | 
|  | // Returns the number of bytes used to store all the planes of a given |format|. | 
|  | GFX_EXPORT size_t BufferSizeForBufferFormat( | 
|  | const Size& size, gfx::BufferFormat format); | 
|  | GFX_EXPORT bool BufferSizeForBufferFormatChecked( | 
|  | const Size& size, gfx::BufferFormat format, size_t* size_in_bytes) | 
|  | WARN_UNUSED_RESULT; | 
|  |  | 
|  | }  // namespace gfx | 
|  |  | 
|  | #endif  // UI_GFX_BUFFER_FORMAT_UTIL_H_ |