chromium/out/Default/gen/gpu/ipc/common/gpu_channel.mojom-shared.h

// gpu/ipc/common/gpu_channel.mojom-shared.h is auto generated by mojom_bindings_generator.py, do not edit

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

#ifndef GPU_IPC_COMMON_GPU_CHANNEL_MOJOM_SHARED_H_
#define GPU_IPC_COMMON_GPU_CHANNEL_MOJOM_SHARED_H_

#include <stdint.h>

#include <functional>
#include <iosfwd>
#include <type_traits>
#include <utility>
#include "mojo/public/cpp/bindings/array_data_view.h"
#include "mojo/public/cpp/bindings/enum_traits.h"
#include "mojo/public/cpp/bindings/interface_data_view.h"
#include "mojo/public/cpp/bindings/lib/bindings_internal.h"
#include "mojo/public/cpp/bindings/lib/serialization.h"
#include "mojo/public/cpp/bindings/map_data_view.h"
#include "mojo/public/cpp/bindings/string_data_view.h"

#include "third_party/perfetto/include/perfetto/tracing/traced_value_forward.h"

#include "gpu/ipc/common/gpu_channel.mojom-shared-internal.h"
#include "gpu/ipc/common/capabilities.mojom-shared.h"
#include "gpu/ipc/common/context_result.mojom-shared.h"
#include "gpu/ipc/common/mailbox.mojom-shared.h"
#include "gpu/ipc/common/shared_image_metadata.mojom-shared.h"
#include "gpu/ipc/common/surface_handle.mojom-shared.h"
#include "gpu/ipc/common/sync_token.mojom-shared.h"
#include "gpu/ipc/common/vulkan_ycbcr_info.mojom-shared.h"
#include "mojo/public/mojom/base/shared_memory.mojom-shared.h"
#include "mojo/public/mojom/base/unguessable_token.mojom-shared.h"
#include "services/viz/public/mojom/compositing/shared_image_format.mojom-shared.h"
#include "skia/public/mojom/image_info.mojom-shared.h"
#include "skia/public/mojom/surface_origin.mojom-shared.h"
#include "ui/gfx/geometry/mojom/geometry.mojom-shared.h"
#include "ui/gfx/mojom/buffer_types.mojom-shared.h"
#include "ui/gfx/mojom/color_space.mojom-shared.h"
#include "ui/gfx/mojom/gpu_fence_handle.mojom-shared.h"
#include "ui/gfx/mojom/native_handle_types.mojom-shared.h"
#include "ui/gfx/mojom/presentation_feedback.mojom-shared.h"
#include "ui/gl/mojom/gpu_preference.mojom-shared.h"
#include "url/mojom/url.mojom-shared.h"
#include "mojo/public/cpp/bindings/lib/interface_serialization.h"
#include "mojo/public/cpp/system/data_pipe.h"


#include "mojo/public/cpp/bindings/native_enum.h"
#include "mojo/public/cpp/bindings/lib/native_struct_serialization.h"
#include "base/component_export.h"




namespace gpu::mojom {
class ContextCreationAttribsDataView;

class CreateCommandBufferParamsDataView;

class CommandBufferStateDataView;

class ScheduleImageDecodeParamsDataView;

SwapBuffersCompleteParamsDataView;

class DeferredRequestDataView;

class DeferredCommandBufferRequestDataView;

class AsyncFlushParamsDataView;

class SetDefaultFramebufferSharedImageParamsDataView;

class SharedImageInfoDataView;

class CreateSharedImageParamsDataView;

class CreateSharedImageWithDataParamsDataView;

class CreateSharedImageWithBufferParamsDataView;

class UpdateSharedImageParamsDataView;

class AddReferenceToSharedImageParamsDataView;

class CopyToGpuMemoryBufferParamsDataView;

class DeferredRequestParamsDataView;
class DeferredCommandBufferRequestParamsDataView;
class DeferredSharedImageRequestDataView;


}  // gpu::mojom

