Module #05.02 : Workstation updating

All PVT documentation can be found under PHIGS Validation Tests - Overview. You may also return to the hierarchical table of topics covered by the PVT. For an explanation of the format of the individual module documentation, please see section 2.5 of the User's Guide.


DESCRIPTION:
This module tests the control and reporting of the actual update
state of the workstation with respect to requested state, as
expressed by the CSS, workstation tables, and posting.

SEMANTIC REQUIREMENTS:

*** *** ***   Direct access to workstation state   *** *** ***


SR1. The valid deferral-modes are ASAP, ASTI, BNIL, BNIG, and WAIT.
#F 7 221 261
#D 5.8.1 6.9.1
#S 4.6.3/70/4 6.6/317/1 6.7/321/1
#T P01/1 P01/4

SR2. The valid modification-modes are NIVE, UWOR, or UQUM.
#F 7 221 261
#D 5.8.2 6.9.2
#S 4.6.3/71/1 6.6/317/1 6.7/321/1
#T P01/1 P01/4

SR3. <Set display update state> sets the current deferral-mode as ASAP, ASTI, BNIL, BNIG, or WAIT and modification-mode as NIVE, UWOR, or UQUM for the workstation.
#F 7
#D 5.8.1 5.8.2
#S 4.6.3/70/1
#T P01/4 P04/1 P04/2 P04/3 P04/4 P05/1 P05/2 P06/1 P06/2 P06/3 P06/4
#T P07/1 P07/2 P07/3 P07/4

SR4. <Inquire display update state> reports the current deferral mode, modification mode, display surface empty, and state of visual representation for the workstation.
#F 221
#D 5.8.1 5.8.2 5.8.3 5.8.4
#S 4.6.3/70/3
#T P01/2 P01/3 P01/4 P02/1 P02/2 P02/3 P02/4 P02/5 P02/6 P02/7 P03/1
#T P03/2 P03/3 P03/4 P04/1 P04/2 P04/3 P04/4 P05/1 P05/2 P06/1 P06/2
#T P06/3 P06/4 P07/1 P07/2 P07/3 P07/4

SR5. <Inquire default display update state> reports the default deferral mode and modification mode for the workstation type.
#F 261
#D 6.9.1 6.9.2
#S
#T P01/1

SR6. <Inquire dynamics of workstation attributes> reports the modification severity for the 12 kinds of workstation changes as IMM, IRG, or CBS.
#F 260
#D 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.8.6 6.8.7 6.8.8 6.8.9 6.8.10
#D 6.8.11 6.8.12
#S 4.6.3/69/2
#T P08/1 P08/3

SR7. <Inquire dynamics of structures> reports the modification severity for the 5 kinds of structure changes as IMM, IRG, or CBS.
#F 286
#D 6.22.1 6.22.2 6.22.3 6.22.4 6.22.5
#S 4.6.3/69/2
#T P08/2 P08/3

*** *** *** *** ***   Initialization  *** *** *** *** ***


SR8. After <open workstation> and before <set display update state>, the current deferral mode and modification mode = the default deferral mode and modification mode.
#F 3 7
#D 5.8.1 5.8.2 6.9.1 6.9.2
#S 6.6/317/1
#T P01/2

SR9. Immediately after <open workstation>, the display surface = EMPTY and the state of visual representation = CORRECT.
#F 3
#D 5.8.3 5.8.4
#S 6.6/317/1
#T P01/3 P02/1

*** *** *** *** ***   Display surface   *** *** *** *** ***


SR10. A primitive is logically visible on a workstation if its name set is not eligible for invisibility, some part of it lies inside the workstation window after undergoing the most recently requested viewing transformations, and it is contained within a structure network posted to the workstation.
#F 132 83-85 87-90
#D 5.4 5.6 5.7
#S 4.4.3/25/4 4.7.6/91/2
#T P02/1 P02/2 P02/3 P02/4 P02/5 P02/6 P02/7

SR11. If the state of visual representation is CORRECT and there are logically visible primitives on a workstation, then the display surface of that workstation is NOTEMPTY.
#F 221
#D 5.8.3 5.8.4
#S 4.6.3/70/2
#T P02/2 P02/3 P02/6

SR12. If the state of visual representation is CORRECT and there are no logically visible primitives on a workstation, then the display surface of that workstation is EMPTY.
#F 221
#D 5.8.3 5.8.4
#S 4.6.3/70/2
#T P02/1 P02/4 P02/5 P02/7

*** *** *** ***   State of visual representation   *** *** *** ***


