DMDX Help.


Abort Display Queue Purge Keyword

<AbortDQPurge [N]>
<adqp [N]>


   
    MDSP bit 40000000 modifier, when active an <AbortItemExpression> will discard any pending frames in the display as well as the usual abort item sorts of things.  For more discussion on the uses of <AbortDQPurge> see the Abort Display Queue section in the built in introduction.

    When <AbortDQPurge> is active the <AbortItemExpression> will be checked constantly (which is probably going  to present some extra load on the machine) and if it tests true the display queue is purged.  This is a risky proposition, DMDX was designed on the explicit assumption that the display queue would always play out as intended.   Instead I've added logic that looks for the obvious things I can think of that might need to be done if the display queue is purged before it executes -- however I'm not likely to be able to predict all the things that can go wrong so use of this keyword is very much caveat emptor.  Indeed prior to version 4.0.4.3 of DMDX <Continue> couldn't function in an item that was purged.  Such things include triggering the clock logic as soon as the frame that had the clock on in it is purged and setting the animation flag so that all screen surfaces are redrawn in the current background (which can take a good chunk of time and means you can't have persistent displays across items).  Side effects include "Expected presentations/flips and actual presentations/flips out of synch!" errors in the display log when an item's display queue is purged.  And you really don't want feedback on as it's going to be scheduled for display as the display queue is being purged...

    What <AbortDQPurge> allows is the latter examples in the <ContinueClockOn> documentation to be coded with substantially less baggage -- the trade off being possibly less stability (only time will tell):.


<ep> f60 <ID "keyboard"> <cr><vm 800,600,600,16,60> <t 4000> 
<abortdqpurge> <aie jobstatus .eq. 7> <eop>
0   "Press SPACE to BEGIN";
 
+1  "3" <co> / "2" / "1" / "0" ; 
+10 "3" <co> / "2" / "1" / "0" ;
 
0  "the end";
 
 
<ep> <nfb> <fd 30> <cr>
<vm desktop> <id keyboard> <abortdqpurge> <aie jobstatus .eq. 7> <eop>

0 "Press SPACE to BEGIN";

200 "instruction" %53 / !;
+201 "photo" %600 /  *  @-1   "weak      strong" , "-               " / 
		      	@-1   "weak      strong" , "--              " /
			@-1   "weak      strong" , "----            " / 
			@-1   "weak      strong" , "------          " /
			@-1   "weak      strong" , "--------        " /
			@-1   "weak      strong" , "----------      " /
			@-1   "weak      strong" , "-------------   " /
			@-1   "weak      strong" , "----------------" / !;
290 %233 "relax" /!;

300 "instruction" %53 / !;
+301 "photo" %600 /  *   @-1  "weak      strong" , "-               " / 
			 @-1  "weak      strong" , "--              " /
			 @-1  "weak      strong" , "----            " / 
			 @-1  "weak      strong" , "------          " /
			 @-1  "weak      strong" , "--------        " /
			 @-1  "weak      strong" , "----------      " /
			 @-1  "weak      strong" , "-------------   " /
			 @-1  "weak      strong" , "----------------" / !;
290 %233 "relax" /!;
 
0  "the end";


DMDX Index.