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


   NAME
        AllocSpriteDataA -- allocate sprite data and convert from a bitmap. (V39)
        AllocSpriteData -- varargs stub for AllocSpriteData(). (V39)

   SYNOPSIS
        SpritePtr | 0 = AllocSpriteDataA(bitmap,taglist)
         d0                              a2      a1

        struct extsprite *allocspritedataa( struct bitmap *, struct tagitem * );

        extsprite=AllocSpriteData(bitmap,tags,...TAG_END)

    FUNCTION
        allocate memory to hold a sprite image, and convert the passed-in
        bitmap data to the appropriate format. The tags allow specification
        of width, scaling, and other options.

   INPUTS
        bitmap - ptr to a bitmap. This bitmap provides the source data for the
                sprite image.

        tags -
                SPRITEA_Width specifies how many pixels wide you desire
                the sprite to be. Specifying a width wider than the hardware
                can handle will cause the function to return failure. If the
                bitmap passed in is narrower than the width asked for, then
                it will be padded on the right with transparent pixels.
                Defaults to 16.

                SPRITEA_XReplication controls the horizontal pixel replication factor
                used when converting the bitmap data. Valid values are:
                        0 - perform a 1 to 1 conversion
                        1 - each pixel from the source is replicated twice
                            in the output.
                        2 - each pixel is replicated 4 times.
                       -1 - skip every other pixel in the source bitmap
                       -2 - only include every fourth pixel from the source.

                        This tag is useful for converting data from one resolution
                to another. For instance, hi-res bitmap data can be correctly
                converted for a lo-res sprite by using an x replication factor
                of -1. Defaults to 0.

                SPRITEA_YReplication controls the vertical pixel replication factor
                in the same manner as SPRITEA_XReplication controls the horizontal.

                SPRITEA_OutputHeight specifies how tall the resulting sprite
                should be. Defaults to the bitmap height. The bitmap MUST be at
                least as tall as the output height.

                SPRITEA_Attached tells the function that you wish to convert
                the data for the second sprite in an attached sprite pair.
                This will cause AllocSpriteData() to take its data from the
                3rd and 4th bitplanes of the passed in bitmap.


        Bitplane data is not required to be in chip ram for this function.


   RESULTS
        SpritePtr = a pointer to a extsprite structure, or 0 if there is
        a failure. You should pass this pointer to freespritedata() when finished
        with the sprite.

   BUGS
                Under V39, the appropriate attach bits would not be set in the sprite
        data.
                The work-around is to set the bits manually. Bit 7 of the second
        word should be set. On a 32 bit sprite, bit 7 of the 3rd word should
        also be set. For a 64 bit sprite, bit 7 of the 5th word should also be
        set. This should NOT be done under V40, as the bug is fixed.

   SEE ALSO
        freespritedata() freesprite() changesprite() movesprite() getextspritea()
        allocbitmap() graphics/sprite.h