blob: de1e6cdbee255357ceb985d75ced61e50a90c21d [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of ui;
abstract class Scene {
Future<Image> toImage(int width, int height);
void dispose();
}
abstract class TransformEngineLayer implements EngineLayer {}
abstract class OffsetEngineLayer implements EngineLayer {}
abstract class ClipRectEngineLayer implements EngineLayer {}
abstract class ClipRRectEngineLayer implements EngineLayer {}
abstract class ClipPathEngineLayer implements EngineLayer {}
abstract class OpacityEngineLayer implements EngineLayer {}
abstract class ColorFilterEngineLayer implements EngineLayer {}
abstract class ImageFilterEngineLayer implements EngineLayer {}
abstract class BackdropFilterEngineLayer implements EngineLayer {}
abstract class ShaderMaskEngineLayer implements EngineLayer {}
abstract class PhysicalShapeEngineLayer implements EngineLayer {}
abstract class SceneBuilder {
factory SceneBuilder() {
if (engine.useCanvasKit) {
return engine.LayerSceneBuilder();
} else {
return engine.SurfaceSceneBuilder();
}
}
OffsetEngineLayer pushOffset(
double dx,
double dy, {
OffsetEngineLayer? oldLayer,
});
TransformEngineLayer pushTransform(
Float64List matrix4, {
TransformEngineLayer? oldLayer,
});
ClipRectEngineLayer pushClipRect(
Rect rect, {
Clip clipBehavior = Clip.antiAlias,
ClipRectEngineLayer? oldLayer,
});
ClipRRectEngineLayer pushClipRRect(
RRect rrect, {
required Clip clipBehavior,
ClipRRectEngineLayer? oldLayer,
});
ClipPathEngineLayer pushClipPath(
Path path, {
Clip clipBehavior = Clip.antiAlias,
ClipPathEngineLayer? oldLayer,
});
OpacityEngineLayer pushOpacity(
int alpha, {
Offset offset = Offset.zero,
OpacityEngineLayer? oldLayer,
});
ColorFilterEngineLayer pushColorFilter(
ColorFilter filter, {
ColorFilterEngineLayer? oldLayer,
});
ImageFilterEngineLayer pushImageFilter(
ImageFilter filter, {
ImageFilterEngineLayer? oldLayer,
});
BackdropFilterEngineLayer pushBackdropFilter(
ImageFilter filter, {
BlendMode blendMode = BlendMode.srcOver,
BackdropFilterEngineLayer? oldLayer,
});
ShaderMaskEngineLayer pushShaderMask(
Shader shader,
Rect maskRect,
BlendMode blendMode, {
ShaderMaskEngineLayer? oldLayer,
FilterQuality filterQuality = FilterQuality.low,
});
PhysicalShapeEngineLayer pushPhysicalShape({
required Path path,
required double elevation,
required Color color,
Color? shadowColor,
Clip clipBehavior = Clip.none,
PhysicalShapeEngineLayer? oldLayer,
});
void addRetained(EngineLayer retainedLayer);
void pop();
void addPerformanceOverlay(int enabledOptions, Rect bounds);
void addPicture(
Offset offset,
Picture picture, {
bool isComplexHint = false,
bool willChangeHint = false,
});
void addTexture(
int textureId, {
Offset offset = Offset.zero,
double width = 0.0,
double height = 0.0,
bool freeze = false,
FilterQuality filterQuality = FilterQuality.low,
});
void addPlatformView(
int viewId, {
Offset offset = Offset.zero,
double width = 0.0,
double height = 0.0,
});
void setRasterizerTracingThreshold(int frameInterval);
void setCheckerboardRasterCacheImages(bool checkerboard);
void setCheckerboardOffscreenLayers(bool checkerboard);
Scene build();
void setProperties(
double width,
double height,
double insetTop,
double insetRight,
double insetBottom,
double insetLeft,
bool focusable,
);
}
class EngineLayer {
void dispose() {}
}