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


   NAME

        QBlit -- Queue up a request for blitter usage

   SYNOPSIS
        QBlit( bp )
               a1

        void QBlit( struct bltnode * );

   FUNCTION
        Link a request for the use of the blitter to the end of the
       current blitter queue.  The pointer bp points to a blit structure
       containing, among other things, the link information, and the
       address of your routine which is to be called when the blitter
       queue finally gets around to this specific request.  When your
       routine is called, you are in control of the blitter ... it is
       not busy with anyone else's requests.  This means that you can
       directly specify the register contents and start the blitter.
       See the description of the blit structure and the uses of QBlit
       in the section titled Graphics Support in the OS Kernel Manual.
       Your code must be written to run either in supervisor or user
       mode on the 68000.

   INPUTS
        bp - pointer to a blit structure

   RESULT
        Your routine is called when the blitter is ready for you.
        In general requests for blitter usage through this channel are
        put in front of those who use the blitter via ownblitter and
        disownblitter. however for small blits there is more overhead
        using the queuer than Own/Disown Blitter.

   NOTES
        Code which uses QBlit(), or qbsblit() should make use of
        the pointer to a cleanup routine in the bltnode structure.
        The cleanup routine may be called on the context of an
        interrupt, therefore the routine may set a flag, and signal
        a task, but it may not call freemem() directly.  use of
        the cleanup routine is the only safe way to signal that
        your bltnode has completed.

   BUGS
        QBlit(), and qbsblit() have been rewritten for v39 due to
        various long standing bugs in earlier versions of this code.

   SEE ALSO
        qbsblit() hardware/blit.h