| // Copyright 2018 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. |
| |
| library fuchsia.sysmem; |
| |
| // Describes how an image is represented. |
| // TODO(ZX-2260): change struct to table |
| struct ImageFormat { |
| // Row width in pixels. |
| uint32 width; |
| |
| // Number of rows. |
| uint32 height; |
| |
| // Number of layers within a multi-layered image. |
| // Defaults to 1 if not specified. |
| uint32 layers = 1; |
| |
| // Pixel format. |
| PixelFormat pixel_format; |
| |
| // Color space. |
| ColorSpace color_space; |
| |
| array<ImagePlane>:4 planes; |
| }; |
| |
| struct ImagePlane { |
| // Byte offset of the start of the plane from the beginning of the image. |
| uint32 byte_offset; |
| |
| // Stride in bytes per row. |
| // Only meaningful for linear buffer formats. |
| uint32 bytes_per_row; |
| }; |
| |
| // Describes constraints for allocating images of some desired form. |
| // TODO(ZX-2260): change struct to table |
| struct ImageSpec { |
| // Minimum width in pixels. |
| uint32 min_width; |
| |
| // Minimum height in pixels. |
| uint32 min_height; |
| |
| // Number of layers within a multi-layered image. |
| // Defaults to 1 if not specified. |
| uint32 layers = 1; |
| |
| // Pixel format. |
| PixelFormat pixel_format; |
| |
| // Color space. |
| ColorSpace color_space; |
| |
| // TODO(ZX-2270): Add tiling formats. |
| }; |
| |