chromium/gpu/ipc/common/gpu_disk_cache_type.mojom

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module gpu.mojom;

// Corresponds to C++ type gpu::GpuDiskCacheType
enum GpuDiskCacheType {
  kGlShaders,
  kDawnWebGPU,
  kDawnGraphite,
};

//
// Typed handles
//

// Corresponds to C++ type gpu::GpuDiskCacheGlShaderHandle
struct GpuDiskCacheGlShaderHandle {
  int32 value;
};

// Corresponds to C++ type gpu::GpuDiskCacheDawnWebGPUHandle
struct GpuDiskCacheDawnWebGPUHandle {
  int32 value;
};

// Corresponds to C++ type gpu::GpuDiskCacheDawnGraphiteHandle
struct GpuDiskCacheDawnGraphiteHandle {
  int32 value;
};

//
// Union handle
//

// Corresponds to C++ type gpu::GpuDiskCacheHandle
union GpuDiskCacheHandle {
  GpuDiskCacheGlShaderHandle gl_shader_handle;
  GpuDiskCacheDawnWebGPUHandle dawn_webgpu_handle;
  GpuDiskCacheDawnGraphiteHandle dawn_graphite_handle;
};