1. I’ve found a little silly bug preventing some loops to be unrolled, so the ordered dithering code got a bit more optimized.

    On the other hand, I’ve found a way to make the dithering scale well in any resolution. Doing so reverted most of the speed gain from the unrolling, but the point is that there’s no need to keep multiple ordered dithering algorithms anymore, which makes things simpler.

    The smoothness of the ordered dithering can also be customized now, which means it’s possible to go from completely sharp to really very blurry. I don’t know if this could be useful for anything, and it’s not in my plans to implement yet another cvar in the engine just for this.

    I’d really like to implement ordered dithering in most of the drawing subsystems of this engine. I haven’t got any solid plans for this yet, but I’ve got a feeling it may be really easy to implement it in the 2D image drawing subsystems, due to the way I’m planning to rewrite them.

    Now, to the 2D image drawing subsystems. The basic idea is to make them automatically integer-scaled in the screen, and to have some kind of alignment going on to make up for different video aspects. A container system may also probably be needed, but I don’t want to make the 2D image drawing subsystems too sophisticated unless this makes things simpler in some other way.

    Having everything (except the console background) integer-scaled by the same factor should allow for some heavy optimizations of the ordered dithering in a simpler way.