<a name="l45"></a>* See </span><a href="/Wb/Adam/Gr/GrScrn.HC.HTML#l398"><span class=cF4>GrUpdateScrn</span></a><span class=cF0>(), </span><a href="/Wb/Adam/Gr/GrScrn.HC.HTML#l58"><span class=cF4>GrUpdateTasks</span></a><span class=cF0>() and </span><a href="/Wb/Adam/Gr/GrScrn.HC.HTML#l18"><span class=cF4>GrUpdateTaskWin</span></a><span class=cF0>() called by the WinMgr
<a name="l46"></a>task 30fps. Notice the task's </span><a href="/Wb/Adam/Gr/GrScrn.HC.HTML#l35"><span class=cF4>draw_it</span></a><span class=cF0>() callback being called. Only tasks on </span><span class=cF2>C
<a name="l50"></a>* </span><a href="/Wb/Kernel/KernelA.HH.HTML#l3599"><span class=cF4>CDC</span></a><span class=cF0>s (device contexts) are a data type for controlling graphics on the scrn or
<a name="l52"></a></span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l168"><span class=cF4>DCAlias</span></a><span class=cF0>() to create your own structure, with its own color and thick. Free it
<a name="l53"></a>with </span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l208"><span class=cF4>DCDel</span></a><span class=cF0>() when finished.
<a name="l56"></a>redrawn. You create an alias for this by using </span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l168"><span class=cF4>DCAlias</span></a><span class=cF0>() and work with that.
<a name="l59"></a>* There are various flavors of line and point plotting routines. </span><a href="/Wb/Adam/Gr/GrPrimatives.HC.HTML#l568"><span class=cF4>GrLine</span></a><span class=cF0>() and </span><span class=cF4>
<a name="l60"></a></span><a href="/Wb/Adam/Gr/GrPrimatives.HC.HTML#l51"><span class=cF4>GrPlot</span></a><span class=cF0>() are the simplest. The others allow 3D graphics and rotations.
<a name="l62"></a>* See </span><a href="/Wb/Doc/Transform.DD.HTML#l1"><span class=cF4>::/Doc/Transform.DD</span></a><span class=cF0> for adding a transformation.
<a name="l63"></a>
<a name="l64"></a>* You change the </span><span class=cF2>Fs->draw_it</span><span class=cF0> var to point to your </span><span class=cF2>DrawIt()</span><span class=cF0> function which gets
<a name="l65"></a>called each scrn refresh (30 fps). You draw everything in the window over and
<a name="l69"></a>be plotted with </span><a href="/Wb/Adam/Gr/GrSpritePlot.HC.HTML#l18"><span class=cF4>Sprite3</span></a><span class=cF0>() or output to the cmd line with </span><a href="/Wb/Adam/Gr/GrSpritePlot.HC.HTML#l468"><span class=cF4>Sprite</span></a><span class=cF0>(). Use </span><span class=cF2>$IB,"",B
<a name="l73"></a>pass to </span><a href="/Wb/Adam/Gr/GrSpritePlot.HC.HTML#l18"><span class=cF4>Sprite3</span></a><span class=cF0>() with </span><span class=cF2>$IB,"",BI=n$</span><span class=cF0>. Use </span><span class=cF2><CTRL-r></span><span class=cF0>'s "Pointer to Sprite" to make
<a name="l74"></a>a </span><span class=cF2>$IB...$</span><span class=cF0> entry. See </span><a href="/Wb/Demo/Graphics/SpritePlot.HC.HTML#l1"><span class=cF4>::/Demo/Graphics/SpritePlot.HC</span></a><span class=cF0> and </span><span class=cF4>
<a name="l75"></a></span><a href="/Wb/Demo/Graphics/SpritePlot3D.HC.HTML#l1"><span class=cF4>::/Demo/Graphics/SpritePlot3D.HC</span></a><span class=cF0>. The origin (zero point) for a sprite is
<a name="l79"></a>* Set </span><a href="/Wb/Kernel/KernelA.HH.HTML#l3572"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> in the </span><a href="/Wb/Kernel/KernelA.HH.HTML#l3599"><span class=cF4>CDC</span></a><span class=cF2>.flags</span><span class=cF0> and call </span><a href="/Wb/Adam/Gr/GrMath.HC.HTML#l194"><span class=cF4>DCSymmetrySet</span></a><span class=cF0>() or </span><a href="/Wb/Adam/Gr/GrMath.HC.HTML#l216"><span class=cF4>DCSymmetry3Set</span></a><span class=cF0>()
<a name="l81"></a></span><a href="/Wb/Kernel/KernelA.HH.HTML#l3576"><span class=cF4>DCF_JUST_MIRROR</span></a><span class=cF0> to plot just the image, but this required </span><a href="/Wb/Kernel/KernelA.HH.HTML#l3572"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> to be set
<a name="l85"></a>* Use </span><a href="/Wb/Adam/Gr/GrDC.HC.HTML#l186"><span class=cF4>DCNew</span></a><span class=cF0>() to create a mem bitmap which can be used to work off-scrn and
<a name="l86"></a>which can be </span><a href="/Wb/Adam/Gr/GrBitMap.HC.HTML#l71"><span class=cF4>GrBlot</span></a><span class=cF0>ed onto the scrn. If you set </span><span class=cF2>brush</span><span class=cF0> member of </span><span class=cF2>CDC</span><span class=cF0> to another </span><span class=cF2>
<a name="l87"></a>CDC</span><span class=cF0>, all the graphic routines will </span><a href="/Wb/Adam/Gr/GrBitMap.HC.HTML#l71"><span class=cF4>GrBlot</span></a><span class=cF0>() the brush instead of </span><a href="/Wb/Adam/Gr/GrPrimatives.HC.HTML#l51"><span class=cF4>GrPlot</span></a><span class=cF0>(). See </span><span class=cF4>
<a name="l90"></a>* There are a few </span><a href="/Wb/Kernel/KernelA.HH.HTML#l2898"><span class=cF4>raster operations</span></a><span class=cF0> available. They go in bits 8-11 of the </span><span class=cF2>dc->
<a name="l91"></a>color</span><span class=cF0> member var which is a </span><a href="/Wb/Kernel/KernelA.HH.HTML#l2939"><span class=cF4>CColorROPU32</span></a><span class=cF0>. </span><a href="/Wb/Kernel/KernelA.HH.HTML#l2900"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> is special. It counts
<a name="l92"></a>the num of pixs drawn on non-background locations. Using </span><a href="/Wb/Kernel/KernelA.HH.HTML#l2900"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> with
<a name="l93"></a>vector </span><a href="/Wb/Adam/Gr/Gr.HH.HTML#l157"><span class=cF4>CSprite</span></a><span class=cF0>'s is tricky because overlapping pixs from lines in the </span><a href="/Wb/Adam/Gr/Gr.HH.HTML#l157"><span class=cF4>CSprite</span></a><span class=cF0>
<a name="l95"></a></span><a href="/Wb/Adam/Gr/Gr.HH.HTML#l157"><span class=cF4>CSprite</span></a><span class=cF0> to a bitmap if your subelements draw on top of each other. Be sure to
<a name="l96"></a>set </span><span class=cF4>->bkcolor</span><span class=cF0> before using </span><a href="/Wb/Kernel/KernelA.HH.HTML#l2900"><span class=cF4>ROP_COLLISION</span></a><span class=cF0>. See </span><a href="/Wb/Demo/Graphics/Collision.HC.HTML#l1"><span class=cF4>::/Demo/Graphics/Collision.HC</span></a><span class=cF0> and </span><span class=cF4>
<a name="l99"></a>* The </span><span class=cF4>->dither_probability_u16</span><span class=cF0> member of </span><a href="/Wb/Kernel/KernelA.HH.HTML#l3599"><span class=cF4>CDC</span></a><span class=cF0> is a </span><span class=cF2>U16</span><span class=cF0> used to statistically sel
<a name="l101"></a></span><a href="/Wb/Demo/Graphics/SunMoon.HC.HTML#l1"><span class=cF4>::/Demo/Graphics/SunMoon.HC</span></a><span class=cF0> and </span><a href="/Wb/Demo/Graphics/Shading.HC.HTML#l1"><span class=cF4>::/Demo/Graphics/Shading.HC</span></a><span class=cF0>. It works with many
<a name="l105"></a>equations, which allows realistic physics. You create an </span><a href="/Wb/Kernel/KernelA.HH.HTML#l251"><span class=cF4>CMathODE</span></a><span class=cF0> struct with </span><span class=cF4>
<a name="l106"></a></span><a href="/Wb/Adam/AMathODE.HC.HTML#l30"><span class=cF4>ODENew</span></a><span class=cF0>(), passing it the num of vars in the state vect. For realistic physics,
<a name="l113"></a>can create an </span><a href="/Wb/Kernel/KernelA.HH.HTML#l201"><span class=cF4>COrder2D3</span></a><span class=cF0> ptr and point it to a mass in the state vect. Six