// 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,
  PROTECTED_SCANOUT_VDA_WRITE,
  GPU_READ_CPU_READ_WRITE,
  SCANOUT_VEA_CPU_READ,
  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;
};
