Rev 9552 | Rev 9620 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
8796 | turbocat | 1 | #ifndef KOLIBRI_BUF2D_H |
2 | #define KOLIBRI_BUF2D_H |
||
3 | |||
4 | #include |
||
9558 | turbocat | 5 | /*ToDo |
6 | * voxel function |
||
7 | */ |
||
8796 | turbocat | 8 | |
9558 | turbocat | 9 | extern int kolibri_buf2d_init(void); |
10 | |||
8796 | turbocat | 11 | typedef struct { |
12 | unsigned int *buf_pointer; |
||
13 | uint16_t left; |
||
14 | uint16_t top; |
||
15 | unsigned int width; |
||
16 | unsigned int height; |
||
17 | unsigned int bgcolor; |
||
18 | uint8_t color_bit; |
||
9558 | turbocat | 19 | } __attribute__ ((__packed__))buf2d_struct; |
8796 | turbocat | 20 | |
21 | enum BUF2D_ALGORITM_FILTR { |
||
22 | SIERRA_LITE, |
||
23 | FLOYD_STEINBERG, |
||
24 | BURKERS, |
||
25 | HEAVYIRON_MOD, |
||
26 | ATKINSON |
||
27 | }; |
||
28 | |||
29 | enum BUF2D_OPT_CROP { |
||
30 | BUF2D_OPT_CROP_TOP = 1, |
||
31 | BUF2D_OPT_CROP_LEFT = 2, |
||
32 | BUF2D_OPT_CROP_BOTTOM = 4, |
||
33 | BUF2D_OPT_CROP_RIGHT = 8 |
||
34 | }; |
||
35 | |||
9558 | turbocat | 36 | extern void (*buf2d_create_asm __attribute__((__stdcall__)))(buf2d_struct *); |
37 | extern void (*buf2d_curve_bezier_asm __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int); |
||
8796 | turbocat | 38 | |
39 | buf2d_struct* buf2d_create(uint16_t tlx, uint16_t tly, unsigned int sizex, unsigned int sizey, unsigned int font_bgcolor, uint8_t color_bit) |
||
40 | { |
||
9558 | turbocat | 41 | buf2d_struct *new_buf2d_struct = (buf2d_struct *)malloc(sizeof(buf2d_struct)); |
8796 | turbocat | 42 | new_buf2d_struct -> left = tlx; |
43 | new_buf2d_struct -> top = tly; |
||
44 | new_buf2d_struct -> width = sizex; |
||
45 | new_buf2d_struct -> height = sizey; |
||
46 | new_buf2d_struct -> bgcolor = font_bgcolor; |
||
47 | new_buf2d_struct -> color_bit = color_bit; |
||
48 | buf2d_create_asm(new_buf2d_struct); |
||
49 | return new_buf2d_struct; |
||
50 | } |
||
51 | |||
52 | void buf2d_curve_bezier(buf2d_struct *buf, unsigned int p0_x, unsigned int p0_y, unsigned int p1_x, unsigned int p1_y, unsigned int p2_x, unsigned int p2_y, unsigned int color) |
||
53 | { |
||
54 | buf2d_curve_bezier_asm(buf, (p0_x<<16)+p0_y, (p1_x<<16)+p1_y, (p2_x<<16)+p2_y, color); |
||
55 | } |
||
56 | |||
9558 | turbocat | 57 | extern void (*buf2d_draw __attribute__((__stdcall__)))(buf2d_struct *); |
58 | extern void (*buf2d_clear __attribute__((__stdcall__)))(buf2d_struct *, unsigned int); |
||
59 | extern void (*buf2d_delete __attribute__((__stdcall__)))(buf2d_struct *); |
||
60 | extern void (*buf2d_rotate __attribute__((__stdcall__)))(buf2d_struct *, unsigned int); |
||
61 | extern void (*buf2d_resize __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int); |
||
62 | extern void (*buf2d_line __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); |
||
63 | extern void (*buf2d_line_sm __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int); |
||
64 | extern void (*buf2d_rect_by_size __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); |
||
65 | extern void (*buf2d_filled_rect_by_size __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); |
||
66 | extern void (*buf2d_circle __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int); |
||
67 | extern void (*buf2d_img_hdiv2 __attribute__((__stdcall__)))(buf2d_struct *); |
||
68 | extern void (*buf2d_img_wdiv2 __attribute__((__stdcall__)))(buf2d_struct *); |
||
69 | extern void (*buf2d_conv_24_to_8 __attribute__((__stdcall__)))(buf2d_struct *, unsigned int); |
||
70 | extern void (*buf2d_conv_24_to_32 __attribute__((__stdcall__)))(buf2d_struct *, unsigned int); |
||
71 | extern void (*buf2d_bit_blt_transp __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, buf2d_struct *); |
||
72 | extern void (*buf2d_bit_blt_alpha __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, buf2d_struct *); |
||
73 | extern void (*buf2d_convert_text_matrix __attribute__((__stdcall__)))(buf2d_struct *); |
||
74 | extern void (*buf2d_draw_text __attribute__((__stdcall__)))(buf2d_struct *, buf2d_struct *, const char *, unsigned int, unsigned int); |
||
75 | extern void (*buf2d_crop_color __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int); |
||
76 | extern void (*buf2d_offset_h __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int); |
||
77 | extern void (*buf2d_flood_fill __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int, unsigned int); |
||
78 | extern void (*buf2d_set_pixel __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int, unsigned int); |
||
79 | extern unsigned int (*buf2d_get_pixel __attribute__((__stdcall__)))(buf2d_struct *, unsigned int, unsigned int); |
||
80 | extern void (*buf2d_flip_h __attribute__((__stdcall__)))(buf2d_struct *); |
||
81 | extern void (*buf2d_flip_v __attribute__((__stdcall__)))(buf2d_struct *); |
||
82 | extern void (*buf2d_filter_dither __attribute__((__stdcall__)))(buf2d_struct *, unsigned int); |
||
8796 | turbocat | 83 | #endif /* KOLIBRI_BUF2D_H */16)+p2_y,><16)+p2_y,>16)+p1_y,><16)+p1_y,>16)+p0_y,><16)+p0_y,> |