Squeak Class Documentation category index | class index  
 
FXBlt
  category: Graphics-FXBlt
  superclass: Object
  subclasses: FXGrafPort

"Copy all methods from BitBlt"
| from to |
from _ BitBlt class.
to _ FXBlt class.
from selectorsDo:[:sel|
to compile: (from sourceCodeAt: sel) classified: (from organization categoryOfElement: sel)].


Instance variables:
destForm <Form> Target form
sourceForm <Form> Source form
pattern <Bitmap> Fill or mask pattern
combinationRule <Integer> Describes the operation to perform
destRect <Rectangle> Destination rectangle of operation
clipRect <Rectangle> Destination clip rectangle of operation
sourceOrigin <Point> Offset in source form
sourceMap <ColorMap> Mapping from source pixels into 'operational depth'
destMap <ColorMap> Mapping from dest pixels into 'operational depth'
colorMap <ColorMap> Mapping from 'operational depth' into destination depth
warpQuad <Array of: Integer> Warp rectangle
warpQuality <Integer> Sampling rate for warps
sourceKey <Integer> Source color key
destKey <Integer> Destination color key
sourceAlpha <Integer> Constant source alpha
tallyMap <Bitmap> Map for tallying pixels.

instance methods
  accessing
  clipHeight
clipHeight:
clipRect
clipRect:
clipWidth
clipWidth:
clipX
clipX:
clipY
clipY:
colorMap
colorMap:
combinationRule
combinationRule:
destForm
destForm:
destMap
destMap:
destOrigin:
destRect
destRect:
destX:
destX:destY:width:height:
destY:
fillColor
fillColor:
height:
isFXBlt
raiseErrors:
sourceForm
sourceForm:
sourceKey
sourceKey:
sourceMap
sourceMap:
sourceOrigin:
sourceRect:
sourceX:
sourceX:sourceY:destX:destY:width:height:
sourceY:
tallyMap
tallyMap:
width:

  copying
  copy:from:in:
copy:from:in:fillColor:rule:
copy:from:in:halftoneForm:rule:
copyBits
copyBitsSimulated
copyBitsTranslucent:
copyForm:to:rule:
copyForm:to:rule:color:
copyForm:to:rule:colorMap:
copyForm:to:rule:fillColor:
copyFrom:in:to:
displayString:from:to:at:strikeFont:kern:
fill:fillColor:rule:
pixelAt:
pixelAt:put:

  line drawing
  drawFrom:to:
drawFrom:to:withFirstPoint:
drawLoopX:Y:

  private
  cachedFontColormapFrom:to:
copyBitsAgain
copyBitsFrom:to:at:
eraseBits
getPluginName
installStrikeFont:foregroundColor:backgroundColor:
paintBits
primCopyBits
primDisplayString:from:to:map:xTable:kern:
recover
setDestForm:
setDestForm:sourceForm:fillColor:combinationRule:destOrigin:sourceOrigin:extent:clipRect:
traceProblem:from:

  warping
  cellSize
cellSize:
copyQuad:toRect:
sourceForm:destRect:
sourceQuad:destRect:
warpBits

class methods
  benchmarks
  benchDiffsFrom:to:
benchmark

  examples
  alphaBlendDemo
antiAliasDemo
exampleOne
exampleTwo
warpTest1
warpTest12
warpTest3
warpTest4
warpTest5

  form rotation
  rotate:degrees:center:scaleBy:smoothing:

  instance creation
  asGrafPort
bitPeekerFromForm:
bitPokerToForm:
destForm:sourceForm:fillColor:combinationRule:destOrigin:sourceOrigin:extent:clipRect:
destForm:sourceForm:halftoneForm:combinationRule:destOrigin:sourceOrigin:extent:clipRect:
toForm:

  private
  exampleAt:rule:fillColor:
swapBytesIn:

instance methods
  accessing top  
 

clipHeight


 

clipHeight:

Set the receiver's clipping area height to be the argument, anInteger.


 

clipRect

Answer the receiver's clipping area rectangle.


 

clipRect:

Set the receiver's clipping area rectangle to be the argument, aRectangle.


 

clipWidth


 

clipWidth:

Set the receiver's clipping area width to be the argument, anInteger.


 

clipX


 

clipX:

Set the receiver's clipping area top left x coordinate to be the argument,
anInteger.


 

clipY


 

clipY:

Set the receiver's clipping area top left y coordinate to be the argument,
anInteger.


 

colorMap


 

colorMap:

See last part of BitBlt comment. 6/18/96 tk


 

combinationRule


 

combinationRule:

Set the receiver's combination rule to be the argument, anInteger, a
number in the range 0-15.


 

destForm


 

destForm:


 

destMap


 

destMap:


 

destOrigin:

Set the receiver's destination top left coordinates to be those of the
argument, aPoint.


 

destRect

The rectangle we are about to blit to or just blitted to.


 

destRect:

Set the receiver's destination form top left coordinates to be the origin of
the argument, aRectangle, and set the width and height of the receiver's
destination form to be the width and height of aRectangle.


 

destX:

Set the top left x coordinate of the receiver's destination form to be the
argument, anInteger.


 

destX:destY:width:height:

Combined init message saves 3 sends from DisplayScanner


 

destY:

Set the top left y coordinate of the receiver's destination form to be the
argument, anInteger.


 

fillColor


 

fillColor:

The destForm will be filled with this color or pattern of colors. May be an old Color, a new type Color, a Bitmap (see BitBlt comment), a Pattern, or a Form. 6/18/96 tk


 

height:

Set the receiver's destination form height to be the argument, anInteger.


 

isFXBlt


 

raiseErrors:


 

sourceForm


 

sourceForm:

Set the receiver's source form to be the argument, aForm.


 

sourceKey


 

sourceKey:


 

sourceMap


 

sourceMap:


 

sourceOrigin:

Set the receiver's source form coordinates to be those of the argument,
aPoint.


 

sourceRect:

Set the receiver's source form top left x and y, width and height to be
the top left coordinate and extent of the argument, aRectangle.


 

sourceX:

Set the receiver's source form top left x to be the argument, anInteger.


 

sourceX:sourceY:destX:destY:width:height:

Combined init message saves sends from DisplayScanner


 

sourceY:

Set the receiver's source form top left y to be the argument, anInteger.


 

tallyMap

Return the map used for tallying pixels


 

tallyMap:

Install the map used for tallying pixels


 

width:

Set the receiver's destination form width to be the argument, anInteger.


  copying top  
 

copy:from:in:


 

copy:from:in:fillColor:rule:

Specify a Color to fill, not a Form. 6/18/96 tk


 

copy:from:in:halftoneForm:rule:


 

copyBits

Primitive. Perform the movement of bits from the source form to the
destination form. Fail if any variables are not of the right type (Integer,
Float, or Form) or if the combination rule is not implemented.
In addition to the original 16 combination rules, this BitBlt supports
16 fail (to simulate paint)
17 fail (to simulate mask)
18 sourceWord + destinationWord
19 sourceWord - destinationWord
20 rgbAdd: sourceWord with: destinationWord
21 rgbSub: sourceWord with: destinationWord
22 rgbDiff: sourceWord with: destinationWord
23 tallyIntoMap: destinationWord
24 alphaBlend: sourceWord with: destinationWord
25 pixPaint: sourceWord with: destinationWord
26 pixMask: sourceWord with: destinationWord
27 rgbMax: sourceWord with: destinationWord
28 rgbMin: sourceWord with: destinationWord
29 rgbMin: sourceWord bitInvert32 with: destinationWord


 

copyBitsSimulated


 

copyBitsTranslucent:

This entry point to BitBlt supplies an extra argument to specify translucency
for operations 30 and 31. The argument must be an integer between 0 and 255.


 

copyForm:to:rule:


 

copyForm:to:rule:color:


 

copyForm:to:rule:colorMap:


 

copyForm:to:rule:fillColor:


 

copyFrom:in:to:


 

displayString:from:to:at:strikeFont:kern:


 

fill:fillColor:rule:

Fill with a Color, not a Form. 6/18/96 tk


 

pixelAt:

