an algorithm that is very close to our standard raster. However, it is (theorically for now) capable of direct composition !!VER-2-0-4-PATCH
parent
7e68ad481f
commit
1d85a73d1a
2 changed files with 1807 additions and 0 deletions
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,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 |
Loading…
Reference in new issue