RFC 181 UNKNOWN GRAPHICS · ARPANET

Modifications to RFC 177

A revision to coordinate areas and scaling in the RFC 177 graphics proposal.

On rfc-editor.org ↗
PUBLISHED
July 1971
AUTHORS
J. McConnell
STREAM
Legacy
BUILDS ON
RFC 177 — Device independent graphical display description
COORDINATE FORMAT
16-bit unsigned normalized fractions
AREA NAME
16-bit integer
NEW MODE STACK ITEMS
Types 14 to 17
DOI
10.17487/RFC0181

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
                         NETWORK WORKING GROUP

                        REQUEST FOR COMMENTS 181

                               NIC #7124

                             JUNE 27, 1971



                            JOHN Mc CONNELL


                          AMES RESEARCH CENTER

                        MOFFET FIELD, CALIFORNIA



                       MODIFICATIONS TO RFC #177




CATEGORY  D.6
RFC's Obsoleted  none
RFC's Updated    177

                      MODIFICATIONS TO RFC #177

    This RFC is intended to modifiy the proposal for a device
independent graphical display description discussed in RFC #177.  Thanks
are due to Stan Mantiply of Ames for his ideas.  The main changes are in
the defini- tion of coordinate areas to avoid one problem encountered
with the old definition and to provide more flexibility.  Terms used are
those defined in RFC #177.

    The problem encountered in the previous proposal was that the areas
of the NGS (network standard graphics screen), which were supposed to be
absolute boundaries, could be crossed when a list was executed within
that space.  Scaling of lists was also awkwardly done with specific
commands in the network standard graphic display list (NGDL).

    Coordinates will still be defined with 16 bit unsigned normalized
fractions.  This will leave the resolution of the picture up to the de-
vice which eventually receives the NGDL.  The values will not now be
tied to the NGS or an area of the screen, but will be fractional
displace- ments from the lower left corner of the screen, an area, or an
image space.

    Areas will still be rectangular and will be allowed to overlap, but
not contain another area completely.  The attributes of an area are: its
16 bit integer name, by which it may be manipulated, two (x,y) pairs
which will define its lower left and upper right corners with respect to
the NGS.  No list executed in an area may cross its boundaries.  Within
an area may be any number of image spaces which are dynamically defined
with the execution of a list and define its relationship to the contain-
ing area.

    The list item types 7 and 8 shall be changed from EXECUTE LIST
(Name,x,y) and COPY LIST (Name,x,y) to EXECUTE LIST
(Name,(Xl,Yl),(Xr,Yr)) and COPY LIST (Name,(Xl,Yl),(Xr,Yr))
respectively.  The coordinate pairs (Xl,Yl) and (Xr,Yr) define the image
area of that list as displacements from the lower left corner of the
containing area.  If the list executes other lists within it, their
image areas are defined as displacements from the image area of the list
containing the execute command.  Thus each list can be scaled
differently each time it is executed and may even be distorted if the
image area defined has different ratios of X and Y lengths.  Lists
executed within other lists will have the same relationship to their
containing lists regardless of that lists's rela- tionship to the NGS
area.  Since the initial image area is defined rela- tive to the NGSD
area, no overlaps can occur.

If a table (item type = 9) is executed, the coordinate pairs it
contains are relative to whatever area is valid at the time of its exe-
cution.

    A change to the NGLI is implied.  Whenever an EXECUTE LIST command
is encountered, the current state is saved, a new current origin is com-
puted, NGLP is reset to zero, and new X and Y scale factors must be cal-
culated to transform the coordinates in the new list to actual screen
coor- dinates.

    Another construct for graphics processing will be added.  This is
the mode stack for each graphics mode.  It will be used for saving and
restoring character and vector mode values as lists are recursively exe-
cuted.  Four new list items will be added to handle these operations.

   PUSH CHARACTER MODE    (item type = 14)
   PUSH VECTOR MODE       (item type = 15)
   POP CHARACTER MODE     (item type = 16)
   POP VECTOR MODE        (item type = 17)

    The DEFINE LIST command (type = 1) shall have its parameters
changed.  It shall have two parameters, a 16 bit integer name, by which
it may be manipulated and referenced, and a 16 bit integer defining the
length of the list in bytes rather than items.  This change is intended
to make processing the NGDS easier and will eliminate the TABLE item
(type = 11).

    The first three list items should have the WORD IMAGE eliminated
from them, since they are defining NGS areas now.

    The list command DEFINE IMAGE ARE (type = 2) shall be changed to
DEFINE AREA for the same reasons.


       [ This RFC was put into machine readable form for entry ]
         [ into the online RFC archives by Gert Doering 6/97 ]

ISO Plain Language

On this page
PROBLEMIn RFC 177, graphics lists could cross intended area boundaries, and scaling lists was awkward.
MECHANISMRFC 181 defines coordinates as normalized fractions relative to an area or image space, and changes execute and copy list commands to specify two corners.
WHAT CHANGESIt also adds mode-stack commands and changes the definition of a list. The unit metadata says it updates RFC 177.

§1Problems in the Earlier Proposal

RFC 181 modifies the device-independent graphics proposal in RFC 177. The earlier area boundaries were meant to be absolute, but a list executed within an area could cross them. Scaling lists also relied on specific commands in the network graphic display list.

The earlier proposal could let a drawing cross its area's boundary. It also made resizing a list awkward.

§2Areas and Relative Coordinates

Coordinates remain 16-bit unsigned normalized fractions, but are defined as fractional displacements from the lower-left corner of the screen, an area or an image space. The receiving device determines picture resolution.

Areas remain rectangular and may overlap, but one area may not completely contain another. Each area has a 16-bit integer name and lower-left and upper-right coordinate pairs relative to the network standard graphics screen. A list executed in an area may not cross that area's boundaries.

Coordinates are measured relative to the area where a list runs. The receiving display can map those fractions to its own screen resolution.

§3List Scaling and Mode Stacks

List items 7 and 8 become EXECUTE LIST and COPY LIST commands with two coordinate pairs defining the image area. The pairs are relative to the containing area, so a list can be scaled differently each time it runs and can be distorted when the horizontal and vertical ratios differ.

Executing a list saves current state, computes a new origin, resets NGLP to zero and calculates new X and Y scale factors. Four new items push or pop character and vector modes: types 14 through 17.

Each execution can place a list in a chosen area and scale it for that area. New commands save and restore character and vector settings while lists run.

§4Other Command Changes

DEFINE LIST now takes a 16-bit integer name and a 16-bit length measured in bytes rather than items. The RFC says this makes NGDS processing easier and eliminates the TABLE item, type 11.

The first three list items drop the words WORD IMAGE, and DEFINE IMAGE AREA becomes DEFINE AREA.

The RFC changes some command names and the way list length is recorded. It also removes the TABLE item.

§5References