.\"## .\"## @(#)set_display_update_state.3 5.1 91/02/13 Copyr 1990, 1991 SMI/MIT .\"## .\"## $XMCOPY .\"## Copyright (c) 1990, 1991 by Sun Microsystems, Inc. .\"## .\"## All Rights Reserved .\"## .\"## Permission to use, copy, modify, and distribute this software and its .\"## documentation for any purpose and without fee is hereby granted, .\"## provided that the above copyright notice appear in all copies and that .\"## both that copyright notice and this permission notice appear in .\"## supporting documentation, and that the name of Sun Microsystems, .\"## not be used in advertising or publicity .\"## pertaining to distribution of the software without specific, written .\"## prior permission. .\"## .\"## SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, .\"## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO .\"## EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR .\"## CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF .\"## USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR .\"## OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR .\"## PERFORMANCE OF THIS SOFTWARE. .TH "SET DISPLAY UPDATE STATE" 3P "26 March 1991" .SH NAME SET DISPLAY UPDATE STATE \- set Workstation Deferral and Modification Modes .IX "Simulations" "SET DISPLAY UPDATE STATE" .IX "Quick Update Methods" "SET DISPLAY UPDATE STATE" .IX "Regeneration" "SET DISPLAY UPDATE STATE" .IX "Dynamic Modifications" "SET DISPLAY UPDATE STATE" .IX "Modifications" "SET DISPLAY UPDATE STATE" .IX "Editing" "SET DISPLAY UPDATE STATE" .SH SYNOPSIS .SS C Syntax .ft B .ta 1.25i 3i .nf void pset_disp_upd_st ( ws, def_mode, mod_mode ) Pint ws; \fIworkstation identifier\fP Pdefer_mode def_mode; \fIdeferral mode\fP Pmod_mode mod_mode; \fImodification mode\fP .fi .ft R .\" START FORTRAN STRIP .if '\*(pF'yes' \{\ .SS FORTRAN Syntax .ft B .ta 1.25i 3i .nf SUBROUTINE psdus ( WKID, DEFMOD, MODMOD ) INTEGER WKID \fIworkstation identifier\fP INTEGER DEFMOD \fIdeferral mode\fP INTEGER MODMOD \fImodification mode\fP .fi .ft R .\} .\" END FORTRAN STRIP .SS Required PHIGS Operating States (PHOP, WSOP, *, *) .SH DESCRIPTION .SS Purpose \s-2SET DISPLAY UPDATE STATE\s+2 sets the deferral and modification modes in the specified workstation's state list. These modes provide control over when and how changes to the structure store and workstation tables actually appear in the display. These values have a great effect on both visual results and performance. .LP The deferral mode controls when the display is updated (in other words, made entirely correct). This allows you to delay time-consuming or visually-distracting regeneration until a set of related changes are completed or until a correct display is absolutely necessary, as before an operator input interaction can proceed. .LP The modification mode controls the visual effects that take place while the workstation is postponing display updates. This allows you to selectively change the display, but to avoid regenerating the entire picture. .SS C Input Parameters .IP \fIws\fP Identifier of the workstation whose update state to set. .IP \fIdef_mode\fP An enumerated value specifying the \fIdeferral mode\fP to be set for this workstation. Valid values are defined in phigs.h: .sp .4 .nf .ta 1.25i PDEFER_ASAP \fIMake the display visually correct As Soon As Possible\fP PDEFER_BNIG \fIMake the display visually correct Before the Next Interaction Globally\fP PDEFER_BNIL \fIMake the display visually correct Before the Next Interaction Locally\fP PDEFER_ASTI \fIMake the display visually correct At Some Time\fP PDEFER_WAIT \fIMake the display visually correct When the Application Requests It\fP .fi .IP \fImod_mode\fP An enumerated value specifying the \fImodification mode\fP to be set for this workstation. Valid values are defined in phigs.h: .sp .4 .nf .ta 1.25i PMODE_NIVE \fINo Immediate Visual Effects\fP PMODE_UWOR \fIUpdate Without Regeneration\fP PMODE_UQUM \fIUse Quick Update Methods\fP .fi .\" START FORTRAN STRIP .if '\*(pF'yes' \{\ .SS FORTRAN Input Parameters .IP \fIWKID\fP Identifier of the workstation whose update state to set. .IP \fIDEFMOD\fP An enumerated value specifying the \fIdeferral mode\fP to be set for this workstation. Valid values are defined in phigs77.h: .sp .4 .nf .\" .ta .5i +\w'PDEFER_WAITD'u .ta .8i PDEFER_ASAP \fIMake the display visually correct As Soon As Possible\fP PDEFER_BNIG \fIMake the display visually correct Before the Next Interaction Globally\fP PDEFER_BNIL \fIMake the display visually correct Before the Next Interaction Locally\fP PDEFER_ASTI \fIMake the display visually correct At Some Time\fP PDEFER_WAITD \fIMake the display visually correct When the Application Requests It\fP .fi .IP \fIMODMOD\fP An enumerated value specifying the \fImodification mode\fP to be set for this workstation. Valid values are defined in phigs77.h: .sp .4 .nf .\" .ta .5i +\w'PDEFER_WAITD'u .ta .8i PMODE_NIVE \fINo Immediate Visual Effects\fP PMODE_UWOR \fIUpdate Without Regeneration\fP PMODE_UQUM \fIUse Quick Update Methods\fP .fi .\} .\" END FORTRAN STRIP .SS Execution The \s-2SET DISPLAY UPDATE STATE\s+2 sets the \fIdeferral mode\fP and \&\fImodification mode\fP entries in the specified workstation's state list. These modes control the degree to which the display must reflect the state of the central structure store and the workstation tables. .LP .I "Deferral Modes" .LP The deferral mode \s-2PDEFER_ASAP\s+2 (\fIAs Soon As Possible\fP) demands that the display be consistent with the structure store and the workstation state list at all times. This typically causes a regeneration (in other words, clearing of the display and traversal of all posted structure networks) for every change to a structure appearing on the workstation, and for every change to the workstation's state list. The modification mode is unused when the deferral mode is \s-2ASAP\s+2. .LP The deferral mode \s-2PDEFER_BNIG\s+2 (\fIBefore the Next Interaction Globally\fP) behaves just like \s-2PDEFER_ASAP\s+2 when any input device is active on \fIany\fP workstation. The deferral mode \s-2PDEFER_BNIL (\fIBefore the Next Interaction Locally\fP) behaves just like \s-2PDEFER_ASAP\s+2 when any input device is active on \fIthis\fP workstation. Otherwise, they behave exactly like \fIAt Some Time\fP, as described below. An input device is considered \fIactive\fP the entire time it is in \s-2EVENT\s+2 or \s-2SAMPLE\s+2 mode, or while a \s-2REQUEST\s+2 is pending for the device (although nothing but window redisplay can occur while a \s-2REQUEST\s+2 is pending, because it necessarily blocks). .LP The deferral mode \s-2PDEFER_ASTI\s+2 (\fIAt Some Time\fP) updates the display only at certain times, which are at the discretion of the \s-2PEX\s+2 implementation and are workstation dependent. .LP The deferral mode \s-2PDEFER_WAIT\s+2 (\fIWhen the Application Requests It\fP) does not implicitly update the display. Explicit updates are requested by using \s-2REDRAW ALL STRUCTURES\s+2 or \s-2UPDATE WORKSTATION\s+2 with \s-2PERFORM\s+2. .LP .I "Modification Modes" .LP During modification mode \s-2PDEFER_NIVE\s+2 (\fINo Immediate Visual Effects\fP), the only changes to the display are those that would be done in accordance with the deferral mode. .LP \fBNote:\fP \fIWhen the Application Requests It\fP and \fINo Immediate Visual Effects\fP used together prohibit any change to the display in response to changes in the central structure store or the workstation state lists. .LP The modification mode \s-2PDEFER_UWOR\s+2 (\fIUpdate Without Regeneration\fP) performs all updates that can be realized immediately without regenerating the entire display. This includes the actions whose \fIdynamic modification accepted\fP entries in the workstation description table are set to \fIImmediately\fP. .LP The modification mode \s-2PDEFER_UQUM\s+2 (\fIUse Quick Update Methods\fP) allows use of workstation dependent simulations of changes that cannot be performed immediately unless the display is regenerated. These simulations are described in the section \fIAvailable Quick Update Methods\fP. Actions for which a \fIquick update method\fP is available have \fIdynamic modification accepted\fP entries in the workstation description table set to \fICan Be Simulated\fP. As in \fIUpdate Without Regeneration\fP mode, actions whose \fIdynamic modification accepted\fP entries in the workstation description table are set to \fIImmediately\fP are performed immediately. Unless an action can be simulated or the update performed immediately, the update is deferred, as if the modification mode were \fINo Immediate Visual Effects\fP. .LP .I "State of Visual Representation" .LP The workstation's \fIstate of visual representation\fP indicates whether the display is \fICorrect\fP, \fISimulated\fP (but no updates have been deferred), or \fIDeferred\fP. This state list value may be obtained using \s-2INQUIRE DISPLAY UPDATE STATE(3P)\s+2. .LP Changing the \fIdeferral mode\fP causes a regeneration, if the display is not correct and the new \fIdeferral mode\fP requires it. Changing the \fImodification mode\fP has no retroactive effect on previous changes that have been simulated or deferred. .LP .I "Available Quick Update Methods" .LP Quick update methods are dependent on the server implementation. The \s-2PEX-SI API\s+2 does not provide any quick updates. .LP .I "Interactions between Deferral and Modification Modes and X Window System" .LP \s-2PEX-SI\s0 regenerates the image from the \s-2CSS\s+2 when the window is damaged by window system events. This can occur even if the deferral mode is \fIWhen the Application Requests It\fP (\s-2WAIT\s+2) and the modification mode is \fINo Immediate Visual Effects\fP, which used together prohibit implicit changes to the display. However, only the damaged portion of the \s-2PEX-SI\s0 canvas is repainted. Hence, the regeneration may use newer information than that which generated the older, out-of-date, but not damaged portion, which is also visible and may not match the newly drawn portion. To remove any visible mismatch, the entire window can be updated by selecting \fIRefresh\fR from the canvas's \fIFrame\fR menu (assuming that the user is using XView). .SH ERRORS .IP 003 Ignoring function, function requires state (\s-2PHOP\s+2, \s-2WSOP\s+2, \s-2*\s+2, \s-2*\s+2) .IP 054 Ignoring function, the specified workstation is not open .IP 059 Ignoring function, the specified workstation does not have output capability (in other words, the workstation category is neither \s-2OUTPUT\s+2, \s-2OUTIN\s+2, nor \s-2MO\s+2) .SH SEE ALSO .nf .IP .ta 0.5i .SM "UPDATE WORKSTATION (3P)" .SM "REDRAW ALL STRUCTURES (3P)" .SM "INQUIRE DISPLAY UPDATE STATE (3P)" .SM "INQUIRE DEFAULT DISPLAY UPDATE STATE (3P)" .fi