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


   NAME
	CINIT -- Initialize user copperlist to accept intermediate
		 user copper instructions.

   SYNOPSIS
 	cl = CINIT( ucl , n )

	cl = UCopperListInit( ucl , n )
			      a0    d0

	struct CopList *UCopperListInit( struct UCopList *, UWORD );

   FUNCTION
	Allocates and/or initialize copperlist structures/buffers
	internal to a UCopList structure.

	This is a macro that calls UCopListInit. You must pass a
	(non-initialized) UCopList to CINIT (CINIT will NOT allocate
	a new UCopList if ucl==0 ). If (ucl != 0) it will initialize the
	intermediate data buffers internal to a UCopList.

	The maximum number of intermediate copper list instructions
	that these internal CopList data buffers contain is specified
	as the parameter n.

   INPUTS
	ucl - pointer to UCopList structure
	n - number of instructions buffer must be able to hold

   RESULTS
	cl- a pointer to a buffer which will accept n intermediate copper
	    instructions.

	NOTE: this is NOT a UCopList pointer, rather a pointer to the
	      UCopList's->FirstCopList sub-structure.

   BUGS
	CINIT will not actually allocate a new UCopList if ucl==0.
	Instead you must allocate a block MEMF_PUBLIC|MEMF_CLEAR, the
	sizeof(struct UCopList) and pass it to this function.

	The system's FreeVPortCopLists function will take care of
	deallocating it if they are called.

	Prior to release V36 the  CINIT macro had { } braces surrounding
	the definition, preventing the proper return of the result value.
	These braces have been removed for the V36 include definitions.

   SEE ALSO
 	CINIT() CMOVE() CEND() graphics/copper.h