borgware-2d/animations/bitmapscroller.h

49 lines
1.6 KiB
C

/**
* \addtogroup bitmap
* @{
*/
/**
* @file bitmapscroller.h
* @brief Public interface for the Borg's bitmap scroller.
* @author Christian Kroll
*/
#ifndef BITMAP_SCROLLER_H_
#define BITMAP_SCROLLER_H_
#include <stdint.h>
/**
* This type definition describes a function which is supposed to provide an
* eight-by-one pixel chunk of a bitmap for a given bit plane. The x-coordinates
* are based on chunks, not on pixels (i.e. nChunkX=2 has to be interpreted as
* a pixel based x-coordinate of 16). This way it is easy to provide the bitmap
* via a simple lookup in an uint8_t typed array. (0,0) is considered as the top
* left coordinate.
* @param nBitPlane Number of the desired bit plane.
* @param nChunkX x-coordinate of the chunk.
* @param nChunkY y-coordinate of the chunk.
* @param nFrame The current frame number (in case you want to animate sth.).
* @return an eight-by-one chunk of the bitmap packed into an uint8_t typed
*/
typedef uint8_t (*bitmap_getChunk_t)(unsigned char const nBitPlane,
unsigned char const nChunkX,
unsigned char const nChunkY,
unsigned int const nFrame);
void bitmap_scroll(unsigned char const nWidth,
unsigned char const nHeight,
unsigned char const nBitPlanes,
unsigned int const nTickCount,
unsigned int const nTick,
unsigned char const nFrameTickDivider,
unsigned char const nMovementTickDivider,
bitmap_getChunk_t fpGetChunk);
#endif /* BITMAP_SCROLLER_H_ */
/*@}*/