Assumes this BitBlt has been set up specially (see the init message,
BitBlt bitPeekerFromForm:. Returns the pixel at aPoint.


 

pixelAt:put:

Assumes this BitBlt has been set up specially (see the init message,
BitBlt bitPokerToForm:. Overwrites the pixel at aPoint.


  line drawing top  
 

drawFrom:to:


 

drawFrom:to:withFirstPoint:

Draw a line whose end points are startPoint and stopPoint.
The line is formed by repeatedly calling copyBits at every
point along the line. If drawFirstPoint is false, then omit
the first point so as not to overstrike at line junctions.


 

drawLoopX:Y:

Primitive. Implements the Bresenham plotting algorithm (IBM Systems
Journal, Vol. 4 No. 1, 1965). It chooses a principal direction, and
maintains a potential, P. When P's sign changes, it is time to move in
the minor direction as well. This particular version does not write the
first and last points, so that these can be called for as needed in client code.
Optional. See Object documentation whatIsAPrimitive.


  private top  
 

cachedFontColormapFrom:to:


 

copyBitsAgain

Primitive. See BitBlt|copyBits, also a Primitive. Essential. See Object
documentation whatIsAPrimitive.


 

copyBitsFrom:to:at:


 

eraseBits

Perform the erase operation, which puts 0's in the destination
wherever the source (which is assumed to be just 1 bit deep)
has a 1. This requires the colorMap to be set in order to AND
all 1's into the destFrom pixels regardless of their size.


 

getPluginName

Private. Return the name of the plugin representing FXBlt.
Used for dynamically switching between different BB representations only.


 

installStrikeFont:foregroundColor:backgroundColor:


 

paintBits

Perform the paint operation, which requires two calls to BitBlt.


 

primCopyBits


 

primDisplayString:from:to:map:xTable:kern:


 

recover

Recover after a BitBlt operation has failed. Return true if the
copyBits operation should be tried again.


 

setDestForm:


 

setDestForm:sourceForm:fillColor:combinationRule:destOrigin:sourceOrigin:extent:clipRect:


 

traceProblem:from:


  warping top  
 

cellSize


 

cellSize:


 

copyQuad:toRect:


 

sourceForm:destRect:

Set up a WarpBlt from the entire source Form to the given destination rectangle.


 

sourceQuad:destRect:


 

warpBits


class methods
  benchmarks top  
 

benchDiffsFrom:to:

Given two outputs of BitBlt>>benchmark show the relative improvements.


 

benchmark

FXBlt benchmark


  examples top  
 

alphaBlendDemo

To run this demo, use...
Display restoreAfter: [FXBlt alphaBlendDemo]
Displays 10 alphas, then lets you paint. Option-Click to stop painting.


 

antiAliasDemo

To run this demo, use...
Display restoreAfter: [FXBlt antiAliasDemo]
Goes immediately into on-screen paint mode. Option-Click to stop painting.


 

exampleOne

This tests BitBlt by displaying the result of all sixteen combination rules that BitBlt is capable of using. (Please see the comment in BitBlt for the meaning of the combination rules).


 

exampleTwo

This is to test painting with a gray tone. It also tests that the seaming with gray patterns is correct in the microcode. Lets you paint for a while and then automatically stops.


 

warpTest1

Display restoreAfter: [FXBlt warpTest1]


 

warpTest12

Display restoreAfter: [FXBlt warpTest12]


 

warpTest3

Display restoreAfter: [FXBlt warpTest3]


 

warpTest4

Display restoreAfter: [FXBlt warpTest4]


 

warpTest5

Display restoreAfter: [FXBlt warpTest5]


  form rotation top  
 

rotate:degrees:center:scaleBy:smoothing:

Rotate the given Form the given number of degrees about the given center and scale its width and height by x and y of the given scale point. Smooth using the given cell size, an integer between 1 and 3, where 1 means no smoothing. Return a pair where the first element is the rotated Form and the second is the position offset required to align the center of the rotated Form with that of the original. Note that the dimensions of the resulting Form generally differ from those of the original.


  instance creation top  
 

asGrafPort

Return the GrafPort associated with the receiver


 

bitPeekerFromForm:

Answer an instance to be used extract individual pixels from the given Form. The destination for a 1x1 copyBits will be the low order bits of (bits at: 1).


 

bitPokerToForm:

Answer an instance to be used for valueAt: aPoint put: pixValue.
The source for a 1x1 copyBits will be the low order of (bits at: 1)


 

destForm:sourceForm:fillColor:combinationRule:destOrigin:sourceOrigin:extent:clipRect:

Answer an instance of me with values set according to the arguments.


 

destForm:sourceForm:halftoneForm:combinationRule:destOrigin:sourceOrigin:extent:clipRect:

Answer an instance of me with values set according to the arguments.


 

toForm:


  private top  
 

exampleAt:rule:fillColor:

This builds a source and destination form and copies the source to the
destination using the specifed rule and mask. It is called from the method
named exampleOne.


 

swapBytesIn:

Byte-swap the contents of aBitmap