TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Steffen Offermann
from: Marcel Vandevusse
date: 1996-05-28 20:57:04
subject: Re: Fast colored GPI text output -

Replying to a message of Steffen Offermann to Erik Huelsmann:

 SO> Moin!

 >> [About fast colored text output]

 SO>>> So, can anybody tell me how this is done?
 >> cluster your letters by color and row?
 >> If a row is one color, output it in one piece, if it contains
 >> more colors, output it in as many pieces..

 SO> Sure, that's not in question. But that's still extremely slow using
 SO> the bitmap method. On the other hand I used direct painting in an
 SO> earlier project, where I had to output text in many different colors
 SO> (emulation of an ANSI text terminal) at different positions, and the
 SO> result was inacceptable. So there _must_ be yet another, better
 SO> solution since there are terminal programms and PM text editors or
 SO> word processors with syntax highlighting that demonstrate it.

I am (have been for a while) about half way into a BBS/terminal program,
and experimented with several different ways to do colored text output. The
fastest way I came up with is to write characters to a memory bitmap, and
copy the appropriate part of the bitmap into the window. When a scroll
needs to be done, scroll the bitmap by doing a bitblt to itself, and a
WinScrollWindow to scroll the window. I also do not do synchronize WM_PAINT
messages.

This way, redraws are done very quickly, and if the computer is too busy to
display each character seperatly as they come in, you can do a bitblt for
several characters at once.

It is not the simplest way to do things, but it is faster than anything
else I have tried; and as far as I know I have tried just about everything
except AVIO.

There is just one problem I am having: I can not think of an easy solution
to handle the "blink" attribute.

Marcel,                 Check out our new baby pics at:
[Team OS/2]             http://www.bright.net/~mvusse

--- FleetStreet 1.12 NR
* Origin: The Legacy Continues (1:2265/60.1)
SEEN-BY: 50/99 270/101 620/243 711/401 409 410 413 430 808 809 934 955
SEEN-BY: 712/407 515 517 628 713/888 800/1
@PATH: 666/106 2265/60 2215/1 3615/50 396/1 270/101 712/515 711/808 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.