Hash :
1d85a73d
Author :
Date :
2000-03-17T10:15:20
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
#ifndef FTGRAYS2_H
#define FTGRAYS2_H
typedef int TScan;
typedef long TPos;
typedef float TDist;
#define FT_MAX_GRAY_SPANS 32
typedef struct FT_GraySpan_
{
short x;
short len;
unsigned char coverage;
} FT_GraySpan;
typedef int (*FT_GraySpan_Func)( int y,
int count,
FT_GraySpan* spans,
void* user );
typedef enum {
dir_up = 0,
dir_down = 1,
dir_right = 2,
dir_left = 3,
dir_horizontal = 2,
dir_reverse = 1,
dir_unknown = 4
} TDir;
typedef struct TCell_
{
unsigned short x;
unsigned short y;
unsigned short pos;
TDir dir;
} TCell, *PCell;
typedef struct TRaster_
{
PCell cells;
PCell cursor;
PCell cell_limit;
int max_cells;
int num_cells;
TScan min_ex, max_ex;
TScan min_ey, max_ey;
TPos min_x, min_y;
TPos max_x, max_y;
TScan ex, ey;
TScan cx, cy;
TPos x, y;
PCell contour_cell; /* first contour cell */
char joint;
char horizontal;
TDir dir;
PCell last;
FT_Vector starter;
FT_Vector* start;
int error;
FT_Vector bez_stack[32*3];
int lev_stack[32];
FT_Outline outline;
FT_Bitmap target;
FT_GraySpan gray_spans[ FT_MAX_GRAY_SPANS ];
int num_gray_spans;
FT_GraySpan_Func render_span;
void* render_span_closure;
int span_y;
} TRaster, *PRaster;
extern
int grays2_raster_render( TRaster* raster,
FT_Outline* outline,
FT_Bitmap* target_map );
extern
int grays2_raster_init( FT_Raster raster,
const char* pool_base,
long pool_size );
#endif