BitBlt : Java Glossary

BitBlt
BITBLT (BIT Block Transfer) . It usually refers to copying rectangles of images, either within onscreen images, or from offscreen images to onscreen images most importantly for animation effects or smooth scrolling. The bits to be moved won’t necessarily nicely align on 32-bit boundaries. The GPU (Graphics Processing Unit)s GPU s) inside video cards are specialised for this task. They may have special bitblt instructions to shovel 512 bits around at a pop, shift to deal with any misalignment, and mask to avoid touching surrounding bits. A standard Pentium CPU (Central Processing Unit), in contrast, does bitblts only 32 bits at a time, and has to do the shift and mask as separate operations. The Java VolatileImage class lets you store images inside the video controller’s private non-displaying memory and to manipulate them with its special purpose hardware to blast them onto the screen.

Bitblt is not always associated with animation. Text drawing is usually implemented by having precomposed images of the glyphs in the invisible part of video RAM (Random Access Memory), and using the GPU to bitblt them to the onscreen part.

Java methods that do bitblts include Graphics.drawImage ( Image sourceImg, int destx1, int desty1, int destx2, int desty2, int sourcex1, int sourcey1, int sourcex2, int sourcey2, ImageObserver observer /* usually this */) for copying between images or between image and screen, and Graphics.copyArea(int x, int y, int width, int height, int dx, int dy) for copying regions within an image or from one place on the screen to another. And finally, to capture the screen an as Image, use java.awt.Robot.createScreenCapture Graphics.drawImage will scale if the source and destination rectangles are not the same size. Graphics.copyArea can’t deal with a partially obscured component. The runtime will schedule a complete repaint in that case. Instead of using the repaint mechanism, you can use Component.getGraphics to handle your animation changes.


CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/bitblt.html J:\mindprod\jgloss\bitblt.html
logofeedback Please email your feedback for publication, letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email If you want your message kept confidential, not considered for posting, please explicitly specify that.
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.179.213]
You are visitor number 14,634.