// 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 "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,
  GPU_READ_CPU_READ_WRITE,
  SCANOUT_VEA_READ_CAMERA_AND_CPU_READ_WRITE,
};

struct BufferUsageAndFormat {
  BufferUsage usage;
  BufferFormat format;
};

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

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