migrating to the latest JUCE version
This commit is contained in:
		
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,102 +1,102 @@
 | 
			
		||||
/*
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
 | 
			
		||||
   This file is part of the JUCE library.
 | 
			
		||||
   Copyright (c) 2020 - Raw Material Software Limited
 | 
			
		||||
 | 
			
		||||
   JUCE is an open source library subject to commercial or open-source
 | 
			
		||||
   licensing.
 | 
			
		||||
 | 
			
		||||
   By using JUCE, you agree to the terms of both the JUCE 6 End-User License
 | 
			
		||||
   Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
 | 
			
		||||
 | 
			
		||||
   End User License Agreement: www.juce.com/juce-6-licence
 | 
			
		||||
   Privacy Policy: www.juce.com/juce-privacy-policy
 | 
			
		||||
 | 
			
		||||
   Or: You may also use this code under the terms of the GPL v3 (see
 | 
			
		||||
   www.gnu.org/licenses).
 | 
			
		||||
 | 
			
		||||
   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 | 
			
		||||
   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 | 
			
		||||
   DISCLAIMED.
 | 
			
		||||
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
namespace juce
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
/**
 | 
			
		||||
    Interface class for graphics context objects, used internally by the Graphics class.
 | 
			
		||||
 | 
			
		||||
    Users are not supposed to create instances of this class directly - do your drawing
 | 
			
		||||
    via the Graphics object instead.
 | 
			
		||||
 | 
			
		||||
    It's a base class for different types of graphics context, that may perform software-based
 | 
			
		||||
    or OS-accelerated rendering.
 | 
			
		||||
 | 
			
		||||
    E.g. the LowLevelGraphicsSoftwareRenderer renders onto an image in memory, but other
 | 
			
		||||
    subclasses could render directly to a windows HDC, a Quartz context, or an OpenGL
 | 
			
		||||
    context.
 | 
			
		||||
 | 
			
		||||
    @tags{Graphics}
 | 
			
		||||
*/
 | 
			
		||||
