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