From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: <14ec7b180903041445n3d85c298g911c825fca617d78@mail.gmail.com> Date: Wed, 4 Mar 2009 18:29:26 -0700 Message-ID: <14ec7b180903041729g772d2aa3sae266e08cbcfab89@mail.gmail.com> From: andrey mirtchovski To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/mixed; boundary=000e0cd2be4456edf30464551948 Subject: Re: [9fans] Porter-Duff alpha blending Topicbox-Message-UUID: b2b5f57e-ead4-11e9-9d60-3106f5b1d025 --000e0cd2be4456edf30464551948 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit in the case of 9vx running on Linux it's x8r8g8b8, drawterm on osx is also x8r8g8b8. here's how it breaks down drawing to display: source destination error XRGB32 XRGB32 no XBGR32 XRGB32 no ARGB32 XRGB32 yes (see attached) RGBA32 XRGB32 yes i've done a bit more testing and will hopefully have a full table for 32-bit images later tonight: --000e0cd2be4456edf30464551948 Content-Type: image/png; name="xrgb-XRGB32.png" Content-Disposition: attachment; filename="xrgb-XRGB32.png" Content-Transfer-Encoding: base64 X-Attachment-Id: f_frwreoqd0 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 IPD/LPB/CPNxItKyHhgAAAAASUVORK5CYII= --000e0cd2be4456edf30464551948--