Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
BitBlt
Last updated at 5:02 am UTC on 11 March 2017

Citation from LaLonde and Pugh I p. 393:

Instances of class BitBlt (Block Transfer) describe a single graphical operation (often copy operations)

Operations on objects are normally described as methods, not by instances of a class.

Very often, large numbers of copy operations are carried out in a context where most of these parameters remain the same. As a result, it was decided to use instances of a class (BitBlt) rather than a method to represent copy operations.

The copy operations are carried out when a copyBits message is sent to an initialized instance of class BitBlt. Method 'copyBits' is a primitive operation that can be optimised to take advantage of any special bit copying hardware that may be available on the host computer. Operation 'copyBits' is so fundamental that small increases in its performance have dramatic effects on the responsiveness of the Smalltalk user interface as a whole.

p. 392:
The name BitBlt is derived from a powerful bit-boundary block transfer instruction of that name found on one of the first machines to support Smalltalk, the Xerox Alto. RasterOp is a synonym for BitBlt in many graphics systems. All text and graphical operations in Smalltalk can be described in terms of Copying some source (not necessarily visible) Form to a Destination Form.

...Displaying a text string involves copying the
Form representing each character (see class BitBlt) in the string onto the display in sequence.

BitBlt example

Pixel access starts at zero

See Video input for examples of using BitBlt

Fix Documentation