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.