-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Labels
featurelow-priorityProbably not going to happen any time soonProbably not going to happen any time soonterminal-emulationUpdates to existing emulations, or addition of new onesUpdates to existing emulations, or addition of new ones
Description
Aside from the VT100 confidence tests (which don't make any sense for a terminal emulator), this is the only VT220 feature not currently supported by K95. With this implemented, K95s VT220 emulation would be as comprehensive reasonably possible.
This feature may also not be especially difficult either. I guess the implementaiton would probably look something like:
- Implement DECDLD Device control string which will involve parsing Sixels, turning them into an HBITMAP or something and sticking them into one of the DRCS tables. This will really be the hard part.
- Then when the soft character set is designated, instead of doing character set conversion we'd set a soft-character attribute of some kind. This would work if only one soft character set is supported, but what about multiple soft character sets?
- At rendering time, if the soft character set attribute is set rather than rendering the character with a font, the characters bitmap would be looked up in the DRCS table, resized to fit the font size, and then painted in that character position.
Unanswered questions:
- If we take the attribute path, how do we handle multiple soft character sets? While the VT320 (and, I assume, the VT220) only has one DRCS table, the VT510 has three. So we would probably need at least two attribute bits, and there is currently only one free. Might need to increase the size of the char attribute (which may not actually increase memory use depending on structure padding)
- How do we handle soft characters in scrollback? Perhaps when a soft character set is redefined we go clear the attributes for anything in scrollback?
Reasons to do this:
- Completes VT220 emulation, and might also do the same for VT320 emulation
- Provides sixel handling code for future graphics terminal features
- Ability to play Termtris
Priority:
Low - nothing much uses it. Target some release post-3.0.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featurelow-priorityProbably not going to happen any time soonProbably not going to happen any time soonterminal-emulationUpdates to existing emulations, or addition of new onesUpdates to existing emulations, or addition of new ones