d4fbe9f22e53baa5507f5614e87e61a1bf862683
[platform/core/uifw/lottie-player.git] / src / vector / vpainter.h
1 /* 
2  * Copyright (c) 2018 Samsung Electronics Co., Ltd. All rights reserved.
3  * 
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  * 
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  * 
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17  */
18
19 #ifndef VPAINTER_H
20 #define VPAINTER_H
21
22 #include "vbrush.h"
23 #include "vpoint.h"
24 #include "vrle.h"
25
26 V_BEGIN_NAMESPACE
27
28 class VBitmap;
29 class VPainterImpl;
30 class VPainter {
31 public:
32     enum CompositionMode { CompModeSrc, CompModeSrcOver };
33     ~VPainter();
34     VPainter();
35     VPainter(VBitmap *buffer);
36     bool  begin(VBitmap *buffer);
37     void  end();
38     void  setBrush(const VBrush &brush);
39     void  drawRle(const VPoint &pos, const VRle &rle);
40     void  drawRle(const VRle &rle, const VRle &clip);
41     VRect clipBoundingRect() const;
42
43 private:
44     VPainterImpl *mImpl;
45 };
46
47 V_END_NAMESPACE
48
49 #endif  // VPAINTER_H