On Wed, 5 Jun 2019 22:28:30 +0200, Mike Wey wrote:

On 05-06-2019 00:08, Alex X wrote:

Unfortunately it didn't work. Well, I have a drawing underneath that seems to get darker suggesting it is working for that but the lines I'm drawing on top did not change ;/

It looks like it is one of the blending modes but the above simply does not work, In fact, it produces some weird ghosting effects when the drawing area moves. If I use IN things are worse, nothing is drawn at first then everything is very glitchy.

It seems that with SOURCE, what happens is that the drawing area is not cleared and so moving it around will produce overlapping images that blend per frame... which doesn't make sense for SOURCE... but maybe it suggests I need to clear the drawing area per frame?

I might need to take a look at some cario drawing code because I might not be setting stuff up correctly.

I had some more time to test, But when there is no transparency involved
OVER and SOURCE behave the same.

For a Drawing Area you usually have to redraw it completely when it's
repainted.

But is does appear to anti aliasing like Ron suggests, the default seems
to use some transparency. You can turn anti aliasing of with:

context.setAntialias(CairoAntialias.NONE);

Some of the other option might produce a better result.

hmm... I replied but it didn't go through I guess.

It did work. Strange that AA would screw up the line. It shouldn't mess with the original like it does. Maybe there is a setting that modifies it's behavior?

Another question: Is there any way to draw over a widget easily? e.g., get a context of a widget and just draw on it over all the children widgets for a container and it not mess with anything(just purely visual).