Squeak Class Documentation category index | class index  
 
BalloonEngine
  category: Balloon-Engine
  superclass: Object
  subclasses: BalloonDebugEngine

No comment. Sorry.

instance methods
  accessing
  aaLevel
aaLevel:
aaTransform
bitBlt
bitBlt:
clipRect
clipRect:
colorTransform
colorTransform:
deferred
deferred:
destOffset
destOffset:
edgeTransform
edgeTransform:
fullTransformFrom:

  copying
  canProceedAfter:
copyBits
copyLoop
copyLoopFaster
copyLoopFastest
processStopReason:edge:fill:

  drawing
  drawBezierShape:fill:borderWidth:borderColor:transform:
drawCompressedShape:transform:
drawGeneralBezierShape:fill:borderWidth:borderColor:transform:
drawGeneralPolygon:fill:borderWidth:borderColor:transform:
drawOval:fill:borderWidth:borderColor:transform:
drawPolygon:fill:borderWidth:borderColor:transform:
drawRectangle:fill:borderWidth:borderColor:transform:
registerFill:
registerFill:and:
registerFill:transform:
registerFills:

  experimental
  registerBezier:transformation:
registerBoundary:transformation:
registerExternalEdge:from:
registerLine:transformation:
subdivideExternalEdge:from:

  initialize
  flush
initialize
postFlushIfNeeded
preFlushIfNeeded
release
reset
resetIfNeeded

  primitives-access
  primClipRectInto:
primFlushNeeded
primFlushNeeded:
primGetAALevel
primGetBezierStats:
primGetClipRect:
primGetCounts:
primGetDepth
primGetFailureReason
primGetOffset
primGetTimes:
primSetAALevel:
primSetClipRect:
primSetColorTransform:
primSetDepth:
primSetEdgeTransform:
primSetOffset:

  primitives-adding
  primAddBezierFrom:to:via:leftFillIndex:rightFillIndex:
primAddBezierShape:segments:fill:lineWidth:lineFill:
primAddBitmapFill:colormap:tile:from:along:normal:xIndex:
primAddCompressedShape:segments:leftFills:rightFills:lineWidths:lineFills:fillIndexList:
primAddExternalEdge:initialX:initialY:initialZ:leftFillIndex:rightFillIndex:
primAddExternalFill:
primAddGradientFill:from:along:normal:radial:
primAddLineFrom:to:leftFillIndex:rightFillIndex:
primAddOvalFrom:to:fillIndex:borderWidth:borderColor:
primAddPolygon:segments:fill:lineWidth:lineFill:
primAddRectFrom:to:fillIndex:borderWidth:borderColor:

  primitives-incremental
  primAddActiveEdgeTableEntryFrom:
primChangeActiveEdgeTableEntryFrom:
primDisplaySpanBuffer
primFinishedProcessing
primInitializeProcessing
primMergeFill:from:
primNextActiveEdgeEntryInto:
primNextFillEntryInto:
primNextGlobalEdgeEntryInto:
primRenderImage:with:
primRenderScanline:with:

  primitives-misc
  primCopyBufferFrom:to:
primInitializeBuffer:

  profiling
  doAddCompressedShape:segments:leftFills:rightFills:lineWidths:lineFills:fillIndexList:matrix:

class methods
  accessing
  debug:
doProfileStats:
printBezierStats
printStat:count:string:
printStats
resetBezierStats
resetStats

  class initialization
  initialize

  instance creation
  new

  private
  allocateOrRecycleBuffer:
primitiveSetBitBltPlugin:
recycleBuffer:

instance methods
  accessing top  
 

aaLevel


 

aaLevel:


 

aaTransform

Return a transformation for the current anti-aliasing level


 

bitBlt


 

bitBlt:


 

clipRect


 

clipRect:


 

colorTransform


 

colorTransform:


 

deferred


 

deferred:


 

destOffset


 

destOffset:


 

edgeTransform


 

edgeTransform:


 

fullTransformFrom:


  copying top  
 

canProceedAfter:

Check if we can proceed after the failureReason indicated.


 

copyBits


 

copyLoop

This is the basic rendering loop using as little primitive support as possible.


 

copyLoopFaster

This is a copy loop drawing one scan line at a time


 

copyLoopFastest

This is a copy loop drawing the entire image


 

processStopReason:edge:fill:

The engine has stopped because of some reason.
Try to figure out how to respond and do the necessary actions.


  drawing top  
 

drawBezierShape:fill:borderWidth:borderColor:transform:


 

drawCompressedShape:transform:


 

drawGeneralBezierShape:fill:borderWidth:borderColor:transform:


 

drawGeneralPolygon:fill:borderWidth:borderColor:transform:


 

