<div class="gmail_quote">On Sun, Jul 3, 2011 at 11:33 AM, Cyrille Berger Skott <span dir="ltr"><<a href="mailto:cberger@cberger.net">cberger@cberger.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><div></div><div class="h5">On Saturday 02 July 2011, Sven Langkamp wrote:<br>
> On Sat, Jul 2, 2011 at 5:28 PM, Cyrille Berger Skott<br>
<<a href="mailto:cberger@cberger.net">cberger@cberger.net</a>>wrote:<br>
> > On Tuesday 28 June 2011, Cyrille Berger Skott wrote:<br>
> > > Alternatively, you need to refactor pigment, you have two paths:<br>
> > > * huge refactoring: the alpha channel is seperated from the color<br>
> > > space, and RGB and RGBA becomes the same class (or Gray and GrayA), in<br>
> > > the paint device, the channel is added seperately, and when bitblt, we<br>
> > > pass a seperate pointer to the alpha channel, that can be null or not<br>
> > > (ie like the mask)<br>
> > > * smaller solution: make it possible to create composite op that work<br>
> > > across color spaces<br>
> ><br>
> > There is a third solution<br>
> > * detect in KoColorSpace::bitBlt that the destination color space is the<br>
> > same<br>
> > as the source color space without alpha, and add an alpha channel to the<br>
> > data<br>
> > and then discard it, but that is not going to be performant.<br>
><br>
> I thought about that too, but then you pratically need another paint device<br>
> in grayscale colorspace than is used for a tempory bitBlt.<br>
> Of course that means two bitBlt.<br>
<br>
</div></div>Well no. you can do it directly in KoColorSpace::bitBlt.<br></blockquote></div><br>Try that but I didn't get it to work, see attachment. Is that what you suggested?<br>