[Vm-dev] Primitive 126 | Its problems and its future :-)

Juan Vuletich JuanVuletich at zoho.com
Thu Apr 28 12:06:25 UTC 2022


Thanks for this detailed explanation, Marcel. It really helps.

Cheers,

On 4/28/2022 4:40 AM, Marcel Taeumel wrote:
>   
>
>
> Hi Tim --
>
> > Given that this flag appears to be ignored in Mac code,
> > how is it involved in the window dragging?
>
> The image always tries to set this flag to "true", the primitive
> 126 never fails. So the image assumes that deferred
> updating is supported.
>
> After drawing all morphs onto Display, the patch under the
> HandMorph is then saved. Then the HandMorph (and the
> submorphs/windows it is dragging) will be drawn onto
> Display. Then that saved patch will be restored BUT without
> telling the VM via primitive 127.
>
> Then the image is done and tells the VM to show everything
> on the video buffer. Without proper support of primitive 126,
> the VM platform code starts reading the displayBits directly
> only then. That is, without deferred updating, that saved patch
> under the HandMorph is already restored when the graphics
> backend starts reading the displayBits.
>
> That's why the entire thing becomes invisible. Does not
> affect HandMorph without dragging anything because
> we show a hardware cursor then.
>
> Dragging via Morphic halo is also not affected because
> the hardware cursor will still be used and the morph
> directly be moved.
>
> The entire thing is a performance optimization because
> the HandMorph caches the pixels of the submorphs it drags.
>
> Best,
> Marcel
>>
>> Am 27.04.2022 23:49:51 schrieb tim Rowledge <tim at rowledge.org>:
>>
>>
>> Please let's talk live on this; email is crap for debating this sort 
>> of thing and far too often just gets everyone cross.
>>
>> Whilst it's certainly true that the prim 126 has failed to return any 
>> useful flag value since at least 1998 (the earliest mention I have in 
>> email/source) it *does* set a value that is freely available to 
>> platform specific code. Mind you, the value is not initialised by 
>> default, which could cause much fun.
>>
>> The only platform code I see that does reference it is Windows in 
>> ioForceDisplayUpdate(). Many platform versions of that do nothing, 
>> others actually move bits.
>>
>> Given that this flag appears to be ignored in Mac code, how is it 
>> involved in the window dragging?
>>
>> tim
>> --
>> tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
>> Strange OpCodes: XYZZY: Branch and Play Adventure
>>
>>


-- 
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
https://independent.academia.edu/JuanVuletich
https://www.researchgate.net/profile/Juan-Vuletich
https://patents.justia.com/inventor/juan-manuel-vuletich
https://twitter.com/JuanVuletich

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20220428/d4f613ec/attachment.html>


More information about the Vm-dev mailing list