[squeak-dev] The Trunk: Morphic-tpr.645.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Mar 25 21:14:34 UTC 2013


tim Rowledge uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-tpr.645.mcz

==================== Summary ====================

Name: Morphic-tpr.645
Author: tpr
Time: 25 March 2013, 2:12:47.714 pm
UUID: 26d49d4a-210b-4691-b474-f1e1fe3c1e35
Ancestors: Morphic-fbs.644

Remove BitBlt|WarpBlt>current usage - it's a vestige of an old experiment

=============== Diff against Morphic-fbs.644 ===============

Item was changed:
  ----- Method: BalloonCanvas>>image:at:sourceRect:rule: (in category 'private') -----
  image: aForm at: aPoint sourceRect: sourceRect rule: rule
  	| warp dstRect srcQuad dstOffset center |
  	(self ifNoTransformWithIn: sourceRect) & false
  		ifTrue:[^super image: aForm at: aPoint sourceRect: sourceRect rule: rule].
  	dstRect := (transform localBoundsToGlobal: (aForm boundingBox translateBy: aPoint)).
  	dstOffset := 0 at 0. "dstRect origin."
  	"dstRect := 0 at 0 corner: dstRect extent."
  	center := 0 at 0."transform globalPointToLocal: dstRect origin."
  	srcQuad := transform globalPointsToLocal: (dstRect innerCorners).
  	srcQuad := srcQuad collect:[:pt| pt - aPoint].
+ 	warp := (WarpBlt toForm: form)
- 	warp := (WarpBlt current toForm: form)
  			sourceForm: aForm;
  			cellSize: 2;  "installs a new colormap if cellSize > 1"
  			combinationRule: Form over.
  	warp copyQuad: srcQuad toRect: (dstRect translateBy: dstOffset).
  
  	self frameRectangle: (aForm boundingBox translateBy: aPoint) color: Color green.
  
  	"... TODO ... create a bitmap fill style from the form and use it for a simple rectangle."!

Item was changed:
  ----- Method: FormCanvas>>portClass (in category 'private') -----
  portClass
  	"Return the class used as port"
+ 	^BitBlt asGrafPort!
- 	^Display defaultBitBltClass asGrafPort!

Item was changed:
  ----- Method: FormCanvas>>privateWarp:transform:at:sourceRect:cellSize: (in category 'private') -----
  privateWarp: aForm transform: aTransform at: extraOffset sourceRect: sourceRect cellSize: cellSize
  	"Warp the given using the appropriate transform and offset."
  	| globalRect sourceQuad warp tfm |
  	tfm := aTransform.
  	globalRect := tfm localBoundsToGlobal: sourceRect.
  	sourceQuad := (tfm sourceQuadFor: globalRect) collect:[:p| p - sourceRect topLeft].
  	extraOffset ifNotNil:[globalRect := globalRect translateBy: extraOffset].
+      warp := (WarpBlt toForm: port destForm)
-      warp := (WarpBlt current toForm: port destForm)
                  combinationRule: Form paint;
                  sourceQuad: sourceQuad destRect: (globalRect origin corner: globalRect corner+(1 at 1));
                  clipRect: port clipRect.
  	warp cellSize: cellSize.
  	warp sourceForm: aForm.
  	warp warpBits!

Item was changed:
  ----- Method: FormCanvas>>showAt:invalidRects: (in category 'other') -----
  showAt: pt invalidRects: updateRects
  	| blt |
+ 	blt := (BitBlt toForm: Display)
- 	blt := (BitBlt current toForm: Display)
  		sourceForm: form;
  		combinationRule: Form over.
  	updateRects do:
  		[:rect |
  		blt sourceRect: rect;
  			destOrigin: rect topLeft + pt;
  			copyBits]!

Item was changed:
  ----- Method: FormCanvas>>warpFrom:toRect: (in category 'other') -----
  warpFrom: sourceQuad toRect: destRect
+         ^ (WarpBlt toForm: port destForm)
-         ^ (WarpBlt current toForm: port destForm)
                  combinationRule: Form paint;
                  sourceQuad: sourceQuad destRect: (destRect translateBy: origin);
                  clipRect: clipRect!

Item was changed:
  ----- Method: Morph>>drawRolloverBorderOn: (in category 'drawing') -----
  drawRolloverBorderOn: aCanvas 
  	| colorToUse offsetToUse myShadow newForm f |
  	colorToUse := self
  				valueOfProperty: #rolloverColor
  				ifAbsent: [Color blue alpha: 0.5].
  	offsetToUse := self
  				valueOfProperty: #rolloverWidth
  				ifAbsent: [10 @ 10].
  	self hasRolloverBorder: false.
  	myShadow := self shadowForm.
  	self hasRolloverBorder: true.
  	myShadow offset: 0 @ 0.
  	f := ColorForm extent: myShadow extent depth: 1.
  	myShadow displayOn: f.
  	f colors: {Color transparent. colorToUse}.
  	newForm := Form extent: offsetToUse * 2 + myShadow extent depth: 32.
+ 	(WarpBlt toForm: newForm) sourceForm: f;
- 	(WarpBlt current toForm: newForm) sourceForm: f;
  		 cellSize: 1;
  		 combinationRule: 3;
  		 copyQuad: f boundingBox innerCorners toRect: newForm boundingBox.
  	aCanvas
  		translateBy: offsetToUse negated
  		during: [:shadowCanvas | 
  			shadowCanvas shadowColor: colorToUse.
  			shadowCanvas paintImage: newForm at: self position]!