namespace mojo {
namespace internal {

template <>
struct MojomTypeTraits<::gpu::mojom::ContextCreationAttribsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::CreateCommandBufferParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::CommandBufferStateDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::ScheduleImageDecodeParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::DeferredRequestDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::DeferredCommandBufferRequestDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::AsyncFlushParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::SetDefaultFramebufferSharedImageParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::SharedImageInfoDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::CreateSharedImageParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::CreateSharedImageWithDataParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::CreateSharedImageWithBufferParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::UpdateSharedImageParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::AddReferenceToSharedImageParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::CopyToGpuMemoryBufferParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::DeferredRequestParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::DeferredCommandBufferRequestParamsDataView> {};

template <>
struct MojomTypeTraits<::gpu::mojom::DeferredSharedImageRequestDataView> {};

}  // namespace internal
}  // namespace mojo


namespace gpumojom  // gpu::mojom

namespace std {

template <>
struct hash<::gpu::mojom::ContextType>
    : public mojo::internal::EnumHashImpl<::gpu::mojom::ContextType> {};

template <>
struct hash<::gpu::mojom::ContextColorSpace>
    : public mojo::internal::EnumHashImpl<::gpu::mojom::ContextColorSpace> {};

template <>
struct hash<::gpu::mojom::SchedulingPriority>
    : public mojo::internal::EnumHashImpl<::gpu::mojom::SchedulingPriority> {};

}  // namespace std

namespace mojo {


namespace internal {

Serializer< ::gpu::mojom::ContextType, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::ContextColorSpace, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::SchedulingPriority, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::ContextCreationAttribsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::CreateCommandBufferParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::CommandBufferStateDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::ScheduleImageDecodeParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::DeferredRequestDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::DeferredCommandBufferRequestDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::AsyncFlushParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::SetDefaultFramebufferSharedImageParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::SharedImageInfoDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::CreateSharedImageParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::CreateSharedImageWithDataParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::CreateSharedImageWithBufferParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::UpdateSharedImageParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::AddReferenceToSharedImageParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::CopyToGpuMemoryBufferParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::DeferredRequestParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::DeferredCommandBufferRequestParamsDataView, MaybeConstUserType>;

}  // namespace internal


namespace internal {

Serializer< ::gpu::mojom::DeferredSharedImageRequestDataView, MaybeConstUserType>;

}  // namespace internal

}  // namespace mojo