SR13. The state of visual representation of a workstation is CORRECT if and only if there are no deferred visual changes for that workstation.
#F 221
#D 5.8.4
#S 4.6.3/70/2
#T P01/3 P03/1 P03/2 P04/1 P04/2 P04/3 P04/4 P05/1 P05/2 P06/1 P06/2
#T P06/3 P06/4 P07/1 P07/2 P07/3 P07/4 P08/3

SR14. The state of visual representation of a workstation is SIMULATED if and only if there are deferred visual changes for that workstation, but they have all been simulated.
#F 221
#D 5.8.4
#S 4.6.3/70/2
#T P05/1 P05/2 P06/4 P07/4 P08/3

SR15. The state of visual representation of a workstation is DEFERRED if and only if there are deferred visual changes for that workstation, and some have not been simulated.
#F 221
#D 5.8.4
#S 4.6.3/70/2
#T P05/1 P05/2 P06/2 P06/4 P07/2 P07/4 P08/3

*** *** *** *** ***   Explicit updating   *** *** *** *** ***


SR16. <Redraw all structures> causes the state of visual representation to be CORRECT.
#F 5
#D 5.8.4
#S 4.6.3/70/9 4.6.3/72/1 4.6.3/73/1
#T P03/1 P08/3

SR17. <Update workstation> with regeneration flag = PERFORM causes the state of visual representation to be CORRECT.
#F 6
#D 5.8.4
#S 4.6.3/70/9 4.6.3/72/1 4.6.3/73/1
#T P03/2

SR18. <Update workstation> with regeneration flag = POSTPONE performs all deferred visual changes which do not require implicit regeneration.
#F 6
#D 5.8.4
#S
#T P03/3 P03/4

*** *** *** *** ***   Visual changes   *** *** *** *** ***


SR19. A picture change of category IRG may require regeneration of the display image of the workstation.
#F 260 286 9-71 73-85 87-90 113 116 118 122-134 142-144 150
#D 6.8 6.22
#S 4.6.3/69/3 4.6.3/74/1 4.6.3/75/1
#T P05/2 P08/3 #C Although IRG means that sometimes a regeneration is required,
some changes in the category may also be able to be simulated
or to be done immediately.

SR20. A picture change of category CBS may require regeneration of the display image of the workstation for the image to be correct, but if so, there must exist a quick update method by which the image can be simulated.
#F 260 286 9-71 73-85 87-90 113 116 118 122-134 142-144 150
#D 6.8 6.22
#S 4.6.3/69/3
#T P05/2 P08/3 #C The image resulting from a simulation may be only an approximation
to an exactly correct result. Also, although CBS means that sometimes
a regeneration or simulation is required, some changes in the category
may also be able to be done immediately.

SR21. A picture change of category IMM can be done immediately.
#F 260 286 9-71 73-85 87-90 113 116 118 122-134 142-144 150
#D 6.8 6.22
#S 4.6.3/69/3
#T P05/2 P08/3

*** *** *** *** ***   Display update state   *** *** *** *** ***

*** ***   Deferral mode = ASAP   *** ***


SR22. If deferral mode = ASAP, then the state of visual representation is CORRECT.
#F 7 221
#D 5.8.1 5.8.4
#S 4.6.3/70/5 4.6.3/72/1 4.6.3/73/1
#T P04/1 P04/2 P04/3 P04/4
*** ***   Deferral mode = WAIT   *** ***


SR23. Any visual change with deferral mode = WAIT and modification mode = NIVE causes the state of visual representation to be DEFERRED.
#F 7 221
#D 5.8.1 5.8.2 5.8.4
#S 4.6.3/70/9 4.6.3/71/1 4.6.3/72/1 4.6.3/73/1 4.6.3/75/3
#T P05/1

SR24. If a visual change requires regeneration and cannot be simulated and deferral mode = WAIT, then the state of visual representation is DEFERRED.
#F 7 221 260 286
#D 5.8.1 5.8.2 5.8.4 6.8 6.22
#S 4.6.3/70/9 4.6.3/72/1 4.6.3/73/1
#T P05/2 P08/3

SR25. If a visual change can be simulated and deferral mode = WAIT and modification mode = UWOR, then the state of visual representation is DEFERRED.
#F 7 221 260 286
#D 5.8.1 5.8.2 5.8.4 6.8 6.22
#S 4.6.3/70/9 4.6.3/71/1 4.6.3/72/1 4.6.3/73/1
#T P05/2

SR26. If a visual change can be done immediately and deferral mode = WAIT and modification mode = UWOR or UQUM, then the state of visual representation is unchanged.
#F 7 221 260 286
#D 5.8.1 5.8.2 5.8.4 6.8 6.22
#S 4.6.3/70/9 4.6.3/71/1 4.6.3/72/1 4.6.3/73/1
#T P05/2 P08/3

