[UPDATES] - 59 new updates; 2.4 imminent

Dan Ingalls Dan.Ingalls at disney.com
Tue Apr 20 16:29:35 UTC 1999


Folks -

I have just shipped another 59 updates.  Beside the expected fixes and features, these include two completely new subsystems providing significant 3D capability in Squeak.

Ballon3D Rasterizer
This is Andreas Raab's first implementation of a platform-independent 3D rasterizer built to work with Balloon, his existing, rotation-, and scale-independent anti-aliasing rendering engine.  A number of subtle features remain yet to be implemented, but its already awesome capability can be seen by playing with Wonderlands.

Wonderlands
Wonderlands are 3D environments in Squeak-Alice.  What is Squeak-Alice?
Alice (http://www.alice.org) is an authoring tool designed to allow people
without programming experience to build interactive 3D worlds. The Stage 3
Research Group (Randy Pausch director) started the Alice project at the
University of Virginia, and is continuing their work at Carnegie Mellon
University (http://www.cs.cmu.edu/~stage3). Squeak-Alice brings the ideas and
the ideals of Alice to Squeak, with the goal of introducing even more people
to 3D graphics and allowing them to author in the medium.

Squeak-Alice represents three months of mad-man hacking by Jeff Pierce,
a member of the original Alice design team, and a research intern with the
Squeak Team.

With the Balloon3D engine as its vehicle, models built and used in Squeak-Alice
should run on any platform from Wintel, Mac, and Unix machines down to bare
hardware, with no reliance on 3rd-party rendering software.  It's cool.

Many of the update items below (wonderland, wnld, jsp, Jeff Pierce) relate to these projects.  We will include a PlayWithMe window and sample script in 2.4 for exploring this new capability.

There may well be a few more patches before we're done, but this
is the bulk of what will comprise Squeak 2.4.

Stay tuned...
	- Dan
----------------------

788wonderland-declare
789WonderlandConstants
790W-Constants-init
791miscchanges -- Jeff Pierce -- 2 April 1999
792wonderland -- Jeff Pierce -- 2 April 1999
793WonderlandFixes-ar -- Andreas Raab -- 5 April 1999

794SimulatorChanges-di -- Dan Ingalls -- 3 April 1999
By editing Interpreter methods to include Smalltalk (cCode:inSmalltalk:), many methods can be removed from the InterpreterSimulator.  That's what this changeSet does.  It reduces the number of lines of code in the InterpreterSimulator from 1010 to 790 lines.
Also fixes a bug in inlining related to the new cCode:inSmalltalk: facility.

795wnld-comments-jsp -- Jeff Pierce -- 5 April 1999
796ui-fixes-tkJY
797paintFix-jhm

798sqkPagePerf-tkJZ -- Ted Kaehler -- 6 April 1999
Fixes a problem with perform: in SqueakPages

799envEditorFix-jhm -- John Maloney -- 6 April 1999
Two minor fixes to the envelope editor having to do with
the recent change to String>asNumber."

800wnld-destroy-jsp -- Jeff Pierce -- 6 April 1999
801PrimNewFix-ar

802nilSizeFixes-sw -- Scott Wallace -- 7 April 1999
Fixes a further score of methods that were compromised by the recent disenfranchising of UndefinedObject.size."

803virtualAllCat-ccn -- Chris Norton -- 24 March 1999
This adds a virtual '--  all  --' message category to the System Browser.

804twoThumbnailFixes-bf -- Bert Freudenberg -- 31 March 1999
Fixes two bugs: Firstly, there were recursive thumbnails (that is, thumbnails inside of thumbnails) when dropping a thumbnail into a flap smaller than the thumbnail. Secondly, with flaps open, Morphs showed 'innocuous' names ending in digits because thumbnails had 'known' names from their representees. The postscriptum nils all names in existing thumbnails (new thumbnails shouldn't get one)."

805scriptingSpace-sw -- Scott Wallace -- 6 April 1999
A few adjustments to the standard scripting space:
Removes the special-purpose scraps tab from future prebuilt-scripting-areas and generally from tabbed palettes. though it may persist residually in already-existing structures.
Adds a 'tiles' tab to the palette, thus making some tiles that are not directly available in the viewer more accessible.
Fixes the long-standing bug whereby some clicks on tabs would add the related morph beneath, rather than instead of, a viewer.
CAUTION: in order for the new scripting spaces to be accessible, their prototypes in the standard parts bin and the default Tools flap need to be up to date, and this is done by reinitializing those two structures.  In the latter case, this could clobber existing flap artifacts in the user's image which might have been customized -- sorry! "

806misc-sw -- Scott Wallace -- 7 April 1999
A potpourri of fixes, including:
(1)  RandomNumberTiles now allow their values to be edited via text-editing, rather than only via arrows.
(2)  Workaround for a case where a script for a player not currently in a world was causing a halt when one tried to change its status.
(3)  PhraseTileMorph more tolerant of untyped args.
(4)  In light of Chris Norton's virtual '--all--' category enhancements to the browser, reclassifies all methods formerly classified in an 'all' category back to 'as yet unclassified', and while at it, removes all empty method categories.
(5)  Slight cosmetic changes to detail buttons in viewers.
(6)  In deciding on innocuous names to ascribe to unnamed morphs, objects in parts bins are now excluded from the search for #allKnownNames.
(7)  Disused inst variables removed from CategoryViewer and ViewerEntry.
(8)  A dozen or so previously-unorganized classes factored into method categories.

807wnld-updates-jsp -- Jeff Pierce -- 8 April 1999
808wnld-names-jsp -- Jeff Pierce -- 8 April 1999
809wnld-updates-jsp -- Jeff Pierce -- 9 April 1999
810camControlsBMP-jsp
811camControls-init-jsp
812wnld-cam-jsp -- Jeff Pierce -- 9 April 1999

813externalSeg-tkJT

814UnCloneFloats-di -- Dan Ingalls -- 5 April 1999
Reverts internal instantiation of Floats to normal instantiation instead of cloning, thus making the interpreter compatible with images that predate the provision of prototypes in the specialObjects array.

815dirAndTabletPrims-jhm -- John Maloney -- 10 April 1999
This change set adds primitive support for:
  1. directory deletion (thanks to Stephen Pope)
  2. pen-based tablets (tested with the Wacom ArtZ 6x8)
It includes some changes to the C support code files,
and renames 'sqMacJoystick.c' to 'sqMacJoystickAndTablet.c'.
It also includes a better testing for the existance of
files and directories, also from Stephen Pope."

816BBPixMaskFix-di -- Dan Ingalls -- 10 April 1999
Fixes a bug in BitBlt that caused inaccurate tallies and possible crashes when running tallyPixels in 16 bits with a 32k color table.
Reported independently by Andres Valloud and John Malone.

817ShrinkAssist-di -- Dan Ingalls -- 11 April 1999
Updates the Squeak shrink routines to assist with reducing the size of Squeak images.

818EmptyMenuFix-LC -- Leandro Caniglia -- 12 April 1999
A simple fix for menus that happen to have no items.

819PerformFailFix-di -- Dan Ingalls -- 11 April 1999
Fixes a bug reported by Michal Starke.  The failure case of mismatched argument count was not being properly reported and, in some cases could cause a crash.
Also now properly recovers from erroneous smallInteger arguments.
Also fixed stack imbalance in case of recovering from perform that invokes doesNotUnderstand:.

820ScamperMisc-LS -- Lex Spoon -- 2 April 1999
A couple of small changes to Scamper, including a fix for the
size-related bug pointed out by Mike Rutenberg:
	1. The size bug mentioned.
	2. Update the selection interval when going to a new page
	3. Change status back to 'sittin' after a page finishes downloading.

821HiddenInfoFix-DSM -- Duane Maxwell -- 12 April 1999
This changeset fixes a bug in the hidden info menu command, which copies
the action of a TextAction attribute into the clipboard.  The original
compared the attribute class names with an incomplete list of possible
TextActions.  As a result, Doit actions did not properly generate
information. The new one adds an default info method to the TextAction
class and uses kindOf to detect membership.

822tabletFun-jhm -- John Maloney -- 12 April 1999
Adds a number of fun tablet-based drawing examples to Pen class for experimenting with a Wacom or similar pen tablet on platforms that support the tablet primitives.
Changes two WarpBlt methods in minor ways:
  1. cellSize: doesn't warn you if you try to use a cell size greater than 3, and
  2. warpBits lets sourceForm choose its own colormap; this allows ColorForms to be used."

823HaloMorphName-dew -- Doug Way -- 12 April 1999
Adds a white background behind the name of the morph in its halo, so that it is more easily readable.  (The string can otherwise be difficult to read if it appears over other text.)"

824fixups-sw -- Scott Wallace -- 12 April 1999
Fixes up Morph #embeddedInMorphicWindowLabeled: so that it does not set the receiver to be the window's model.
Patches the Dependents dictionary by removing such problematical keys.
Removes the redundant 'assembly' window in the default parts bin.
Fixes a spelling error in the balloon help associated with the annotation-specification window.
Upon mouse-down on the morphic desktop, flap-tabs are brought to the front.  This is not yet true floating-windows, but it does make flaps much more assuredly accessible.
Commands to destroy a script and to rename it are now available directly in the Scriptor as well as in Viewers."

825tabletTweaks-jhm -- John Maloney -- 13 April 1999
Make the tablet drawing examples scale to the current tablet resolution and Display size."

826wnld-ui-jsp -- Jeff Pierce -- 13 April 1999
Restructuring the Wonderland Editor UI."

827DependentsTweaks-di -- Dan Ingalls -- 12 April 1999
Fixes a bug that caused FillInTheBlankMorphs not to be reclaimed from the global dependents dictionary.  Also extends the reclaimDependents utility method to current SystemWindow usage.

828scriptRename-sw -- Scott Wallace -- 17 April 1999
Works around bugs in the renaming of textually-scripted scripts by not allowing the user to rename a script unless it is currently in tile-scripted format."

829VMProxy-ar -- Andreas Raab -- 18 April 1999
This change set adds three new exported functions to the interpreterProxy: #loadBitBltFrom: #copyBits and #copyBitsFrom:to:at:"

830B3DNewStuff-ar -- Andreas Raab -- 18 April 1999
This change set contains several modifications to the low level Balloon 3D engine including:
* The first version of the portable rasterizer
* Primitive support for clipping and picking
* Lots of fixes all over the place

831B3DSimulator-ar -- Andreas Raab -- 18 April 1999
This change set contains the Balloon rasterizer simulation."

832B3DCSources-ar -- Andreas Raab -- 18 April 1999
The C sources for the primitive rasterizer.
Execute the following statement to generate the complete C sources for 3D primitive support:
	B3DEnginePlugin translateB3D.

833WnldPicking-ar -- Andreas Raab -- 18 April 1999
This change set contains support for picking operations in Wonderland."

834B3DMiscTweaks-ar -- Andreas Raab -- 18 April 1999
Misc tweaks for Balloon 3D including a modified warning in Wonderland>>new, fixes to the rasterizer if a morph is contained by a hand and the removal of the old simulated rasterizer."

835ProjGuards-ar -- Andreas Raab -- 19 April 1999
This change set adds project 'guards'. Project guards are queried if it is #okayToEnterProject before the project is actually entered. An example of use is Wonderland requiring 3D primitive support."

836WnldMacFix-ar
837wnld-fixes-jsp -- Jeff Pierce -- 19 April 1999

838discardableMVC-di -- Dan Ingalls -- 16 April 1999
This changeSet enables deletion of essentially all vestiges of the ST-80 MVC viewing framework.
The major problems addressed are
	PopUpMenus no longer invoke class Paragraph before conversion to morphic.
	Numerous uses of Paragraph have been redirected to DisplayText.
	DisplayText uses TextMorph in place of Paragraph in morphic worlds.
	A mechanism is provided for deleting MVC projects and retaining any others.
	ParagraphEditor and ScreenController are retained as keepers of utility methods.
To discard MVC, execute Smalltalk discardMVC.

839WindowDrag-ar -- Andreas Raab -- 19 April 1999
This change set adds a preference for dragging windows if clicked inside the label area. If #allowLabelDragging is set to true you can move any system window by clicking inside the label area.
Note: This will only affect newly created system windows."

840WindowDrag2-ar -- Andreas Raab -- 19 April 1999
Initializes the preference for making it visible in the preferences editor (sorry, forgot this in the last change set)"
Preferences setPreference: #allowLabelDragging toValue: false.
Preferences initializeHelpMessages.

841ScamperFixes-AM -- Aibek Musaev -- 18 April 1999
This Change Set:
	-- adds Back/Forward capabilities to Scamper. Right-click in the text area in Scamper.
	-- makes Scamper consistent with the new policy introduced by Dan, namely numbers no longer respond with size 0. So, right-click in the text area should work.
Note:
	-- there are other problems with Scamper that still exist.
		Feel free to contribute with fixes, bug reports, etc.
Things to explore:
	-- Once a page is processed, there is no need to format it again. Hence, it might be a good (cool!) idea to store formatted pages and display them immediately upon request. One issue that may come up is memory consumption. Easy solution - store only the last, say, 20 pages."

842DisMVCTweaks-di -- Dan Ingalls -- 19 April 1999
Prevents discarding MVC from within an MVC project.
Also prevents creation of an MVC project after discarding.

843B3DClipFix-ar -- Andreas Raab -- 19 April 1999
Fixes a (theoretically impossible ;-) overflow in the vertex buffer during clip operations."

844DisMVCTweaks2-di -- Dan Ingalls -- 19 April 1999
Fixes a bug introduced into MVC by discardability changes.

845wnld-events-jsp -- Jeff Pierce -- 19 April 1999
Adds event handling to Wonderlands.  Actors can respond to left and right mouse up/down/click events, as well as key presses."

846wnld-actorevents-jsp -- Jeff Pierce -- 19 April 1999
The event handling functionality for actors.  Also defines the default interactive behaviors."





More information about the Squeak-dev mailing list