// 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 ui.mojom; import "gpu/ipc/common/gpu_feature_info.mojom"; import "gpu/ipc/common/gpu_info.mojom"; import "gpu/ipc/common/sync_token.mojom"; import "media/gpu/mojo/jpeg_decoder.mojom"; import "media/mojo/interfaces/video_encode_accelerator.mojom"; import "ui/gfx/geometry/mojo/geometry.mojom"; import "ui/gfx/mojo/buffer_types.mojom"; interface Gpu { // Tells the GPU service to create a new channel for communication with a // client. The GPU service responds with client ID, IPC handle and // GPUInfo. [Sync] EstablishGpuChannel() => (int32 client_id, handle? channel_handle, gpu.mojom.GpuInfo gpu_info, gpu.mojom.GpuFeatureInfo gpu_feature_info); // Creates a new JpegDecodeAccelerator and binds it to |jda|. CreateJpegDecodeAccelerator(media.mojom.GpuJpegDecodeAccelerator& jda); // Creates a VideoEncodeAcceleratorProvider and binds it to |vea_provider|. CreateVideoEncodeAcceleratorProvider( media.mojom.VideoEncodeAcceleratorProvider& vea_provider); // Tells the GPU service to create a new GPU memory buffer. CreateGpuMemoryBuffer(gfx.mojom.GpuMemoryBufferId id, gfx.mojom.Size size, gfx.mojom.BufferFormat format, gfx.mojom.BufferUsage usage) => (gfx.mojom.GpuMemoryBufferHandle buffer_handle); // Tells the GPU process to destroy GPU memory buffer. DestroyGpuMemoryBuffer(gfx.mojom.GpuMemoryBufferId id, gpu.mojom.SyncToken sync_token); };