[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

	DoHookClipRects - Do the given hook for each of the ClipRects    (V39)

	                a0   a1    a2

	void DoHookClipRects(struct Hook *,struct RastPort *,struct Rectangle *);

	This function will call the given hook for each cliprect in the
	layer that can be rendered into.  This is how the backfill hook
	in Layers is implemented.  This means that hidden simple-refresh
	cliprects will be ignored.  It will call the SuperBitMap cliprects,
	smart refresh off-screen cliprects, and all on screen cliprects.
	If the rect parameter is not NULL, the cliprects are bounded to
	the rectangle given.

	hook - pointer to layer callback Hook which will be called
	       with object == (struct RastPort *) result->RastPort
	       and message == [ (Layer *) layer, (struct Rectangle) bounds,
	                        (LONG) offsetx, (LONG) offsety ]

	       This hook should fill the Rectangle in the RastPort
	       with the BackFill pattern appropriate for offset x/y.

	       If hook is LAYERS_BACKFILL, the default backfill is
	       used for the layer.

	       If hook is LAYERS_NOBACKFILL, the layer will not be
	       backfilled (NO-OP).

	rport- A pointer to the RastPort that is to be operated on.
	       This function will lock the layer if the RastPort is
	       If the rport is non-layered your hook will be called with
	       the rectangle as passed, the RastPort, and a NULL layer...

	rect - The bounding rectangle that should be used on the layer.
	       This rectangle "clips" the cliprects to the bound given.
	       If this is NULL, no bounding will take place.
	       *MUST* not be NULL if the RastPort is non-layered!

	The RastPort you are passed back is the same one passed to the
	function.  You should *not* use "layered" rendering functions
	on this RastPort.  Generally, you will wish to do BitMap operations
	such as BltBitMap().  The callback is a raw, low-level rendering
	call-back.  If you need to call a rendering operation with a
	RastPort, make sure you use a copy of the RastPort and NULL the
	Layer pointer.

	graphics/clip.h utility/hooks.h

[Back to Amiga Developer Docs]