1// Aseprite
2// Copyright (C) 2019 Igara Studio S.A.
3// Copyright (C) 2001-2015 David Capello
4//
5// This program is distributed under the terms of
6// the End-User License Agreement for Aseprite.
7
8#ifndef APP_FLATTEN_H_INCLUDED
9#define APP_FLATTEN_H_INCLUDED
10#pragma once
11
12#include "gfx/rect.h"
13#include "doc/frame.h"
14
15namespace doc {
16 class Sprite;
17 class Layer;
18 class LayerImage;
19}
20
21namespace app {
22
23 // Returns a new layer with the given layer at "srcLayer" rendered
24 // frame by frame from "frmin" to "frmax" (inclusive). The routine
25 // flattens all children of "srcLayer" to an unique output layer.
26 //
27 // Note: The layer is not added to the given sprite, but is related to
28 // it, so you'll be able to add the flatten layer only into the given
29 // sprite.
30 LayerImage* create_flatten_layer_copy(Sprite* dstSprite, const Layer* srcLayer,
31 const gfx::Rect& bounds,
32 frame_t frmin, frame_t frmax,
33 const bool newBlend);
34
35} // namespace app
36
37#endif
38