We are building a plugin using the JUCE framework (mac only for now). We have two GUI controls that are constantly updated (A VU meter and a curve display).
We initialise a timer in the PluginEditor (which is a Timer object) constructor
In the PluginEditor::timerCallback() function we call setValue of our Components. This means that the Graphics::drawImageAt is called every 50ms for our two components.
When we use the Instruments Time Profiler, we notice that Graphics::drawImageAt is consuming a substantial amount of CPU. It results in a call of Graphics::drawImageTransformed, resulting in CoreGraphicsContext::drawImage.
I've included a snippet from the Time Profiler, which shows that the application takes 33 percent of its time (which includes dsp of the plugin etc.) drawing images.
From the code it looks like a choice has been made that a transform can be applied at all times. However, we are using an image exclusively for offscreen rendering, which does not require the ability to transform. We miss the ability to draw (a part of) an image whithout an AffineTransform, which we suppose to be much more efficient.