Plan 9 bitmap graphics

The overall style of Plan 9's graphics has its ancestry in the software for the Bell Labs' Blit terminal [1], although the implementation is quite different.


%T Hardware/software trade-offs for bitmap graphics on the Blit

%X The Blit is an experimental bitmap graphics terminal built for research into
interactive computer graphics on the UNIX time-sharing system. The hardware is
inexpensive and the graphics functions are implemented entirely in software.
Nevertheless, the graphics performance of the Blit is comparable or superior to
some displays with special-purpose graphics hardware. This paper explains the
paradox by referring to some principles of design: the hardware and software
should be designed together to complement each other; carefully designed
software can outperform infelicitous hardware; and simplicity of design leads
to efficiency of execution. These principles are illustrated by examples from
the Bit hardware and software and comparisons with other systems
%K compiling on the fly, Blit, bitmap graphics terminal, interactive computer
graphics, UNIX time-sharing system, infelicitous hardware
%O Softw. - Pract. Exp. (UK)
%J Software - Practice and Experience
%A Pike, R.
%A Locanthi, B.
%A Reiser, J.
%V 15
%N 2
%P 131-51
%D Feb. 1985

%T Graphics in overlapping bitmap layers %X One of the common uses of bitmap terminals is storing multiple programming contexts in multiple, possibly overlapping, areas of the screen called windows. Windows traditionally store the visible state of a programming environment, such as an editor or debugger, while the user works with some other program. This model of interaction is attractive for one-process systems, but to make full use of a multiprogramming environment, windows must be asynchronously updated, even when partially or wholly obscured by other windows. For example, a long compilation may run in one window, displaying messages as appropriate, while the user edits a file in another window. The author describes a set of low-level graphics primitives to manipulate overlapping asynchronous windows, called layers, on a bitmap display terminal. Unlike previous window software, these primitives extend the domain of the general bitmap operator bitblt to include bitmaps that are partially or wholly obscured %K graphics, overlapping, bitmap layers, bitmap terminals, multiple programming, screen, windows, multiprogramming, low-level graphics, asynchronous windows %O Comput. Graph. (USA) %J Computer Graphics %O SIGGRAPH '83 %A Pike, R. %V 17 %N 3 %P 331-56 %D 1983

%T Graphics in overlapping bitmap layers %X Describes a set of low-level graphics primitives to manipulate overlapping asynchronous windows, called layers, on a bitmap display terminal. Unlike previous window software, these primitives extend the domain of the general bitmap operator bitblt to include bitmaps that are partially or wholly obscured %K bitmap layers, low-level graphics primitives, overlapping asynchronous windows, bitblt %O ACM Trans. Graph. (USA) %J ACM Transactions on Graphics %A Pike, R. %V 2 %N 2 %P 135-60 %D April 1983

%T Fast bitblt() with asm() and cpp %A B. N. Locanthi %J European UNIX Systems User Group Autumn Conference %C Trinity College, Dublin, Eire %D September 1987 %P 243-259 %K Bitmap graphics Autumn87