SR27. If a visual change can be simulated, the old state of visual representation is DEFERRED, deferral mode = WAIT, and modification mode = UQUM, then the state of visual representation is DEFERRED.
#F 7 221 260 286
#D 5.8.1 5.8.2 5.8.4 6.8 6.22
#S 4.6.3/70/9 4.6.3/71/1 4.6.3/72/1 4.6.3/73/1
#T P05/2

SR28. If a visual change can be simulated, the old state of visual representation is not DEFERRED, deferral mode = WAIT, and modification mode = UQUM, then the state of visual representation is SIMULATED.
#F 7 221 260 286
#D 5.8.1 5.8.2 5.8.4 6.8 6.22
#S 4.6.3/70/9 4.6.3/71/1 4.6.3/72/1 4.6.3/73/1
#T P05/2 P08/3
*** Truth-table for deferral-mode = WAIT, modification-mode =
*** UWOR or UQUM (SR 24-28):

***   immed = can be done immediately
***   regen = requires regeneration, no simulation available
***   simul = requires regeneration, simulation available

***   note that:
***       IRG => immed OR simul OR regen
***       CBS => immed OR simul
***       IMM => immed

***        mod    visual   old   |  new
***    SR  mode   change   svr   |  svr
***    --------------------------+-------
***    24  UWOR   regen    DEF   |  DEF
***    24  UWOR   regen    SIM   |  DEF
***    24  UWOR   regen    COR   |  DEF

***    24  UQUM   regen    DEF   |  DEF
***    24  UQUM   regen    SIM   |  DEF
***    24  UQUM   regen    COR   |  DEF

***    25  UWOR   simul    DEF   |  DEF
***    25  UWOR   simul    SIM   |  DEF
***    25  UWOR   simul    COR   |  DEF

***    27  UQUM   simul    DEF   |  DEF
***    28  UQUM   simul    SIM   |  SIM
***    28  UQUM   simul    COR   |  SIM

***    26  UWOR   immed    DEF   |  DEF
***    26  UWOR   immed    SIM   |  SIM
***    26  UWOR   immed    COR   |  COR

***    26  UQUM   immed    DEF   |  DEF
***    26  UQUM   immed    SIM   |  SIM
***    26  UQUM   immed    COR   |  COR

*** ***   Deferral mode = ASTI   *** ***


SR29. Deferral mode = ASTI causes the same behavior as WAIT, except that the system may choose at any time to make the state of visual representation CORRECT.
#F 7 221 260 286
#D 5.8.1 5.8.2 5.8.4 6.8 6.22
#S 4.6.3/70/6 4.6.3/72/1 4.6.3/73/1
#T P05/1 P05/2

*** ***   Input and deferral mode = BNIL or BNIG   *** ***


SR30. Input is underway at a workstation if one of its input devices has a REQUEST pending or is in SAMPLE or EVENT mode.
#F 164-177
#D 5.18.1.2 5.18.2.2 5.18.3.2 5.18.4.2 5.18.5.2 5.18.6.2
#S 4.6.3/70/7
#T P06/1 P06/3 P07/1 P07/3

SR31. Deferral mode = BNIL causes the same behavior as ASTI, except that the state of visual representation for the workstation must be CORRECT if input is underway on that workstation.
#F 7 221 260 286
#D 5.8.1 5.8.2 5.8.4 6.8 6.22
#D 5.18.1.2 5.18.2.2 5.18.3.2 5.18.4.2 5.18.5.2 5.18.6.2
#S 4.6.3/70/7 4.6.3/72/1 4.6.3/73/1
#T P06/1 P06/2 P06/3 P06/4

SR32. Deferral mode = BNIG causes the same behavior as ASTI, except that the state of visual representation for the workstation must be CORRECT if input is underway on any workstation.
#F 7 221 260 286
#D 5.8.1 5.8.2 5.8.4 6.8 6.22
#D 5.18.1.2 5.18.2.2 5.18.3.2 5.18.4.2 5.18.5.2 5.18.6.2
#S 4.6.3/70/7 4.6.3/72/1 4.6.3/73/1
#T P07/1 P07/2 P07/3 P07/4

