[BUG] Problems with Stack Tutorial

Dan Shafer dshafer at yahoo.com
Tue May 8 23:05:37 UTC 2001


Got it, Bob. Thanks. Works fine with that patch.

It's fun on the Bleeding Edge.

--- Bob Arning <arning at charm.net> wrote:
> Dan,
> 
> On Tue, 8 May 2001 15:04:58 -0700 (PDT) Dan Shafer <dshafer at yahoo.com> wrote:
> >In 3.0 (3552), the project won't load completely. I get a dialog: "Reading
> an
> >instance of FormStub. Which modern class should it translate to?" I haven't
> a
> >clue.
> 
> Newer projects like "How to Make a Stack" require some stuff that is only
> found in 3.1.
> 
> >In 3.1 (3987), it loads fine and works up to the point of drawing on the
> card.
> >At that point, it's not a problem with this project but with something in
> the
> >latest round of changes, I suspect. Clicking the "Keep" button produces a
> >walkback: "Bad BitBlt arg (Fraction?) proceed to convert." Clicking
> "Proceed"
> >produces another walkback: "Error: A Primitive has failed." on the primitive
> >CopyBits in BitBltPlugin.
> 
> Karl encountered this yesterday and Andreas posted this fix (it's in the
> internal updates and should be out before too long):
> 
> 
> 'From Squeak3.1alpha of 28 February 2001 [latest update: #3987] on 6 May 2001
> at 4:29:18 pm'!
> "Change Set:		CMFix-ar
> Date:			6 May 2001
> Author:			Andreas Raab
> 
> Fixes accidental generation of a color map where none was needed."!
> 
> 
> !Form methodsFor: 'image manipulation' stamp: 'ar 5/6/2001 16:27'!
> rectangleEnclosingPixelsNotOfColor: aColor
> 	"Answer the smallest rectangle enclosing all the pixels of me that are
> different from the given color. Useful for extracting a foreground graphic
> from its background."
> 
> 	| cm slice copyBlt countBlt top bottom newH left right |
> 	"map the specified color to 1 and all others to 0"
> 	cm _ Bitmap new: (1 bitShift: (depth min: 15)).
> 	cm primFill: 1.
> 	cm at: (aColor indexInMap: cm) put: 0.
> 
> 	"build a 1-pixel high horizontal slice and BitBlts for counting pixels of
> interest"
> 	slice _ Form extent: width at 1 depth: 1.
> 	copyBlt _ (BitBlt current toForm: slice)
> 		sourceForm: self;
> 		combinationRule: Form over;
> 		destX: 0 destY: 0 width: width height: 1;
> 		colorMap: cm.
> 	countBlt _ (BitBlt current toForm: slice)
> 		fillColor: (Bitmap with: 0);
> 		destRect: (0 at 0 extent: slice extent);
> 		combinationRule: 32.
> 
> 	"scan in from top and bottom"
> 	top _ (0 to: height)
> 		detect: [:y |
> 			copyBlt sourceOrigin: 0 at y; copyBits.
> 			countBlt copyBits > 0]
> 		ifNone: [^ 0 at 0 extent: 0 at 0].
> 	bottom _ (height - 1 to: top by: -1)
> 		detect: [:y |
> 			copyBlt sourceOrigin: 0 at y; copyBits.
> 			countBlt copyBits > 0].
> 
> 	"build a 1-pixel wide vertical slice and BitBlts for counting pixels of
> interest"
> 	newH _ bottom - top + 1.
> 	slice _ Form extent: 1 at newH depth: 1.
> 	copyBlt _ (BitBlt current toForm: slice)
> 		sourceForm: self;
> 		combinationRule: Form over;
> 		destX: 0 destY: 0 width: 1 height: newH;
> 		colorMap: cm.
> 	countBlt _ (BitBlt current toForm: slice)
> 		fillColor: (Bitmap with: 0);
> 		destRect: (0 at 0 extent: slice extent);
> 		combinationRule: 32.
> 
> 	"scan in from left and right"
> 	left _ (0 to: width)
> 		detect: [:x |
> 			copyBlt sourceOrigin: x at top; copyBits.
> 			countBlt copyBits > 0].
> 	right _ (width - 1 to: left by: -1)
> 		detect: [:x |
> 			copyBlt sourceOrigin: x at top; copyBits.
> 			countBlt copyBits > 0].
> 
> 	^ left at top corner: (right + 1)@(bottom + 1)
> ! !
> 
> 
> Cheers,
> Bob
> 


=====
------- Dan Shafer, Author and Community Consultant
^. .^ | Commentator on Community, Web Building, Nanotech
 ='=  | Sr. Co-Editor, Online Community Report
      | Author, NanoTech, MegaQuake: Business Implications of
Squeak| Nanotechnology (Spring 2002), Wiley, ISBN 047120045X
------- http://www.gui.com (major update Spring 2001)

__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - buy the things you want at great prices
http://auctions.yahoo.com/





More information about the Squeak-dev mailing list