Up and awake again...
MrX: I know it's a bit of pain when you rely on rotating the display a lot.. But the new format is more consistent - and also provides much better performance than the old one. Hope it's not too hard to use...
Spock: If possible, can you email your font to me so I can give it a try?
johan.sanneblad@home.se . It should not stop printing after a space, and if it worked previously then something is wrong.
tedson: Thanks, I'll have a look at the display functions immediately. Good thing the font works.. The new font support will be nice since it will help in providing German and French localized versions...
egarayblas: Thanks a lot for the screenshots! It was broken exactly where I found the issue (where destination pixel is un-even (1, 3, 5, etc) and two source pixels are copied, but only the second one is anti-aliased - breaking the first one - lots of optimizations going on there). I stepped through all the new code 3 more times yesterday (phew) and am beginning to feel confident with it again.. I'll have a look at the FillRect function - which also had its share of optimizations (I found out that using 16x loop unrolling improved performance up to 250% on stationary PCs - on Pocket PCs the difference to the old 2x unrolling is almost nothing)... Finally, I guess you got SaveSurface working? I changed the syntax code to be more consistent with the rest (CreateSurface has flags first, all other functions have flags last, except for return values that are always placed last). By the way.. It was the old way of alpha blitting that was improved the most in performance.. If you use even X and Y coordinates (0, 2, 4, and so on), GapiDraw will copy two pixels simultaneously (GapiDraw surfaces are always DWORD-aligned in both directions, X and Y).