Question

An application our company is working on currently displays many rectangle shapes with gradients to draw 'Tiles'. An internal discussion came about that posed a question of performance. These tiles are about 100 pixels by 200 pixels, and are either gradient shaded red, yellow, or green. At any given time, there could be up to 100 of these tiles on screen. Would it be more performant for us to create an image for each (red, yellow, green) and repeat it when needed, or would it be better for us to continue drawing them using standard WPF brushes?

EDIT: To clarify, the gradient brush we're using is a LinearGradientBrush.

Was it helpful?

Solution

From experience, drawing them using brushes will have far better performance. The overhead of loading up the tile images and rendering them is large compared to rendering filled rectangles.

OTHER TIPS

The only way to clear this up would be to try it both ways and measure the performance of each approach.

You'd need to add code to time the render loop and log the result to file, then force a 1000 (or even 100,000) redraws to be able to get a realistic figure.

My gut feeling is that the LinearGradientBrush would be quicker than loading an image (even from resources) - but I'm willing to be proved wrong.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top