Item was changed:
  ----- Method: PasteUpMorph>>flashRects:color: (in category 'world state') -----
  flashRects: rectangleList color: aColor
  	"For testing. Flashes the given list of rectangles on the Display so you can watch incremental redisplay at work."
  	"Details: Uses two reverses so that the display is restored to its original state. This is necessary when in deferred update mode."
  
  	| blt |
+ 	blt := (BitBlt toForm: Display)
- 	blt := (BitBlt current toForm: Display)
  		sourceForm: nil;
  		sourceOrigin: 0 at 0;
  		clipRect: self viewBox;
  		combinationRule: Form reverse.
  	rectangleList do: [:r | | screenRect |
  		screenRect := r translateBy: self viewBox origin.
  		blt destRect: screenRect; copyBits.
  		Display forceToScreen: screenRect; forceDisplayUpdate.
  		(Delay forMilliseconds: 15) wait.
  		blt destRect: screenRect; copyBits.
  		Display forceToScreen: screenRect; forceDisplayUpdate].
  !

Item was changed:
  ----- Method: PolygonMorph>>computeArrowFormAt:from: (in category 'private') -----
  computeArrowFormAt: endPoint from: priorPoint 
  	"Compute a triangle oriented along the line from priorPoint to  
  	endPoint. Then draw those lines in a form and return that  
  	form, with appropriate offset"
  
  	| p1 pts box arrowForm bb origin |
  	pts := self arrowBoundsAt: endPoint from: priorPoint.
  	box := ((pts first rect: pts last) encompass: (pts second)) expandBy: 1.
  	arrowForm := Form extent: box extent asIntegerPoint.
+ 	bb := (BitBlt toForm: arrowForm)
- 	bb := (BitBlt current toForm: arrowForm)
  				sourceForm: nil;
  				fillColor: Color black;
  				combinationRule: Form over;
  				width: 1;
  				height: 1.
  	origin := box topLeft.
  	p1 := pts last - origin.
  	pts do: 
  			[:p | 
  			bb drawFrom: p1 to: p - origin.
  			p1 := p - origin].
  	arrowForm convexShapeFill: Color black.
  	^arrowForm offset: box topLeft!

Item was changed:
  ----- Method: PolygonMorph>>filledForm (in category 'private') -----
  filledForm
  	"Note: The filled form is actually 2 pixels bigger than bounds, and the point corresponding to this morphs' position is at 1 at 1 in the form.  This is due to the details of the fillig routines, at least one of which requires an extra 1-pixel margin around the outside.  Computation of the filled form is done only on demand."
  	| bb origin |
  	closed ifFalse: [^ filledForm := nil].
  	filledForm ifNotNil: [^ filledForm].
  	filledForm := Form extent: bounds extent+2.
  
  	"Draw the border..."
+ 	bb := (BitBlt toForm: filledForm) sourceForm: nil; fillColor: Color black;
- 	bb := (BitBlt current toForm: filledForm) sourceForm: nil; fillColor: Color black;
  			combinationRule: Form over; width: 1; height: 1.
  	origin := bounds topLeft asIntegerPoint-1.
  	self lineSegmentsDo: [:p1 :p2 | bb drawFrom: p1 asIntegerPoint-origin
  										to: p2 asIntegerPoint-origin].
  
  	"Fill it in..."
  	filledForm convexShapeFill: Color black.
  
  	(borderColor isColor and: [borderColor isTranslucentColor]) ifTrue:
  		["If border is stored as a form, then erase any overlap now."
  		filledForm copy: self borderForm boundingBox from: self borderForm
  			to: 1 at 1 rule: Form erase].
  
  	^ filledForm!

Item was changed:
  ----- Method: ProjectViewMorph>>updateImageFrom: (in category 'drawing') -----
  updateImageFrom: sourceForm
  
+ 	(WarpBlt toForm: image)
- 	(WarpBlt current toForm: image)
  		sourceForm: sourceForm;
  		cellSize: 2;  "installs a colormap"
  		combinationRule: Form over;
  		copyQuad: (sourceForm boundingBox) innerCorners
  		toRect: image boundingBox.
  !

Item was changed:
  ----- Method: SketchMorph>>generateRotatedForm (in category 'drawing') -----
  generateRotatedForm
  	"Compute my rotatedForm and offsetWhenRotated."
  
  	| scalePt smoothPix pair |
  	scalePoint ifNil: [scalePoint := 1 @ 1].
  	scalePt := scalePoint x abs @ scalePoint y abs.
  	rotationStyle == #none ifTrue: [scalePt := 1 @ 1].
  	smoothPix := (scalePt x < 1.0 or: [scalePt y < 1.0]) 
  		ifTrue: [2]
  		ifFalse: [1].
  	rotationStyle = #leftRight 
  		ifTrue: 
  			[self heading asSmallAngleDegrees < 0.0 
  				ifTrue: [scalePt := scalePt x negated @ scalePt y]].
  	rotationStyle = #upDown 
  		ifTrue: 
  			[self heading asSmallAngleDegrees abs > 90.0 
  				ifTrue: [scalePt := scalePt x @ scalePt y negated]].
  	rotatedForm := scalePt = (1 @ 1) 
  				ifTrue: [originalForm]
  				ifFalse: 
  					["ar 11/19/2001: I am uncertain what happens in the case of rotationStyle ~~ normal"
  
  					(rotationStyle == #normal and: [self useInterpolation]) 
  						ifTrue: [^self generateInterpolatedForm].
+ 					pair := WarpBlt 
- 					pair := WarpBlt current 
  								rotate: originalForm
  								degrees: 0
  								center: originalForm boundingBox center
  								scaleBy: scalePt
  								smoothing: smoothPix.
  					pair first]!



More information about the Squeak-dev mailing list