[Pharo-project] Clipping

Igor Stasenko siguctua at gmail.com
Thu Feb 10 01:10:39 CET 2011


On 9 February 2011 14:57, Stéphane Ducasse <stephane.ducasse at inria.fr> wrote:
> In SMxCanvas>>copyClipRect: aRectangle
>        ^ self copyOrigin: origin clipRect: (aRectangle translateBy: origin)
>
> SMxFormCanvas>>copyOrigin: aPoint clipRect: aRectangle
>        "Return a copy of this canvas with the given origin. The clipping rectangle of this canvas is the intersection of the given rectangle and the receiver's current clipping rectangle. This allows the clipping rectangles of nested clipping morphs to be composed."
>        ^ self copy
>                setOrigin: aPoint
>                clipRect: (clipRect intersect: aRectangle)
>
> Canvas>>copyClipRect: newClipRect
>
>        ^ ClippingCanvas canvas: self clipRect: newClipRect
>
> FormCanvas>>copyOrigin: aPoint clipRect: aRectangle
>        "Return a copy of this canvas with the given origin. The clipping rectangle of this canvas is the intersection of the given rectangle and the receiver's current clipping rectangle. This allows the clipping rectangles of nested clipping morphs to be composed."
>        ^ self copy
>                setOrigin: aPoint
>                clipRect: (clipRect intersect: aRectangle)
>
>
> Do you think that we can remove ClippingCanvas. There are too many canvases in Pharo.
>

More than that.
I'd prefer not seeing such invocations (copyClipRect:)

a more correct form for usage is:

canvas clipBy:rect during: [ .... ]

so it will clip using given rect, and then restore clipping back to
previous one.

And of course there is no need to copy canvas (except from some corner
cases).. it's only adds a complexity on top of already complex drawing
operations.

-- 
Best regards,
Igor Stasenko AKA sig.




More information about the Pharo-project mailing list