<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Thanks for this detailed explanation, Marcel. It really helps.<br>
<br>
Cheers,<br>
<br>
On 4/28/2022 4:40 AM, Marcel Taeumel wrote:
<blockquote
cite="mid:Mailbird-56a5c41a-f262-41de-87e0-ad06a442b7d4@hpi.de"
type="cite">
<pre wrap=""> </pre>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<meta http-equiv="Context-Type" content="text/html; charset=utf-8">
<div> Hi Tim --
<div><br>
</div>
<div>> <span>Given that this flag appears to be ignored in
Mac code,</span></div>
<div><span>> how is it involved in the window dragging?</span></div>
<div><span><br>
</span></div>
<div><span>The image always tries to set this flag to "true",
the primitive</span></div>
<div><span>126 never fails. So the image assumes that deferred</span></div>
<div><span>updating is supported.</span></div>
<div><span><br>
</span></div>
<div><span>After drawing all morphs onto Display, the patch
under the</span></div>
<div><span>HandMorph is then saved. Then the HandMorph (and the</span></div>
<div><span>submorphs/windows it is dragging) will be drawn onto</span></div>
<div><span>Display. Then </span><span>that saved patch will be
restored BUT without</span></div>
<div><span>telling the </span><span>VM via primitive 127.</span></div>
<div><span><br>
</span></div>
<div><span>Then the image is done and tells the VM to show
everything</span></div>
<div><span>on the video buffer. Without proper support of
primitive 126,</span></div>
<div><span>the VM platform code starts reading the displayBits
directly</span></div>
<div><span>only then. That is, w</span><span>ithout deferred
updating, that saved patch</span></div>
<div><span>under the </span><span>HandMorph is already restored
when the graphics</span></div>
<div><span>backend </span><span>starts reading the displayBits.</span></div>
<div><span><br>
</span></div>
<div><span>That's why the entire thing becomes invisible. Does
not</span></div>
<div><span>affect HandMorph without dragging anything because</span></div>
<div><span>we show a hardware cursor then.</span></div>
<div><span><br>
</span></div>
<div><span>Dragging via Morphic halo is also not affected
because</span></div>
<div><span>the hardware cursor will still be used and the morph</span></div>
<div><span>directly be moved.</span></div>
<div><span><br>
</span></div>
<div><span>The entire thing is a performance optimization
because</span></div>
<div><span>the HandMorph caches the pixels of the submorphs it
drags.</span></div>
<div><span><br>
</span></div>
<div><span>Best,</span></div>
<div><span>Marcel</span></div>
<blockquote type="cite">
<p>Am 27.04.2022 23:49:51 schrieb tim Rowledge
<a class="moz-txt-link-rfc2396E" href="mailto:tim@rowledge.org"><tim@rowledge.org></a>:</p>
<div> <br>
Please let's talk live on this; email is crap for debating
this sort of thing and far too often just gets everyone
cross.<br>
<br>
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.<br>
<br>
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.<br>
<br>
Given that this flag appears to be ignored in Mac code, how
is it involved in the window dragging?<br>
<br>
tim<br>
--<br>
tim Rowledge; <a class="moz-txt-link-abbreviated" href="mailto:tim@rowledge.org">tim@rowledge.org</a>; <a class="moz-txt-link-freetext" href="http://www.rowledge.org/tim">http://www.rowledge.org/tim</a><br>
Strange OpCodes: XYZZY: Branch and Play Adventure<br>
<br>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a class="moz-txt-link-freetext" href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a>
<a class="moz-txt-link-freetext" href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a class="moz-txt-link-freetext" href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a class="moz-txt-link-freetext" href="https://twitter.com/JuanVuletich">https://twitter.com/JuanVuletich</a></pre>
</body>
</html>