From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: From: erik quanstrom Date: Fri, 31 Mar 2006 12:52:29 -0600 To: 9fans@cse.psu.edu Subject: Re:_[9fans]_libdraw_α_differences_between_plan_9__and_p9p MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Topicbox-Message-UUID: 2aa53ee0-ead1-11e9-9d60-3106f5b1d025 the answer is i didn't understand that there was a bug in the draw library; i was not sure if there was a little hidden magic on plan9 that made that work - erik On Fri Mar 31 12:09:26 CST 2006, rsc@swtch.com wrote: > > i've noticed a difference in how the =CE=B1 channel looks in p9p vs. > > plan 9. for example when porting mahjongg to plan9port, > > i need to make this change to make the selection highlighting > > apparent: > >=20 > > - selected =3D eallocimage(one, 1, RGBA32, setalpha(DPalebluegreen, = 0x5f)); > > + selected =3D eallocimage(one, 1, RGBA32, setalpha(DPalebluegreen, = 0x9f)); > >=20 > > is a mapping needed to convert libdraw =CE=B1 values to X? >=20 > This is the wrong question. The right question is why you=20 > changed this line: >=20 > if(level.board[d][x][y].clicked) > - draw(img, r, selected, nil, ZP); > + draw(img, r, selected, selected, ZP); >=20 > Since you're drawing selected through itself, you're effectively > squaring the alpha, and (0x9F^2)/255 is approximately 0x5F, so > this change necessitates the first one. >=20 > I see why you changed the draw call, though, since on X, it > just ignored the alpha channel in selected and just draws > a big solid-color rectangle over the tile. This was due to a=20 > bug in the X wrappers around libdraw and is now fixed. >=20 > Russ >=20 > P.S. Upas/marshal encodes subjects "correctly" now too. >=20