Here is example Code to recreate the problem:
Its build x64 and WITHOUT direct write
#if JUCE_USE_DIRECTWRITE != 0
#error // this example works only when DIRECTWRITE is Disabled
#endif
class MainContentComponent : public Component, public Timer, public Thread
{
public:
//==============================================================================
MainContentComponent()
: Thread("BackgroundThread")
{
setSize(600, 400);
startTimer(1);
}
~MainContentComponent()
{
stopThread(100);
};
void paint (Graphics& g)
{
g.fillAll(Colour(0xff001F36));
g.setFont(Font(16.0f));
g.setColour(Colours::white);
static char s = 0;
s++;
g.drawFittedText(String::createStringFromData(&s, sizeof(s)), 0, 0, 400, 400, Justification::centred, 1, 1.);
if (!isThreadRunning())
{
// Start thread after first use of drawText
startThread();
};
}
void run() override
{
Image testimage(Image::ARGB, 400, 400, false);
Graphics g(testimage);
char s = 128;
while (!threadShouldExit())
{
g.drawFittedText(String::createStringFromData(&s, sizeof(s)), 0, 0, 400, 400, Justification::centred, 1, 1.);
Thread::sleep(1);
};
};
void resized()
{
// This is called when the MainContentComponent is resized.
// If you add any child components, this is where you should
// update their positions.
}
void timerCallback()
{
repaint();
}
private:
//==============================================================================
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent)
};