OK. Here's some code to demonstrate the bug:

wrap := AthensWrapMorph new
    extent: 100 @ 100;
    yourself.
black := Morph new
    extent: 100 @ 100;
    color: Color black;
    yourself.
red := Morph new
    extent: 100 @ 50;
    color: Color red;
    yourself.
transparent := Morph new
    extent: 50 @ 50;
    position: 25 @ -25;
    color: Color transparent;
    yourself.
wrap
    addMorph: black;
    addMorph: red;
    addMorph: transparent;
    openInWorld

Please note that for this to work, you have to remove the "initialize"
method in AthensWrapMorph that makes it use a TableLayout, which is a silly
choice. Though adding transparent should not make a difference in the
rendering, it does.

Cheers,

Jeff


On Thu, Jan 2, 2014 at 5:29 PM, J.F. Rick <[email protected]> wrote:

> I'm aware of the default Morphic behavior. I've hacked it so that a
> transparent 1x1 pixel bit is in the hand and its movement causes the brown
> morph to move and remain a submorph of the AthensWrapMorph application.
>
> Yes, this is some kind of weird clipping thing. Specifically, it looks
> like clipping is not happening. The brown morph (and the area behind it)
> renders correctly but it is not rendered at the correct location. Instead,
> the starting location of the rendering seems to be forced into the bounds
> of the surface. That's why it looks like the background things have shifted
> downwards.
>
> Cheers,
>
> Jeff
>
>
> On Thu, Jan 2, 2014 at 5:10 PM, Igor Stasenko <[email protected]> wrote:
>
>>
>>
>>
>> On 2 January 2014 16:54, J.F. Rick <[email protected]> wrote:
>>
>>> I've been converting DigiTile over to Athens with general success but I
>>> have found an odd rendering bug. In this scenario, I am moving the brown
>>> square around with a hand. As I am using AthensWrapMorph, I have made it so
>>> that the brown square is a submorph of the application (an AthensWrapMorph)
>>> and not in the hand. The brown square is actually twice the extent that it
>>> appears (i.e., it has a 50 pixel transparent border). This has to be done
>>> to allow rotation handles to be added. Anyway, when it moves so that its
>>> top would go beyond the top of the application, some crazy rendering effect
>>> happens, as illustrated in the included screenshots. This same behavior
>>> happens when moving the square to the left side of the screen. It does not
>>> happen on either the right or the bottom of the screen. It seems like
>>> Athens does not like for submorphs of AthensWrapMorph to extend to the left
>>> or above their parent. This seems like a problem and something that can
>>> easily happen as somebody moves some morph to be partially offscreen.
>>>
>>>
>> Sounds like clipping issue. But it is hard to tell anything by looking at
>> screenshots..
>> Usually all things outside of visible area should be clipped.
>>  Also, note that dragging, like it is done in Morphic, the dragged morph
>> changes its owner to hand (handmorph)..
>> and since it is only within AthensWrapMorph it is where it uses rendering
>> by Athens, it could be simply the case that it don't renders at all (or
>> just uses morhic rendering while held by hand).
>>
>>
>>> Cheers,
>>>
>>> Jeff
>>>
>>> --
>>> Jochen "Jeff" Rick, Ph.D.
>>> http://www.je77.com/
>>> Skype ID: jochenrick
>>>
>>
>>
>>
>> --
>> Best regards,
>> Igor Stasenko.
>>
>
>
>
> --
> Jochen "Jeff" Rick, Ph.D.
> http://www.je77.com/
> Skype ID: jochenrick
>



-- 
Jochen "Jeff" Rick, Ph.D.
http://www.je77.com/
Skype ID: jochenrick

Reply via email to