Dienstag, 10. Juni 2008

MaskFill / MaskBlit

Today I delayed the LCD text stuff, I don't know howto get any further so I posted a question to the 2d-dev list.
I hope I don't bother them too much, often something is not clean, but after asking it I spend some time iwth the code in a less stressed way, and find the answer.
However I am quite sure this time I won't be able to answer it myself ;)

Today I implemented some simple state-management.
It differs a lot from how X11 did it (there the state was held by the GC), because with XRender the state is spread over all possible places.
Solid color is sometimes used as XRenderColor, sometimes as Picture (for composition operations), clip is on the dst surface, transformation only on src.

For now I implemented only color values, however I guess later I'll have to do some kind of solid-fill-src-surface caching.

MaskFill / Blit:
MaskFill / Blit are really important pieces for antialiased rendering.
Today I looked a bit in how it was done in the OGL pipeline and fighted with creating my own instance of XRPixmapSurfaceData without allocating a VI.

The reason why this is hepful is that for X11 the up/download of data is more complicated than for OGL (where a simple glTexSubImage2D is all you need), and there are several ways of passing data down to X.
Of course the whole code is already there from the old X11 pipeline, but to be able to re-use it I need the XSDO structure it depends on.
Well it was easier than I thout, and I removed some ugly hacks I did some time before.

So tomorrow will be MaskFill day :)

Keine Kommentare: