// Copyright 2015 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.

[
  Constructor(Rect bounds),
] interface SceneBuilder {
  [RaisesException] void pushTransform(Float32List matrix4);
  void pushClipRect(Rect rect);
  void pushClipRRect(RRect rrect, Rect bounds);
  void pushClipPath(Path path, Rect bounds);
  void pushOpacity(long alpha, Rect bounds);
  void pushColorFilter(Color color, TransferMode transferMode, Rect bounds);
  void pop();

  void addPicture(Offset offset, Picture picture, Rect bounds);

  Scene build();
};
