naiveproxy/services/ui/public/interfaces/gpu.mojom
2018-01-28 13:32:06 -05:00

42 lines
1.7 KiB
Plaintext

// 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/mojo/interfaces/jpeg_decode_accelerator.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.
EstablishGpuChannel() => (int32 client_id,
handle<message_pipe>? 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.JpegDecodeAccelerator& 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);
};