drawOval:fill:borderWidth:borderColor:transform:


 

drawPolygon:fill:borderWidth:borderColor:transform:


 

drawRectangle:fill:borderWidth:borderColor:transform:


 

registerFill:

Register the given fill style.


 

registerFill:and:


 

registerFill:transform:


 

registerFills:


  experimental top  
 

registerBezier:transformation:


 

registerBoundary:transformation:


 

registerExternalEdge:from:


 

registerLine:transformation:


 

subdivideExternalEdge:from:


  initialize top  
 

flush

Force all pending primitives onscreen


 

initialize


 

postFlushIfNeeded

Force all pending primitives onscreen


 

preFlushIfNeeded

Force all pending primitives onscreen


 

release

Remove references to objects that may refer to the receiver. This message
should be overridden by subclasses with any cycles, in which case the
subclass should also include the expression super release.


 

reset


 

resetIfNeeded


  primitives-access top  
 

primClipRectInto:


 

primFlushNeeded


 

primFlushNeeded:


 

primGetAALevel

Set the AA level


 

primGetBezierStats:


 

primGetClipRect:


 

primGetCounts:


 

primGetDepth


 

primGetFailureReason


 

primGetOffset


 

primGetTimes:


 

primSetAALevel:

Set the AA level


 

primSetClipRect:


 

primSetColorTransform:


 

primSetDepth:


 

primSetEdgeTransform:


 

primSetOffset:


  primitives-adding top  
 

primAddBezierFrom:to:via:leftFillIndex:rightFillIndex:


 

primAddBezierShape:segments:fill:lineWidth:lineFill:


 

primAddBitmapFill:colormap:tile:from:along:normal:xIndex:


 

primAddCompressedShape:segments:leftFills:rightFills:lineWidths:lineFills:fillIndexList:


 

primAddExternalEdge:initialX:initialY:initialZ:leftFillIndex:rightFillIndex:


 

primAddExternalFill:


 

primAddGradientFill:from:along:normal:radial:


 

primAddLineFrom:to:leftFillIndex:rightFillIndex:


 

primAddOvalFrom:to:fillIndex:borderWidth:borderColor:


 

primAddPolygon:segments:fill:lineWidth:lineFill:


 

primAddRectFrom:to:fillIndex:borderWidth:borderColor:


  primitives-incremental top  
 

primAddActiveEdgeTableEntryFrom:

Add edge entry to the AET.


 

primChangeActiveEdgeTableEntryFrom:

Change the entry in the active edge table from edgeEntry


 

primDisplaySpanBuffer

Display the current scan line if necessary


 

primFinishedProcessing

Return true if there are no more entries in AET and GET and the last scan line has been displayed


 

primInitializeProcessing

Initialize processing in the GE.
Create the active edge table and sort it.


 

primMergeFill:from:

Merge the filled bitmap into the current output buffer.


 

primNextActiveEdgeEntryInto:

Store the next entry of the AET at the current y-value in edgeEntry.
Return false if there is no entry, true otherwise.


 

primNextFillEntryInto:

Store the next fill entry of the active edge table in fillEntry.
Return false if there is no such entry, true otherwise


 

primNextGlobalEdgeEntryInto:

Store the next entry of the GET at the current y-value in edgeEntry.
Return false if there is no entry, true otherwise.


 

primRenderImage:with:

Start/Proceed rendering the current scan line


 

primRenderScanline:with:

Start/Proceed rendering the current scan line


  primitives-misc top  
 

primCopyBufferFrom:to:

Copy the contents of oldBuffer into the (larger) newBuffer


 

primInitializeBuffer:


  profiling top  
 

doAddCompressedShape:segments:leftFills:rightFills:lineWidths:lineFills:fillIndexList:matrix:

Note: This method is for profiling the overhead of loading a compressed shape into the engine.


class methods
  accessing top  
 

debug:

BalloonEngine debug: true


 

doProfileStats:

Note: On Macintosh systems turning on profiling can significantly
degrade the performance of Balloon since we're using the high
accuracy timer for measuring.


 

printBezierStats

BalloonEngine printBezierStats


 

printStat:count:string:


 

printStats

BalloonEngine doProfileStats: true


 

resetBezierStats


 

resetStats


  class initialization top  
 

initialize

BalloonEngine initialize


  instance creation top  
 

new

Answer a new instance of the receiver (which is a class) with no indexable variables. Fail if the class is indexable.


  private top  
 

allocateOrRecycleBuffer:

Try to recycly a buffer. If this is not possibly, create a new one.


 

primitiveSetBitBltPlugin:


 

recycleBuffer:

Try to keep the buffer for later drawing operations.