[etoys-notify] [JIRA] Commented: (SQ-996) Add Etoy interfaces to ScratchPlugin picture manipulation methods

Bert Freudenberg (JIRA) tracker at squeakland.org
Tue Oct 25 06:34:05 EDT 2011


    [ http://tracker.squeakland.org/browse/SQ-996?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=40058#action_40058 ] 

Bert Freudenberg commented on SQ-996:
-------------------------------------

(from mailing list comment)

When we introduce new behavior we make a promise that if users use that behavior, it will continue to work. Older projects should work in newer Etoys versions. So we need to get the basic behavior of a new tile right from the beginning. (if we wanted to allow experiments with your code we could hide the new tiles from normal users - e.g., there already are tile categories you only see by enabling some preference)

The behavior you introduce with these tiles is inferior to the Scratch model. It's procedural. It applies e.g. a hue shift but there is no way to read back the current hue shift. If you want a blurred, hue shifted sketch you would have to have a script that does "restore base graphic", "shift hue", "apply blur". If you want to change the blur value interactively, this script would have to be ticking all the time, which is hugely inefficient.

With the properties I was proposing, there simply would be some new slots in the viewer for hueShift, blurAmount, etc. Changing the blur amount in the viewer would immediately update the Sketch. No script needed. Setting it back to 0 would reveal the original unblurred image (and performance would be back to normal and the property would be removed). This would be like playing with the heading - as soon as you change the number in the viewer, the object on screen changes.

This is a bit like rolling Derek's ScratchEffectsMorph directly into SketchMorph. But it would be a lot simpler, there would be no new instance variables, etc.

*If* we were going to add a "special effects morph" then it should be general. You could drop any morph into it (be it a sketch or rectangle or camera) and it would apply some effects. Similarly to ScreeningMorph.

Or possibly it should even work invisibly, just like TransformationMorph. We would have the hue shift, blur, etc. slots on every object, and as soon as they are non-zero, a hidden FxRenderer morph would get inserted in the owner chain. From a user's point of view, this would just extend the functionality I am proposing for Sketches to every object, so this could be added in a later update since the functionality would be similar. Sketches would still be more efficient because they would cache the effects.

Basically what I'm saying is that it's great you want to expose the Scratch features for Etoys users, but we should discuss how to do that. I have been thinking about this for a while (ever since we were talking about including the plugin) and the above is what I concluded.


> Add Etoy interfaces to ScratchPlugin picture manipulation methods
> -----------------------------------------------------------------
>
>                 Key: SQ-996
>                 URL: http://tracker.squeakland.org/browse/SQ-996
>             Project: squeakland
>          Issue Type: Feature Set
>            Reporter: Karl Ramberg
>
> Add Etoy interfaces to ScratchPlugin picture manipulation methods
> -hsv filters
> -blur
> -fisheye
> -water ripple
> -whirl
> -div scale

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://tracker.squeakland.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the etoys-notify mailing list