In a 2D graphics context, stretching should be understood to mean a transform-and-copy operation on bitmap contents into other bitmaps. This is how device-dependent image clips can be transferred around and their dimensions altered as part of the copying process.
A total of 10,000 image clips ranging in size from 1x1 to 500x500 pixels are copied, then transformed and rendered in a randomly chosen position on the display area that also ranges from 1x1 to 500x500 pixels in size (stretched). We alternated the same direct copy methods as the previous test (copy, invert, and paint). As always, the random seed stays constant, so all test runs produce the same graphics information. And again, all objects are constrained to fit within the display area, so no clipping need be performed.
GDI Functions Called
Direct block level transfers for stretch operations:
StretchBlt (copy, invert, paint)
Buffered block level transfers via the DIB buffer:
From out of nowhere, the old Voodoo 4500 jumps to the front and and leaves all the other graphics cards in the test field eating dust.
Whereas the Radeon HD 5870 running XP for buffered output makes it to the middle of the pack, the GeForce GTX 285 is a total disappointment when it comes to blitting in that same operating system.
- Introduction: Why GDI Output For 2D Graphics Remains Relevant
- The 2D GDI For Windows XP Through Windows 7, In Detail
- 2D Graphics Output Using GDI: Direct Or Buffered?
- The Radeon HD 5000's Symptoms And Their Relevance To Windows 7
- Tom2D: Our Simple 2D GDI Benchmark
- Tom2D: Text Output
- Tom2D: Line Output
- Tom2D Splines/Bézier Curves
- Tom2D: Polygons
- Tom2D: Rectangles
- Tom2D: Ellipses
- Tom2D: Blitting
- Tom2D: Stretching
- UPDATE: ATI Steps Up With A Hotfixed Driver