Sign in with
Sign up | Sign in

Tom2D: Stretching

Part 2: 2D, Acceleration, And Windows: Aren't All Graphics Cards Equal?
By , Igor Wallossek

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.

Stretching benchmarkStretching benchmark

Test Content:

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:

CreateCompatibleDC
CreateDIBSection
SelectObject
DeleteObject

Summary:

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.

React To This Article