<!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>