namespace gpu::mojom {



inline void CreateCommandBufferParamsDataView::GetAttribsDataView(
    ContextCreationAttribsDataView* output) {}
inline void CreateCommandBufferParamsDataView::GetActiveUrlDataView(
    ::url::mojom::UrlDataView* output) {}




inline void ScheduleImageDecodeParamsDataView::GetEncodedDataDataView(
    mojo::ArrayDataView<uint8_t>* output) {}
inline void ScheduleImageDecodeParamsDataView::GetOutputSizeDataView(
    ::gfx::mojom::SizeDataView* output) {}
inline void ScheduleImageDecodeParamsDataView::GetTargetColorSpaceDataView(
    ::gfx::mojom::ColorSpaceDataView* output) {}


inline void DeferredRequestDataView::GetParamsDataView(
    DeferredRequestParamsDataView* output) {}
inline void DeferredRequestDataView::GetSyncTokenFencesDataView(
    mojo::ArrayDataView<::gpu::mojom::SyncTokenDataView>* output) {}


inline void DeferredCommandBufferRequestDataView::GetParamsDataView(
    DeferredCommandBufferRequestParamsDataView* output) {}


inline void AsyncFlushParamsDataView::GetSyncTokenFencesDataView(
    mojo::ArrayDataView<::gpu::mojom::SyncTokenDataView>* output) {}


inline void SetDefaultFramebufferSharedImageParamsDataView::GetMailboxDataView(
    ::gpu::mojom::MailboxDataView* output) {}


inline void SharedImageInfoDataView::GetMetaDataView(
    ::gpu::mojom::SharedImageMetadataDataView* output) {}
inline void SharedImageInfoDataView::GetDebugLabelDataView(
    mojo::StringDataView* output) {}


inline void CreateSharedImageParamsDataView::GetMailboxDataView(
    ::gpu::mojom::MailboxDataView* output) {}
inline void CreateSharedImageParamsDataView::GetSiInfoDataView(
    SharedImageInfoDataView* output) {}


inline void CreateSharedImageWithDataParamsDataView::GetMailboxDataView(
    ::gpu::mojom::MailboxDataView* output) {}
inline void CreateSharedImageWithDataParamsDataView::GetSiInfoDataView(
    SharedImageInfoDataView* output) {}


inline void CreateSharedImageWithBufferParamsDataView::GetMailboxDataView(
    ::gpu::mojom::MailboxDataView* output) {}
inline void CreateSharedImageWithBufferParamsDataView::GetSiInfoDataView(
    SharedImageInfoDataView* output) {}
inline void CreateSharedImageWithBufferParamsDataView::GetBufferHandleDataView(
    ::gfx::mojom::GpuMemoryBufferHandleDataView* output) {}


inline void UpdateSharedImageParamsDataView::GetMailboxDataView(
    ::gpu::mojom::MailboxDataView* output) {}
inline void UpdateSharedImageParamsDataView::GetInFenceHandleDataView(
    ::gfx::mojom::GpuFenceHandleDataView* output) {}


inline void AddReferenceToSharedImageParamsDataView::GetMailboxDataView(
    ::gpu::mojom::MailboxDataView* output) {}


inline void CopyToGpuMemoryBufferParamsDataView::GetMailboxDataView(
    ::gpu::mojom::MailboxDataView* output) {}


inline void DeferredRequestParamsDataView::GetCommandBufferRequestDataView(
    DeferredCommandBufferRequestDataView* output) const {}
inline void DeferredRequestParamsDataView::GetSharedImageRequestDataView(
    DeferredSharedImageRequestDataView* output) const {}

inline void DeferredCommandBufferRequestParamsDataView::GetAsyncFlushDataView(
    AsyncFlushParamsDataView* output) const {}
inline void DeferredCommandBufferRequestParamsDataView::GetSetDefaultFramebufferSharedImageDataView(
    SetDefaultFramebufferSharedImageParamsDataView* output) const {}

inline void DeferredSharedImageRequestDataView::GetCreateSharedImageDataView(
    CreateSharedImageParamsDataView* output) const {}
inline void DeferredSharedImageRequestDataView::GetCreateSharedImageWithDataDataView(
    CreateSharedImageWithDataParamsDataView* output) const {}
inline void DeferredSharedImageRequestDataView::GetCreateSharedImageWithBufferDataView(
    CreateSharedImageWithBufferParamsDataView* output) const {}
inline void DeferredSharedImageRequestDataView::GetRegisterUploadBufferDataView(
    ::mojo_base::mojom::ReadOnlySharedMemoryRegionDataView* output) const {}
inline void DeferredSharedImageRequestDataView::GetUpdateSharedImageDataView(
    UpdateSharedImageParamsDataView* output) const {}
inline void DeferredSharedImageRequestDataView::GetCopyToGpuMemoryBufferDataView(
    CopyToGpuMemoryBufferParamsDataView* output) const {}
inline void DeferredSharedImageRequestDataView::GetDestroySharedImageDataView(
    ::gpu::mojom::MailboxDataView* output) const {}
inline void DeferredSharedImageRequestDataView::GetAddReferenceToSharedImageDataView(
    AddReferenceToSharedImageParamsDataView* output) const {}


}  // gpu::mojom

// Declare TraceFormatTraits for enums, which should be defined in ::perfetto
// namespace.

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_GPU_EXPORT) TraceFormatTraits<::gpu::mojom::ContextType> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_GPU_EXPORT) TraceFormatTraits<::gpu::mojom::ContextColorSpace> {};

} // namespace perfetto

namespace perfetto {

template <>
struct COMPONENT_EXPORT(MOJOM_SHARED_GPU_EXPORT) TraceFormatTraits<::gpu::mojom::SchedulingPriority> {};

} // namespace perfetto

#endif  // GPU_IPC_COMMON_GPU_CHANNEL_MOJOM_SHARED_H_