LOCAL DICTIONARY:

  Functions ---
  003: popwk   <open workstation>
  005: prst    <redraw all structures>
  006: puwk    <update workstation>
  007: psdus   <set display update state>
  009: ppl3    <polyline 3>
  010: ppl     <polyline>
  011: ppm3    <polymarker 3>
  012: ppm     <polymarker>
  013: ptx3    <text 3>
  014: ptx     <text>
  015: patr3   <annotation text relative 3>
  016: patr    <annotation text relative>
  017: pfa3    <fill area 3>
  018: pfa     <fill area>
  019: pfas3   <fill area set 3>
  020: pfas    <fill area set>
  021: pca3    <cell array 3>
  022: pca     <cell array>
  023: pgdp3   <generalized drawing primitive 3>
  024: pgdp    <generalized drawing primitive>
  025: pspli   <set polyline index>
  026: pspmi   <set polymarker index>
  027: pstxi   <set text index>
  028: psii    <set interior index>
  029: psedi   <set edge index>
  030: psln    <set linetype>
  031: pslwsc  <set linewidth scale factor>
  032: psplci  <set polyline colour index>
  033: psmk    <set marker type>
  034: psmksc  <set marker size scale factor>
  035: pspmci  <set polymarker colour index>
  036: pstxfn  <set text font>
  037: pstxpr  <set text precision>
  038: pschxp  <set character expansion factor>
  039: pschsp  <set character spacing>
  040: pstxci  <set text colour index>
  041: pschh   <set character height>
  042: pschup  <set character up vector>
  043: pstxp   <set text path>
  044: pstxal  <set text alignment>
  045: psatch  <set annotation text character height>
  046: psatcu  <set annotation text character up vector>
  047: psatp   <set annotation text path>
  048: psatal  <set annotation text alignment>
  049: psans   <set annotation style>
  050: psis    <set interior style>
  051: psisi   <set interior style index>
  052: psici   <set interior colour index>
  053: psedfg  <set edge flag>
  054: psedt   <set edgetype>
  055: psewsc  <set edgewidth scale factor>
  056: psedci  <set edge colour index>
  057: pspa    <set pattern size>
  058: psprpv  <set pattern reference point and vectors>
  059: psparf  <set pattern reference point>
  060: pads    <add names to set>
  061: pres    <remove names from set>
  062: psiasf  <set individual asf>
  063: psplr   <set polyline representation>
  064: pspmr   <set polymarker representation>
  065: pstxr   <set text representation>
  066: psir    <set interior representation>
  067: psedr   <set edge representation>
  068: pspar   <set pattern representation>
  069: pscr    <set colour representation>
  070: pshlft  <set highlighting filter>
  071: psivft  <set invisibility filter>
  073: pshrid  <set hlhsr identifier>
  074: pshrm   <set hlhsr mode>
  075: pslmt3  <set local transformation 3>
  076: pslmt   <set local transformation>
  077: psgmt3  <set global transformation 3>
  078: psgmt   <set global transformation>
  079: psmcv3  <set modelling clipping volume 3>
  080: psmcv   <set modelling clipping volume>
  081: psmcli  <set modelling clipping indicator>
  082: prmcv   <restore modelling clipping volume>
  083: psvwi   <set view index>
  084: psvwr3  <set view representation 3>
  085: psvwr   <set view representation>
  087: pswkw3  <set workstation window 3>
  088: pswkw   <set workstation window>
  089: pswkv3  <set workstation viewport 3>
  090: pswkv   <set workstation viewport>
  113: pexst   <execute structure>
  116: pgse    <generalized structure element>
  118: pcelst  <copy all elements from structure>
  122: pdel    <delete element>
  123: pdelra  <delete element range>
  124: pdellb  <delete elements between labels>
  125: pemst   <empty structure>
  126: pdst    <delete structure>
  127: pdsn    <delete structure network>
  128: pdas    <delete all structures>
  129: pcstid  <change structure identifier>
  130: pcstrf  <change structure references>
  131: pcstir  <change structure identifier and references>
  132: ppost   <post structure>
  133: pupost  <unpost structure>
  134: pupast  <unpost all structures>
  142: prest   <retrieve structures>
  143: presn   <retrieve structure networks>
  144: prast   <retrieve all structures>
  150: pspkid  <set pick identifier>
  164: pslcm   <set locator mode>
  165: psskm   <set stroke mode>
  166: psvlm   <set valuator mode>
  167: pschm   <set choice mode>
  168: pspkm   <set pick mode>
  169: psstm   <set string mode>
  170: prqlc3  <request locator 3>
  171: prqlc   <request locator>
  172: prqsk3  <request stroke 3>
  173: prqsk   <request stroke>
  174: prqvl   <request valuator>
  175: prqch   <request choice>
  176: prqpk   <request pick>
  177: prqst   <request string>
  221: pqdus   <inquire display update state>
  260: pqdswa  <inquire dynamics of workstation attributes>
  261: pqddus  <inquire default display update state>
  286: pqdstr  <inquire dynamics of structures>
 
  Data Structures ---
  5  ...  workstation_state_list
  5.4  ...  view_table
  5.6  ...  workstation_transformation_entry
  5.7  ...  list_of_posted_structures
  5.8  ...  update_status
  5.8.1  ...  deferral_mode
  5.8.2  ...  modification_mode
  5.8.3  ...  display_surface_empty
  5.8.4  ...  state_of_visual_representation
  5.18  ...  input_device_status
  5.18.1  ...  locator_entry
  5.18.1.2  ...  operating_mode
  5.18.2  ...  stroke_entry
  5.18.2.2  ...  operating_mode
  5.18.3  ...  valuator_entry
  5.18.3.2  ...  operating_mode
  5.18.4  ...  choice_entry
  5.18.4.2  ...  operating_mode
  5.18.5  ...  pick_entry
  5.18.5.2  ...  operating_mode
  5.18.6  ...  string_entry
  5.18.6.2  ...  operating_mode
  6  ...  workstation_description_table
  6.8  ...  dynamic_modification_accepted_for
  6.8.1  ...  view_representation
  6.8.2  ...  polyline_bundle_representation
  6.8.3  ...  polymarker_bundle_representation
  6.8.4  ...  text_bundle_representation
  6.8.5  ...  interior_bundle_representation
  6.8.6  ...  edge_bundle_representation
  6.8.7  ...  pattern_representation
  6.8.8  ...  colour_representation
  6.8.9  ...  workstation_transformation_representation
  6.8.10 ...  highlighting_filter
  6.8.11 ...  invisibility_filter
  6.8.12 ...  hlhsr_mode
  6.9  ...  default_value_for_deferral_state
  6.9.1  ...  deferral_mode
  6.9.2  ...  modification_mode
  6.22  ...  dynamic_modification_accepted_for
  6.22.1  ...  structure_content_modification
  6.22.2  ...  post_structure
  6.22.3  ...  unpost_structure
  6.22.4  ...  delete_structure
  6.22.5  ...  reference_modification
 
