// 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 "ui/gfx/mojo/accelerated_widget.mojom";
import "ui/gfx/mojo/buffer_types.mojom";
import "ui/gfx/mojo/rrect_f.mojom";
import "ui/gfx/mojo/selection_bound.mojom";
import "ui/gfx/mojo/transform.mojom";

// All functions on this interface echo their arguments to test StructTraits
// serialization and deserialization.
interface TraitsTestService {
  [Sync]
  EchoSelectionBound(SelectionBound s) => (SelectionBound pass);

  [Sync]
  EchoTransform(Transform t) => (Transform pass);

  [Sync]
  EchoGpuMemoryBufferHandle(GpuMemoryBufferHandle g)
      => (GpuMemoryBufferHandle pass);

  [Sync]
  EchoRRectF(RRectF t) => (RRectF pass);
};
