I'm trying to render a Drawable to an Image with JUCE and not sure why it's not working. In the code below, which doesn't show any errors or warnings, I get a Drawable from an SVG file and draw it to the upper left of the screen (greenImageDrawable -> drawWithin(g, juce::Rectangle<float>(0, 0, 10, 10), juce::RectanglePlacement::centred, 1.0f);). That part works fine. But the Image (greenImage) doesn't appear. I've tried this with various SVG files. I'm suspecting there's something wrong with the line greenImageDrawable -> draw(g, 1.0f);
#pragma once
#include <JuceHeader.h>
class MainComponent : public juce::Component
{
public:
MainComponent() {
setSize (1000, 1000);
juce::File svgFile(GreenSVGName);
greenImageDrawable = juce::Drawable::createFromSVGFile(svgFile);
greenImage = juce::Image(juce::Image::PixelFormat::ARGB, 200, 200, true);
juce::Graphics g(greenImage);
greenImageDrawable -> draw(g, 1.0f);
}
~MainComponent() override {}
//==============================================================================
void paint (juce::Graphics& g) override {
g.fillAll (juce::Colours::white);
greenImageDrawable -> drawWithin(g, juce::Rectangle<float>(0, 0, 10, 10), juce::RectanglePlacement::centred, 1.0f);
g.drawImageAt(greenImage, 100, 100);
}
void resized() override
{
}
private:
juce::Image greenImage;
juce::MouseCursor customCursor;
juce::String GreenSVGName = "/Users/nathanschmidt/Juce Demo/Palestrina/whole_note.svg";
std::unique_ptr<juce::Drawable> greenImageDrawable;
//==============================================================================
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainComponent)
};