openshot-audio  0.1.7
juce_LowLevelGraphicsContext.h
Go to the documentation of this file.
1 /*
2  ==============================================================================
3 
4  This file is part of the JUCE library.
5  Copyright (c) 2015 - ROLI Ltd.
6 
7  Permission is granted to use this software under the terms of either:
8  a) the GPL v2 (or any later version)
9  b) the Affero GPL v3
10 
11  Details of these licenses can be found at: www.gnu.org/licenses
12 
13  JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
14  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15  A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16 
17  ------------------------------------------------------------------------------
18 
19  To release a closed-source product which uses JUCE, commercial licenses are
20  available: visit www.juce.com for more information.
21 
22  ==============================================================================
23 */
24 
25 #ifndef JUCE_LOWLEVELGRAPHICSCONTEXT_H_INCLUDED
26 #define JUCE_LOWLEVELGRAPHICSCONTEXT_H_INCLUDED
27 
28 
29 //==============================================================================
44 {
45 protected:
46  //==============================================================================
48 
49 public:
50  virtual ~LowLevelGraphicsContext();
51 
53  virtual bool isVectorDevice() const = 0;
54 
55  //==============================================================================
61  virtual void setOrigin (Point<int>) = 0;
62  virtual void addTransform (const AffineTransform&) = 0;
63  virtual float getPhysicalPixelScaleFactor() = 0;
64 
65  virtual bool clipToRectangle (const Rectangle<int>&) = 0;
66  virtual bool clipToRectangleList (const RectangleList<int>&) = 0;
67  virtual void excludeClipRectangle (const Rectangle<int>&) = 0;
68  virtual void clipToPath (const Path&, const AffineTransform&) = 0;
69  virtual void clipToImageAlpha (const Image&, const AffineTransform&) = 0;
70 
71  virtual bool clipRegionIntersects (const Rectangle<int>&) = 0;
72  virtual Rectangle<int> getClipBounds() const = 0;
73  virtual bool isClipEmpty() const = 0;
74 
75  virtual void saveState() = 0;
76  virtual void restoreState() = 0;
77 
78  virtual void beginTransparencyLayer (float opacity) = 0;
79  virtual void endTransparencyLayer() = 0;
80 
81  //==============================================================================
82  virtual void setFill (const FillType&) = 0;
83  virtual void setOpacity (float) = 0;
84  virtual void setInterpolationQuality (Graphics::ResamplingQuality) = 0;
85 
86  //==============================================================================
87  virtual void fillRect (const Rectangle<int>&, bool replaceExistingContents) = 0;
88  virtual void fillRect (const Rectangle<float>&) = 0;
89  virtual void fillRectList (const RectangleList<float>&) = 0;
90  virtual void fillPath (const Path&, const AffineTransform&) = 0;
91  virtual void drawImage (const Image&, const AffineTransform&) = 0;
92  virtual void drawLine (const Line<float>&) = 0;
93 
94  virtual void setFont (const Font&) = 0;
95  virtual const Font& getFont() = 0;
96  virtual void drawGlyph (int glyphNumber, const AffineTransform&) = 0;
97  virtual bool drawTextLayout (const AttributedString&, const Rectangle<float>&) { return false; }
98 };
99 
100 
101 #endif // JUCE_LOWLEVELGRAPHICSCONTEXT_H_INCLUDED
ResamplingQuality
Definition: juce_GraphicsContext.h:465
Definition: juce_Font.h:39
Definition: juce_Line.h:44
#define JUCE_API
Definition: juce_StandardHeader.h:139
Definition: juce_Rectangle.h:36
Definition: juce_Path.h:62
virtual bool drawTextLayout(const AttributedString &, const Rectangle< float > &)
Definition: juce_LowLevelGraphicsContext.h:97
Definition: juce_AttributedString.h:39
Definition: juce_FillType.h:38
Definition: juce_Image.h:54
Definition: juce_LowLevelGraphicsContext.h:43
Definition: juce_AffineTransform.h:40