// Copyright 2016 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.

module gfx.mojom;

import "media_perception/mojom/native_handle_types.mojom";

// gfx::BufferFormat
enum BufferFormat {
  R_8,
  R_16,
  RG_88,
  BGR_565,
  RGBA_4444,
  RGBX_8888,
  RGBA_8888,
  BGRX_8888,
  BGRA_1010102,
  RGBA_1010102,
  BGRA_8888,
  RGBA_F16,
  YVU_420,
  YUV_420_BIPLANAR,
  P010,
};

// gfx::BufferUsage
enum BufferUsage {
  GPU_READ,
  SCANOUT,
  SCANOUT_CAMERA_READ_WRITE,
  CAMERA_AND_CPU_READ_WRITE,
  SCANOUT_CPU_READ_WRITE,
  SCANOUT_VDA_WRITE,
  PROTECTED_SCANOUT_VDA_WRITE,
  GPU_READ_CPU_READ_WRITE,
  SCANOUT_VEA_CPU_READ,
  VEA_READ_CAMERA_AND_CPU_READ_WRITE,
  SCANOUT_FRONT_RENDERING,
};

struct BufferUsageAndFormat {
  BufferUsage usage;
  BufferFormat format;
};

enum BufferPlane {
  DEFAULT,
  Y,
  UV,
  U,
  V,
};

// gfx::GpuMemoryBufferId
struct GpuMemoryBufferId {
  int32 id;
};

// gfx::GpuMemoryBufferHandle
struct GpuMemoryBufferHandle {
  GpuMemoryBufferId id;
  uint32 offset;
  uint32 stride;
  GpuMemoryBufferPlatformHandle? platform_handle;
};