class JUCE_API  LowLevelGraphicsContext
 | 
			
		||||
{
 | 
			
		||||
protected:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    LowLevelGraphicsContext();
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    virtual ~LowLevelGraphicsContext();
 | 
			
		||||
 | 
			
		||||
    /** Returns true if this device is vector-based, e.g. a printer. */
 | 
			
		||||
    virtual bool isVectorDevice() const = 0;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /** Moves the origin to a new position.
 | 
			
		||||
 | 
			
		||||
        The coordinates are relative to the current origin, and indicate the new position
 | 
			
		||||
        of (0, 0).
 | 
			
		||||
    */
 | 
			
		||||
    virtual void setOrigin (Point<int>) = 0;
 | 
			
		||||
    virtual void addTransform (const AffineTransform&) = 0;
 | 
			
		||||
    virtual float getPhysicalPixelScaleFactor() = 0;
 | 
			
		||||
 | 
			
		||||
    virtual bool clipToRectangle (const Rectangle<int>&) = 0;
 | 
			
		||||
    virtual bool clipToRectangleList (const RectangleList<int>&) = 0;
 | 
			
		||||
    virtual void excludeClipRectangle (const Rectangle<int>&) = 0;
 | 
			
		||||
    virtual void clipToPath (const Path&, const AffineTransform&) = 0;
 | 
			
		||||
    virtual void clipToImageAlpha (const Image&, const AffineTransform&) = 0;
 | 
			
		||||
 | 
			
		||||
    virtual bool clipRegionIntersects (const Rectangle<int>&) = 0;
 | 
			
		||||
    virtual Rectangle<int> getClipBounds() const = 0;
 | 
			
		||||
    virtual bool isClipEmpty() const = 0;
 | 
			
		||||
 | 
			
		||||
    virtual void saveState() = 0;
 | 
			
		||||
    virtual void restoreState() = 0;
 | 
			
		||||
 | 
			
		||||
    virtual void beginTransparencyLayer (float opacity) = 0;
 | 
			
		||||
    virtual void endTransparencyLayer() = 0;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    virtual void setFill (const FillType&) = 0;
 | 
			
		||||
    virtual void setOpacity (float) = 0;
 | 
			
		||||
    virtual void setInterpolationQuality (Graphics::ResamplingQuality) = 0;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    virtual void fillRect (const Rectangle<int>&, bool replaceExistingContents) = 0;
 | 
			
		||||
    virtual void fillRect (const Rectangle<float>&) = 0;
 | 
			
		||||
    virtual void fillRectList (const RectangleList<float>&) = 0;
 | 
			
		||||
    virtual void fillPath (const Path&, const AffineTransform&) = 0;
 | 
			
		||||
    virtual void drawImage (const Image&, const AffineTransform&) = 0;
 | 
			
		||||
    virtual void drawLine (const Line<float>&) = 0;
 | 
			
		||||
 | 
			
		||||
    virtual void setFont (const Font&) = 0;
 | 
			
		||||
    virtual const Font& getFont() = 0;
 | 
			
		||||
    virtual void drawGlyph (int glyphNumber, const AffineTransform&) = 0;
 | 
			
		||||
    virtual bool drawTextLayout (const AttributedString&, const Rectangle<float>&)  { return false; }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace juce
 | 
			
		||||
/*
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
 | 
			
		||||
   This file is part of the JUCE library.
 | 
			
		||||
   Copyright (c) 2022 - Raw Material Software Limited
 | 
			
		||||
 | 
			
		||||
   JUCE is an open source library subject to commercial or open-source
 | 
			
		||||
   licensing.
 | 
			
		||||
 | 
			
		||||
   By using JUCE, you agree to the terms of both the JUCE 7 End-User License
 | 
			
		||||
   Agreement and JUCE Privacy Policy.
 | 
			
		||||
 | 
			
		||||
   End User License Agreement: www.juce.com/juce-7-licence
 | 
			
		||||
   Privacy Policy: www.juce.com/juce-privacy-policy
 | 
			
		||||
 | 
			
		||||
   Or: You may also use this code under the terms of the GPL v3 (see
 | 
			
		||||
   www.gnu.org/licenses).
 | 
			
		||||
 | 
			
		||||
   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 | 
			
		||||
   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 | 
			
		||||
   DISCLAIMED.
 | 
			
		||||
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
namespace juce
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
/**
 | 
			
		||||
    Interface class for graphics context objects, used internally by the Graphics class.
 | 
			
		||||
 | 
			
		||||
    Users are not supposed to create instances of this class directly - do your drawing
 | 
			
		||||
    via the Graphics object instead.
 | 
			
		||||
 | 
			
		||||
    It's a base class for different types of graphics context, that may perform software-based
 | 
			
		||||
    or OS-accelerated rendering.
 | 
			
		||||
 | 
			
		||||
    E.g. the LowLevelGraphicsSoftwareRenderer renders onto an image in memory, but other
 | 
			
		||||
    subclasses could render directly to a windows HDC, a Quartz context, or an OpenGL
 | 
			
		||||
    context.
 | 
			
		||||
 | 
			
		||||
    @tags{Graphics}
 | 
			
		||||
*/
 | 
			
		||||
class JUCE_API  LowLevelGraphicsContext
 | 
			
		||||
{
 | 
			
		||||
protected:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    LowLevelGraphicsContext() = default;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    virtual ~LowLevelGraphicsContext() = default;
 | 
			
		||||
 | 
			
		||||
    /** Returns true if this device is vector-based, e.g. a printer. */
 | 
			
		||||
    virtual bool isVectorDevice() const = 0;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /** Moves the origin to a new position.
 | 
			
		||||
 | 
			
		||||
        The coordinates are relative to the current origin, and indicate the new position
 | 
			
		||||
        of (0, 0).
 | 
			
		||||
    */
 | 
			
		||||
    virtual void setOrigin (Point<int>) = 0;
 | 
			
		||||
    virtual void addTransform (const AffineTransform&) = 0;
 | 
			
		||||
    virtual float getPhysicalPixelScaleFactor() = 0;
 | 
			
		||||
 | 
			
		||||
    virtual bool clipToRectangle (const Rectangle<int>&) = 0;
 | 
			
		||||
    virtual bool clipToRectangleList (const RectangleList<int>&) = 0;
 | 
			
		||||
    virtual void excludeClipRectangle (const Rectangle<int>&) = 0;
 | 
			
		||||
    virtual void clipToPath (const Path&, const AffineTransform&) = 0;
 | 
			
		||||
    virtual void clipToImageAlpha (const Image&, const AffineTransform&) = 0;
 | 
			
		||||
 | 
			
		||||
    virtual bool clipRegionIntersects (const Rectangle<int>&) = 0;
 | 
			
		||||
    virtual Rectangle<int> getClipBounds() const = 0;
 | 
			
		||||
    virtual bool isClipEmpty() const = 0;
 | 
			
		||||
 | 
			
		||||
    virtual void saveState() = 0;
 | 
			
		||||
    virtual void restoreState() = 0;
 | 
			
		||||
 | 
			
		||||
    virtual void beginTransparencyLayer (float opacity) = 0;
 | 
			
		||||
    virtual void endTransparencyLayer() = 0;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    virtual void setFill (const FillType&) = 0;
 | 
			
		||||
    virtual void setOpacity (float) = 0;
 | 
			
		||||
    virtual void setInterpolationQuality (Graphics::ResamplingQuality) = 0;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    virtual void fillRect (const Rectangle<int>&, bool replaceExistingContents) = 0;
 | 
			
		||||
    virtual void fillRect (const Rectangle<float>&) = 0;
 | 
			
		||||
    virtual void fillRectList (const RectangleList<float>&) = 0;
 | 
			
		||||
    virtual void fillPath (const Path&, const AffineTransform&) = 0;
 | 
			
		||||
    virtual void drawImage (const Image&, const AffineTransform&) = 0;
 | 
			
		||||
    virtual void drawLine (const Line<float>&) = 0;
 | 
			
		||||
 | 
			
		||||
    virtual void setFont (const Font&) = 0;
 | 
			
		||||
    virtual const Font& getFont() = 0;
 | 
			
		||||
    virtual void drawGlyph (int glyphNumber, const AffineTransform&) = 0;
 | 
			
		||||
    virtual bool drawTextLayout (const AttributedString&, const Rectangle<float>&)  { return false; }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace juce
 | 
			
		||||
 
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,119 +1,117 @@
 | 
			
		||||
/*
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
 | 
			
		||||
   This file is part of the JUCE library.
 | 
			
		||||
   Copyright (c) 2020 - Raw Material Software Limited
 | 
			
		||||
 | 
			
		||||
   JUCE is an open source library subject to commercial or open-source
 | 
			
		||||
   licensing.
 | 
			
		||||
 | 
			
		||||
   By using JUCE, you agree to the terms of both the JUCE 6 End-User License
 | 
			
		||||
   Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
 | 
			
		||||
 | 
			
		||||
   End User License Agreement: www.juce.com/juce-6-licence
 | 
			
		||||
   Privacy Policy: www.juce.com/juce-privacy-policy
 | 
			
		||||
 | 
			
		||||
   Or: You may also use this code under the terms of the GPL v3 (see
 | 
			
		||||
   www.gnu.org/licenses).
 | 
			
		||||
 | 
			
		||||
   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 | 
			
		||||
   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 | 
			
		||||
   DISCLAIMED.
 | 
			
		||||
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
namespace juce
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
/**
 | 
			
		||||
    An implementation of LowLevelGraphicsContext that turns the drawing operations
 | 
			
		||||
    into a PostScript document.
 | 
			
		||||
 | 
			
		||||
    @tags{Graphics}
 | 
			
		||||
*/
 | 
			
		||||
class JUCE_API  LowLevelGraphicsPostScriptRenderer    : public LowLevelGraphicsContext
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    LowLevelGraphicsPostScriptRenderer (OutputStream& resultingPostScript,
 | 
			
		||||
                                        const String& documentTitle,
 | 
			
		||||
                                        int totalWidth,
 | 
			
		||||
                                        int totalHeight);
 | 
			
		||||
 | 
			
		||||
    ~LowLevelGraphicsPostScriptRenderer() override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    bool isVectorDevice() const override;
 | 
			
		||||
    void setOrigin (Point<int>) override;
 | 
			
		||||
    void addTransform (const AffineTransform&) override;
 | 
			
		||||
    float getPhysicalPixelScaleFactor() override;
 | 
			
		||||
 | 
			
		||||
    bool clipToRectangle (const Rectangle<int>&) override;
 | 
			
		||||
    bool clipToRectangleList (const RectangleList<int>&) override;
 | 
			
		||||
    void excludeClipRectangle (const Rectangle<int>&) override;
 | 
			
		||||
    void clipToPath (const Path&, const AffineTransform&) override;
 | 
			
		||||
    void clipToImageAlpha (const Image&, const AffineTransform&) override;
 | 
			
		||||
 | 
			
		||||
    void saveState() override;
 | 
			
		||||
    void restoreState() override;
 | 
			
		||||
 | 
			
		||||
    void beginTransparencyLayer (float) override;
 | 
			
		||||
    void endTransparencyLayer() override;
 | 
			
		||||
 | 
			
		||||
    bool clipRegionIntersects (const Rectangle<int>&) override;
 | 
			
		||||
    Rectangle<int> getClipBounds() const override;
 | 
			
		||||
    bool isClipEmpty() const override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void setFill (const FillType&) override;
 | 
			
		||||
    void setOpacity (float) override;
 | 
			
		||||
    void setInterpolationQuality (Graphics::ResamplingQuality) override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void fillRect (const Rectangle<int>&, bool replaceExistingContents) override;
 | 
			
		||||
    void fillRect (const Rectangle<float>&) override;
 | 
			
		||||
    void fillRectList (const RectangleList<float>&) override;
 | 
			
		||||
    void fillPath (const Path&, const AffineTransform&) override;
 | 
			
		||||
    void drawImage (const Image&, const AffineTransform&) override;
 | 
			
		||||
    void drawLine (const Line <float>&) override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    const Font& getFont() override;
 | 
			
		||||
    void setFont (const Font&) override;
 | 
			
		||||
    void drawGlyph (int glyphNumber, const AffineTransform&) override;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    OutputStream& out;
 | 
			
		||||
    int totalWidth, totalHeight;
 | 
			
		||||
    bool needToClip;
 | 
			
		||||
    Colour lastColour;
 | 
			
		||||
 | 
			
		||||
    /** Describes a saved state */
 | 
			
		||||
    struct SavedState
 | 
			
		||||
    {
 | 
			
		||||
        SavedState();
 | 
			
		||||
        SavedState& operator= (const SavedState&) = delete;
 | 
			
		||||
        ~SavedState();
 | 
			
		||||
 | 
			
		||||
        RectangleList<int> clip;
 | 
			
		||||
        int xOffset, yOffset;
 | 
			
		||||
        FillType fillType;
 | 
			
		||||
        Font font;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    OwnedArray<SavedState> stateStack;
 | 
			
		||||
 | 
			
		||||
    void writeClip();
 | 
			
		||||
    void writeColour (Colour colour);
 | 
			
		||||
    void writePath (const Path&) const;
 | 
			
		||||
    void writeXY (float x, float y) const;
 | 
			
		||||
    void writeTransform (const AffineTransform&) const;
 | 
			
		||||
    void writeImage (const Image&, int sx, int sy, int maxW, int maxH) const;
 | 
			
		||||
 | 
			
		||||
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LowLevelGraphicsPostScriptRenderer)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace juce
 | 
			
		||||
/*
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
 | 
			
		||||
   This file is part of the JUCE library.
 | 
			
		||||
   Copyright (c) 2022 - Raw Material Software Limited
 | 
			
		||||
 | 
			
		||||
   JUCE is an open source library subject to commercial or open-source
 | 
			
		||||
   licensing.
 | 
			
		||||
 | 
			
		||||
   By using JUCE, you agree to the terms of both the JUCE 7 End-User License
 | 
			
		||||
   Agreement and JUCE Privacy Policy.
 | 
			
		||||
 | 
			
		||||
   End User License Agreement: www.juce.com/juce-7-licence
 | 
			
		||||
   Privacy Policy: www.juce.com/juce-privacy-policy
 | 
			
		||||
 | 
			
		||||
   Or: You may also use this code under the terms of the GPL v3 (see
 | 
			
		||||
   www.gnu.org/licenses).
 | 
			
		||||
 | 
			
		||||
   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 | 
			
		||||
   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 | 
			
		||||
   DISCLAIMED.
 | 
			
		||||
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
namespace juce
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
/**
 | 
			
		||||
    An implementation of LowLevelGraphicsContext that turns the drawing operations
 | 
			
		||||
    into a PostScript document.
 | 
			
		||||
 | 
			
		||||
    @tags{Graphics}
 | 
			
		||||
*/
 | 
			
		||||
class JUCE_API  LowLevelGraphicsPostScriptRenderer    : public LowLevelGraphicsContext
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    LowLevelGraphicsPostScriptRenderer (OutputStream& resultingPostScript,
 | 
			
		||||
                                        const String& documentTitle,
 | 
			
		||||
                                        int totalWidth,
 | 
			
		||||
                                        int totalHeight);
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    bool isVectorDevice() const override;
 | 
			
		||||
    void setOrigin (Point<int>) override;
 | 
			
		||||
    void addTransform (const AffineTransform&) override;
 | 
			
		||||
    float getPhysicalPixelScaleFactor() override;
 | 
			
		||||
 | 
			
		||||
    bool clipToRectangle (const Rectangle<int>&) override;
 | 
			
		||||
    bool clipToRectangleList (const RectangleList<int>&) override;
 | 
			
		||||
    void excludeClipRectangle (const Rectangle<int>&) override;
 | 
			
		||||
    void clipToPath (const Path&, const AffineTransform&) override;
 | 
			
		||||
    void clipToImageAlpha (const Image&, const AffineTransform&) override;
 | 
			
		||||
 | 
			
		||||
    void saveState() override;
 | 
			
		||||
    void restoreState() override;
 | 
			
		||||
 | 
			
		||||
    void beginTransparencyLayer (float) override;
 | 
			
		||||
    void endTransparencyLayer() override;
 | 
			
		||||
 | 
			
		||||
    bool clipRegionIntersects (const Rectangle<int>&) override;
 | 
			
		||||
    Rectangle<int> getClipBounds() const override;
 | 
			
		||||
    bool isClipEmpty() const override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void setFill (const FillType&) override;
 | 
			
		||||
    void setOpacity (float) override;
 | 
			
		||||
    void setInterpolationQuality (Graphics::ResamplingQuality) override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    void fillRect (const Rectangle<int>&, bool replaceExistingContents) override;
 | 
			
		||||
    void fillRect (const Rectangle<float>&) override;
 | 
			
		||||
    void fillRectList (const RectangleList<float>&) override;
 | 
			
		||||
    void fillPath (const Path&, const AffineTransform&) override;
 | 
			
		||||
    void drawImage (const Image&, const AffineTransform&) override;
 | 
			
		||||
    void drawLine (const Line <float>&) override;
 | 
			
		||||
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    const Font& getFont() override;
 | 
			
		||||
    void setFont (const Font&) override;
 | 
			
		||||
    void drawGlyph (int glyphNumber, const AffineTransform&) override;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    OutputStream& out;
 | 
			
		||||
    int totalWidth, totalHeight;
 | 
			
		||||
    bool needToClip;
 | 
			
		||||
    Colour lastColour;
 | 
			
		||||
 | 
			
		||||
    /** Describes a saved state */
 | 
			
		||||
    struct SavedState
 | 
			
		||||
    {
 | 
			
		||||
        SavedState();
 | 
			
		||||
        SavedState (const SavedState&) = default;
 | 
			
		||||
        SavedState& operator= (const SavedState&) = delete;
 | 
			
		||||
 | 
			
		||||
        RectangleList<int> clip;
 | 
			
		||||
        int xOffset, yOffset;
 | 
			
		||||
        FillType fillType;
 | 
			
		||||
        Font font;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    OwnedArray<SavedState> stateStack;
 | 
			
		||||
 | 
			
		||||
    void writeClip();
 | 
			
		||||
    void writeColour (Colour colour);
 | 
			
		||||
    void writePath (const Path&) const;
 | 
			
		||||
    void writeXY (float x, float y) const;
 | 
			
		||||
    void writeTransform (const AffineTransform&) const;
 | 
			
		||||
    void writeImage (const Image&, int sx, int sy, int maxW, int maxH) const;
 | 
			
		||||
 | 
			
		||||
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LowLevelGraphicsPostScriptRenderer)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace juce
 | 
			
		||||
 
 | 
			
		||||
@@ -1,44 +1,44 @@
 | 
			
		||||
/*
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
 | 
			
		||||
   This file is part of the JUCE library.
 | 
			
		||||
   Copyright (c) 2020 - Raw Material Software Limited
 | 
			
		||||
 | 
			
		||||
   JUCE is an open source library subject to commercial or open-source
 | 
			
		||||
   licensing.
 | 
			
		||||
 | 
			
		||||
   By using JUCE, you agree to the terms of both the JUCE 6 End-User License
 | 
			
		||||
   Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
 | 
			
		||||
 | 
			
		||||
   End User License Agreement: www.juce.com/juce-6-licence
 | 
			
		||||
   Privacy Policy: www.juce.com/juce-privacy-policy
 | 
			
		||||
 | 
			
		||||
   Or: You may also use this code under the terms of the GPL v3 (see
 | 
			
		||||
   www.gnu.org/licenses).
 | 
			
		||||
 | 
			
		||||
   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 | 
			
		||||
   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 | 
			
		||||
   DISCLAIMED.
 | 
			
		||||
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
namespace juce
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
LowLevelGraphicsSoftwareRenderer::LowLevelGraphicsSoftwareRenderer (const Image& image)
 | 
			
		||||
    : RenderingHelpers::StackBasedLowLevelGraphicsContext<RenderingHelpers::SoftwareRendererSavedState>
 | 
			
		||||
        (new RenderingHelpers::SoftwareRendererSavedState (image, image.getBounds()))
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
LowLevelGraphicsSoftwareRenderer::LowLevelGraphicsSoftwareRenderer (const Image& image, Point<int> origin,
 | 
			
		||||
                                                                    const RectangleList<int>& initialClip)
 | 
			
		||||
    : RenderingHelpers::StackBasedLowLevelGraphicsContext<RenderingHelpers::SoftwareRendererSavedState>
 | 
			
		||||
        (new RenderingHelpers::SoftwareRendererSavedState (image, initialClip, origin))
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
LowLevelGraphicsSoftwareRenderer::~LowLevelGraphicsSoftwareRenderer() {}
 | 
			
		||||
 | 
			
		||||
} // namespace juce
 | 
			
		||||
/*
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
 | 
			
		||||
   This file is part of the JUCE library.
 | 
			
		||||
   Copyright (c) 2022 - Raw Material Software Limited
 | 
			
		||||
 | 
			
		||||
   JUCE is an open source library subject to commercial or open-source
 | 
			
		||||
   licensing.
 | 
			
		||||
 | 
			
		||||
   By using JUCE, you agree to the terms of both the JUCE 7 End-User License
 | 
			
		||||
   Agreement and JUCE Privacy Policy.
 | 
			
		||||
 | 
			
		||||
   End User License Agreement: www.juce.com/juce-7-licence
 | 
			
		||||
   Privacy Policy: www.juce.com/juce-privacy-policy
 | 
			
		||||
 | 
			
		||||
   Or: You may also use this code under the terms of the GPL v3 (see
 | 
			
		||||
   www.gnu.org/licenses).
 | 
			
		||||
 | 
			
		||||
   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 | 
			
		||||
   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 | 
			
		||||
   DISCLAIMED.
 | 
			
		||||
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
namespace juce
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
LowLevelGraphicsSoftwareRenderer::LowLevelGraphicsSoftwareRenderer (const Image& image)
 | 
			
		||||
    : RenderingHelpers::StackBasedLowLevelGraphicsContext<RenderingHelpers::SoftwareRendererSavedState>
 | 
			
		||||
        (new RenderingHelpers::SoftwareRendererSavedState (image, image.getBounds()))
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
LowLevelGraphicsSoftwareRenderer::LowLevelGraphicsSoftwareRenderer (const Image& image, Point<int> origin,
 | 
			
		||||
                                                                    const RectangleList<int>& initialClip)
 | 
			
		||||
    : RenderingHelpers::StackBasedLowLevelGraphicsContext<RenderingHelpers::SoftwareRendererSavedState>
 | 
			
		||||
        (new RenderingHelpers::SoftwareRendererSavedState (image, initialClip, origin))
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
LowLevelGraphicsSoftwareRenderer::~LowLevelGraphicsSoftwareRenderer() {}
 | 
			
		||||
 | 
			
		||||
} // namespace juce
 | 
			
		||||
 
 | 
			
		||||
@@ -1,57 +1,57 @@
 | 
			
		||||
/*
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
 | 
			
		||||
   This file is part of the JUCE library.
 | 
			
		||||
   Copyright (c) 2020 - Raw Material Software Limited
 | 
			
		||||
 | 
			
		||||
   JUCE is an open source library subject to commercial or open-source
 | 
			
		||||
   licensing.
 | 
			
		||||
 | 
			
		||||
   By using JUCE, you agree to the terms of both the JUCE 6 End-User License
 | 
			
		||||
   Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
 | 
			
		||||
 | 
			
		||||
   End User License Agreement: www.juce.com/juce-6-licence
 | 
			
		||||
   Privacy Policy: www.juce.com/juce-privacy-policy
 | 
			
		||||
 | 
			
		||||
   Or: You may also use this code under the terms of the GPL v3 (see
 | 
			
		||||
   www.gnu.org/licenses).
 | 
			
		||||
 | 
			
		||||
   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 | 
			
		||||
   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 | 
			
		||||
   DISCLAIMED.
 | 
			
		||||
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
namespace juce
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
/**
 | 
			
		||||
    A lowest-common-denominator implementation of LowLevelGraphicsContext that does all
 | 
			
		||||
    its rendering in memory.
 | 
			
		||||
 | 
			
		||||
    User code is not supposed to create instances of this class directly - do all your
 | 
			
		||||
    rendering via the Graphics class instead.
 | 
			
		||||
 | 
			
		||||
    @tags{Graphics}
 | 
			
		||||
*/
 | 
			
		||||
class JUCE_API  LowLevelGraphicsSoftwareRenderer    : public RenderingHelpers::StackBasedLowLevelGraphicsContext<RenderingHelpers::SoftwareRendererSavedState>
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /** Creates a context to render into an image. */
 | 
			
		||||
    LowLevelGraphicsSoftwareRenderer (const Image& imageToRenderOnto);
 | 
			
		||||
 | 
			
		||||
    /** Creates a context to render into a clipped subsection of an image. */
 | 
			
		||||
    LowLevelGraphicsSoftwareRenderer (const Image& imageToRenderOnto, Point<int> origin,
 | 
			
		||||
                                      const RectangleList<int>& initialClip);
 | 
			
		||||
 | 
			
		||||
    /** Destructor. */
 | 
			
		||||
    ~LowLevelGraphicsSoftwareRenderer() override;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LowLevelGraphicsSoftwareRenderer)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace juce
 | 
			
		||||
/*
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
 | 
			
		||||
   This file is part of the JUCE library.
 | 
			
		||||
   Copyright (c) 2022 - Raw Material Software Limited
 | 
			
		||||
 | 
			
		||||
   JUCE is an open source library subject to commercial or open-source
 | 
			
		||||
   licensing.
 | 
			
		||||
 | 
			
		||||
   By using JUCE, you agree to the terms of both the JUCE 7 End-User License
 | 
			
		||||
   Agreement and JUCE Privacy Policy.
 | 
			
		||||
 | 
			
		||||
   End User License Agreement: www.juce.com/juce-7-licence
 | 
			
		||||
   Privacy Policy: www.juce.com/juce-privacy-policy
 | 
			
		||||
 | 
			
		||||
   Or: You may also use this code under the terms of the GPL v3 (see
 | 
			
		||||
   www.gnu.org/licenses).
 | 
			
		||||
 | 
			
		||||
   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 | 
			
		||||
   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 | 
			
		||||
   DISCLAIMED.
 | 
			
		||||
 | 
			
		||||
  ==============================================================================
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
namespace juce
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
//==============================================================================
 | 
			
		||||
/**
 | 
			
		||||
    A lowest-common-denominator implementation of LowLevelGraphicsContext that does all
 | 
			
		||||
    its rendering in memory.
 | 
			
		||||
 | 
			
		||||
    User code is not supposed to create instances of this class directly - do all your
 | 
			
		||||
    rendering via the Graphics class instead.
 | 
			
		||||
 | 
			
		||||
    @tags{Graphics}
 | 
			
		||||
*/
 | 
			
		||||
class JUCE_API  LowLevelGraphicsSoftwareRenderer    : public RenderingHelpers::StackBasedLowLevelGraphicsContext<RenderingHelpers::SoftwareRendererSavedState>
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
    //==============================================================================
 | 
			
		||||
    /** Creates a context to render into an image. */
 | 
			
		||||
    LowLevelGraphicsSoftwareRenderer (const Image& imageToRenderOnto);
 | 
			
		||||
 | 
			
		||||
    /** Creates a context to render into a clipped subsection of an image. */
 | 
			
		||||
    LowLevelGraphicsSoftwareRenderer (const Image& imageToRenderOnto, Point<int> origin,
 | 
			
		||||
                                      const RectangleList<int>& initialClip);
 | 
			
		||||
 | 
			
		||||
    /** Destructor. */
 | 
			
		||||
    ~LowLevelGraphicsSoftwareRenderer() override;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LowLevelGraphicsSoftwareRenderer)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
} // namespace juce
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user