<div dir="ltr">
<div id="gmail-page"><div id="gmail-contents"><div id="gmail-contentsInner"><pre><code>Class comment for VMMaker-Interpreter/BitBltSimulation

 has some information. This information is not in the image currently.<br></code></pre><pre><code><br></code></pre><pre><code><br>This class implements BitBlt, much as specified in the Blue Book spec.

Performance has been enhanced through the use of pointer variables such as sourceIndex and destIndex, and by separating several special cases of the inner loop.

Operation has been extended to color, with support for 1, 2, 4, 8, 16, and 32-bit pixel sizes.  Conversion between different pixel sizes is facilitated by accepting an optional color map.

In addition to the original 16 combination rules, this BitBlt supports
        16      fail (for old paint mode)
        17      fail (for old mask mode)
        18      sourceWord + destinationWord
        19      sourceWord - destinationWord
        20      rgbAdd: sourceWord with: destinationWord
        21      rgbSub: sourceWord with: destinationWord
        22      OLDrgbDiff: sourceWord with: destinationWord
        23      OLDtallyIntoMap: destinationWord -- old vers doesn't clip to bit boundary
        24      alphaBlend: sourceWord with: destinationWord
        25      pixPaint: sourceWord with: destinationWord
        26      pixMask: sourceWord with: destinationWord
        27      rgbMax: sourceWord with: destinationWord
        28      rgbMin: sourceWord with: destinationWord
        29      rgbMin: sourceWord bitInvert32 with: destinationWord
        30      alphaBlendConst: sourceWord with: destinationWord -- alpha passed as an arg
        31      alphaPaintConst: sourceWord with: destinationWord -- alpha passed as an arg
        32      rgbDiff: sourceWord with: destinationWord
        33      tallyIntoMap: destinationWord
        34      alphaBlendScaled: sourceWord with: destinationWord
        35 alphaBlendScaled: sourceWord with:   "unused here - only used by FXBlt"
        36 alphaBlendScaled: sourceWord with:   "unused here - only used by FXBlt"
        37 rgbMul: sourceWord with: destinationWord
        38 pixSwap: sourceWord with: destinationWord
        39 pixClear: sourceWord with: destinationWord
        40 fixAlpha: sourceWord with: destinationWord
        41 rgbComponentAlpha: sourceWord with: destinationWord

This implementation has also been fitted with an experimental "warp drive" that allows abritrary scaling and rotation (and even limited affine deformations) with all BitBlt storage modes supported.

To add a new rule to BitBlt...
        1.  add the new rule method or methods in the category 'combination rules' of BBSim
        2.  describe it in the class comment  of BBSim and in the class comment for BitBlt
        3.  add refs to initializeRuleTable in proper positions
        4.  add refs to initBBOpTable, following the pattern
</code></pre></div></div></div><div id="gmail-bottom"><table width="100%" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td align="left"><a href="http://validator.w3.org/check/referer">XHTML</a> | <a href="http://jigsaw.w3.org/css-validator/check/referer">CSS</a> | <a href="http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fsource.squeak.org%2Ffeed.rss">RSS</a></td><td align="right"><br></td></tr></tbody></table></div>

</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Sep 21, 2020 at 9:31 PM Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div>


<div dir="ltr">
<div id="gmail-m_79266956531981799x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif">
<p>Thanks for the pointer, Stef. I think we really need some kind of documentation of the form rules to decide whether we can apply Marcel's solution. Did anyone ever read something about it?</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
<div id="gmail-m_79266956531981799x_Signature">
<div id="gmail-m_79266956531981799x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<div name="x_divtagdefaultwrapper">
<div>
<div id="gmail-m_79266956531981799x_Item.MessagePartBody">
<div id="gmail-m_79266956531981799x_Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="gmail-m_79266956531981799x_divtagdefaultwrapper"><font face="Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="gmail-m_79266956531981799x_Signature">
<div style="margin:0px"><font style="font-family:Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont">
<div><font size="3" color="black"><span style="font-size:12pt"><a href="http://www.hpi.de/" rel="noopener noreferrer" id="gmail-m_79266956531981799LPNoLP" target="_blank"><font size="2"><span id="gmail-m_79266956531981799LPlnk909538"><font color="#757B80"></font></span></font></a></span></font></div>
</font></div>
</div>
</font></div>
</div>
</div>
</div>
</div>
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_79266956531981799x_divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>Von:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank">squeak-dev-bounces@lists.squeakfoundation.org</a>> im Auftrag von Stéphane Rollandin <<a href="mailto:lecteur@zogotounga.net" target="_blank">lecteur@zogotounga.net</a>><br>
<b>Gesendet:</b> Samstag, 19. September 2020 22:34:21<br>
<b>An:</b> <a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank">squeak-dev@lists.squeakfoundation.org</a><br>
<b>Betreff:</b> Re: [squeak-dev] ColorForm with transparency not working properly</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt">
<div>> But unfortunately, I could not find any documentation about the
<br>
> different Form rules such as #blend, #over, #paint etc. Can you give me <br>
> some pointers?<br>
Related thread:<br>
<a href="http://forum.world.st/ImageForm-color-with-alpha-td5090574.html" target="_blank">http://forum.world.st/ImageForm-color-with-alpha-td5090574.html</a><br>
<br>
Stef<br>
<br>
</div>
</span></font>
</div>

<br>
</blockquote></div>