SEMANTIC CROSS-REFERENCES:
  04.03.03/SR06 04.03.03/SR07 06.02.02/SR27 06.02.02/SR28
  06.03/SR18 06.03/SR19

LOCAL SUBROUTINES:

SETPCL (pcctab): loads the pcctab table with the names of the
picture change categories.

SETSVR (wkid, reqsvr): attempts to set the SVR of the specified
workstation to requested state.  There is no error report; the
caller must determine success.

EXSVRS (sevrty, defmod, modmd, oldsvr, svrlst, explbl): subroutine
which computes expected value(s) for SVR, based on severity, deferral
and modification mode, and old SVR.

SURFOK (wkid, expsur): logical function, true iff display surface
flag equals expected value.

SVROK (wkid, expvls): logical function, true iff current SVR is
one of the expected values, encoded by character: c-correct,
s-simulated, d-deferred. E.g. expvls = 'cd' means SVR must be
either CORRECT or DEFERRED.

PICENV (wkid): sets up an environment of posted structures to the
specified workstation, so that PICCHG can be perform requested
changes.

PICCHG (wkid, severity-list, pcc-list, actual-sev, actual-pcc) -
attempts to perform a visual change according to the preferred
order of the requested severity-list and of the specified
categories (a subset of the 17 kinds of picture change).  It then
returns the actual severity and actual picture change category
performed, or indicates that nothing in the severity-list /
pcc-list combination could be done.  Input parameters are
integer-lists, represented as strings, e.g. "1,2,3".

DOIMOD (wkid, inclas, inmode): on the workstation (wkid), sets
device #1 of the specified input class (inclas) to the requested
mode (inmode).



PROGRAM 1: Setting and inquiring display update state

You may inspect either the design or code for this program.


PROGRAM 2: Display surface flag

You may inspect either the design or code for this program.


PROGRAM 3: Explicit updating

You may inspect either the design or code for this program.


PROGRAM 4: Deferral mode ASAP

You may inspect either the design or code for this program.


PROGRAM 5: Deferral mode WAIT and ASTI

You may inspect either the design or code for this program.


PROGRAM 6: Deferral mode BNIL

You may inspect either the design or code for this program.


PROGRAM 7: Deferral mode BNIG

You may inspect either the design or code for this program.


PROGRAM 8: Categories of picture change

You may inspect either the design or code for this program.

End of documentation for 05.02