// 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.
};

