Stencils to control drawing only to specific parts of screen
Here is a demonstration of how to use stencils using these these functions:
mglOpen; mglScreenCoordinates;
%Draw an oval stencil mglStencilCreateBegin(1); mglFillOval(300,400,[100 100]); mglStencilCreateEnd; mglClearScreen;
% now draw some dots, masked by the oval stencil mglStencilSelect(1); mglPoints2(rand(1,5000)*500,rand(1,5000)*500); mglFlush; mglStencilSelect(0);
mglStencilCreateBegin: Start drawing a stencil
purpose: Begin drawing to stencil. Until mglStencilCreateEnd is called, all drawing operations will also draw to the stencil. Check MGL.stencilBits to see how many stencil planes there are. If invert is set to one, then the inverse stencil is made
usage: mglStencilCreateBegin(stencilNumber,invert)
| argument | value |
|---|---|
| stencilNumber | stencil number, usualy 1-8 but look at the global variable MGL.stencilBits to see how many stencil planes there are. |
| invert | 1 or 0 to invert the stencil that is made |
see example above.
mglStencilCreateEnd: End drawing a stencil
purpose: Ends drawing to stencil usage: mglStencilCreateEnd
see example above.
mglStencilSelect: Select a stencil
purpose: Sets which stencil to use, 0 for no stencil usage: mglStencilSelect(stencilNumber)
| argument | value |
|---|---|
| stencilNumber | number of stencil to use |
See example above.