[fpc-pascal] TurboVision is reborn as FOSS (again)

gabor gabor at poczta.onet.pl
Tue Dec 22 23:20:42 CET 2020


W dniu 2020-12-22 o 11:13, Marco van de Voort via fpc-pascal pisze:
> The problem is that multiple unicode codepoints might translate to one 
> character. But that character might have variable width (1, 1.5, 2). And 
> the rendering of codepoints to characters is output device (terminal, 
> GUI canvas) dependent.

Sorry, I keep mistaking code point for character. I thought that the 
code point is a value in the range 0..10FFFF. I don't think I fully 
understand Unicode...

> First and for all, I would keep the buffer private. This allows to keep 
> the buffer in a format suitable to quickly convert to the output device, 
> and access won't be simple array like anyway. This also abstracts final 
> writing API and end device encoding.
> 
> Maybe have multiple arrays, one for one codepoint per character, and one 
> larger ones for additional ones.
> 
> This way you can simply scan the larger array if there are additional 
> ones, and if not, emit the primary one in a straightforward way.

But an off-screen drawing buffer would also be useful. For example, FV 
uses such a buffer to draw views (TDrawBuffer = Array [0..MaxViewWidth - 
1] Of Word).
Buffer declared as an array of records with character and color elements 
could be easily and quickly drawn in another buffer.

Michał.


More information about the fpc-pascal mailing list