1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
# ifndef BM_PUT_ROW_H
# define BM_PUT_ROW_H
# include "bmintern.h"
# include "bmgetrow.h"
/************************************************************************/
/* */
/* Store rows of data in an image. */
/* */
/************************************************************************/
/************************************************************************/
/* */
/* Data structure for filling an image. */
/* */
/************************************************************************/
typedef struct FillJob
{
ColorAllocator * fjColorAllocator;
int fjFrWide;
int fjToWide;
int fjDither;
unsigned char * fjScratch;
ColorValue * fjThisRow;
ColorValue * fjNextCor;
ColorValue * fjPrevRow;
ColorValue * fjNextRow;
int fjDc1[512];
int fjDc3[512];
int fjDc5[512];
int fjDc7[512];
} FillJob;
typedef int (*PutScreenRow)( unsigned char * to,
const FillJob * fj,
ColorValue * val );
/************************************************************************/
/* */
/* Routine declarations. */
/* */
/************************************************************************/
extern int bmGetPutRow( PutScreenRow * pPutRow,
int * pScratchSize,
const ColorAllocator * ca,
int swapBitmapUnit,
int swapBitmapBytes,
int swapBitmapBits,
const BitmapDescription * bdOut );
extern void bmInitFillJob( FillJob * fj );
extern void bmCleanFillJob( FillJob * fj );
extern int bmSetFillJob( FillJob * fj,
ColorAllocator * ca,
int frWide,
int toWide,
int scratchSize,
int dither );
# endif /* BM_PUT_ROW_H */
|