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