What is an output primitive? what is atomic, what is molecular? I believe we should take as our working definition that primitives are those constructs which:
Point 1 is intended to assure that the standards framework not preclude use of currently available hardware primitives. Point 2 is a hedge against the future and is beset by problems like foggy crystal balls and excessive optimism. Point 3 is a means of assuring that we really are talking here about primitives. Of course the standard might also specify non-primitive constructs which are frequently useful (and are implemented using primitives) but our concern in this section is with primitives.
The primitives listed below are marked with a (1) or (2), to indicate the category into which I believe they fall.
While circular and elliptical arcs are special cases of conic sections, some display systems have only a circle generator, or a circle/ellipse generator. Others can display general conics.
For a working definition, let us define text as the printable ASCII characters. Symbols are all other patterns which are, or might be, displayed by a hardware or software character generator under the general guise of special characters.
Dan Bergeron suggested that we consider text from two viewpoints:
The distinction is important: in the former case, issues of font, spacing, and aspect ratio are not important, while in the latter case they can be quite significant.
Issues which we should address are:
I recommend that we do not become involved in text issues relating to font details. This becomes a graphics art and printing industry concern. At most, I would suggest that we define a means of telling the graphics package which text font is desired, with some mechanism in the standard framework for assigning numbers to fonts.
I further recommend that a standard adopt a range of acceptable defaults for all of the above character considerations, so the program using text to simply communicate to the user can do so in a simple way.
Another issue we should not consider is formatted output of numeric values. The application programmer, perhaps using utility routines, converts a number to a character string, then causes the string to be displayed.
Other issues we should not directly address are those related to typesetting, such as:
These can all be indirectly treated by use of the move primitive, and drawing single characters of specified sizes. That is, the above issues are not primitives and must therefore be ignored.
Symbols, as contrasted to text, are an even stickier widget. I have no comments at this time.
My comments are best viewed in the perspective set by Luis Villalobos in his article Virtual Graphic Device, Computer Graphics Quarterly, Winter 1974. Some comments supplement and others contradict the position taken by Luis.