⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pixman.h

📁 嵌入式图形库
💻 H
📖 第 1 页 / 共 2 页
字号:
			  int src_stride,			  int dst_stride,			  int src_bpp,			  int dst_bpp,			  int src_x, int src_y,			  int dst_x, int dst_y,			  int width, int height);PIXMAN_EXPORTpixman_bool_t pixman_fill (uint32_t *bits,			   int stride,			   int bpp,			   int x,			   int y,			   int width,			   int height,			   uint32_t _xor);/* * Images */typedef  union pixman_image		pixman_image_t;typedef struct pixman_indexed		pixman_indexed_t;typedef struct pixman_gradient_stop	pixman_gradient_stop_t;typedef uint32_t (* pixman_read_memory_func_t) (const void *src, int size);typedef void     (* pixman_write_memory_func_t) (void *dst, uint32_t value, int size);struct pixman_gradient_stop {    pixman_fixed_t x;    pixman_color_t color;};#define PIXMAN_MAX_INDEXED  256 /* XXX depth must be <= 8 */#if PIXMAN_MAX_INDEXED <= 256typedef uint8_t pixman_index_type;#endifstruct pixman_indexed{    pixman_bool_t       color;    uint32_t		rgba[PIXMAN_MAX_INDEXED];    pixman_index_type	ent[32768];};/* * While the protocol is generous in format support, the * sample implementation allows only packed RGB and GBR * representations for data to simplify software rendering, */#define PIXMAN_FORMAT(bpp,type,a,r,g,b)	(((bpp) << 24) |  \					 ((type) << 16) | \					 ((a) << 12) |	  \					 ((r) << 8) |	  \					 ((g) << 4) |	  \					 ((b)))#define PIXMAN_FORMAT_BPP(f)	(((f) >> 24)       )#define PIXMAN_FORMAT_TYPE(f)	(((f) >> 16) & 0xff)#define PIXMAN_FORMAT_A(f)	(((f) >> 12) & 0x0f)#define PIXMAN_FORMAT_R(f)	(((f) >>  8) & 0x0f)#define PIXMAN_FORMAT_G(f)	(((f) >>  4) & 0x0f)#define PIXMAN_FORMAT_B(f)	(((f)      ) & 0x0f)#define PIXMAN_FORMAT_RGB(f)	(((f)      ) & 0xfff)#define PIXMAN_FORMAT_VIS(f)	(((f)      ) & 0xffff)#define PIXMAN_FORMAT_DEPTH(f)	(PIXMAN_FORMAT_A(f) +	\				 PIXMAN_FORMAT_R(f) +	\				 PIXMAN_FORMAT_G(f) +	\				 PIXMAN_FORMAT_B(f))#define PIXMAN_TYPE_OTHER	0#define PIXMAN_TYPE_A		1#define PIXMAN_TYPE_ARGB	2#define PIXMAN_TYPE_ABGR	3#define PIXMAN_TYPE_COLOR	4#define PIXMAN_TYPE_GRAY	5#define PIXMAN_TYPE_YUY2	6#define PIXMAN_TYPE_YV12	7#define PIXMAN_FORMAT_COLOR(f)	(PIXMAN_FORMAT_TYPE(f) & 2)/* 32bpp formats */typedef enum {    PIXMAN_a8r8g8b8 =	PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,8,8,8,8),    PIXMAN_x8r8g8b8 =	PIXMAN_FORMAT(32,PIXMAN_TYPE_ARGB,0,8,8,8),    PIXMAN_a8b8g8r8 =	PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,8,8,8,8),    PIXMAN_x8b8g8r8 =	PIXMAN_FORMAT(32,PIXMAN_TYPE_ABGR,0,8,8,8),    /* 24bpp formats */    PIXMAN_r8g8b8 =	PIXMAN_FORMAT(24,PIXMAN_TYPE_ARGB,0,8,8,8),    PIXMAN_b8g8r8 =	PIXMAN_FORMAT(24,PIXMAN_TYPE_ABGR,0,8,8,8),    /* 16bpp formats */    PIXMAN_r5g6b5 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ARGB,0,5,6,5),    PIXMAN_b5g6r5 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ABGR,0,5,6,5),        PIXMAN_a1r5g5b5 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ARGB,1,5,5,5),    PIXMAN_x1r5g5b5 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ARGB,0,5,5,5),    PIXMAN_a1b5g5r5 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ABGR,1,5,5,5),    PIXMAN_x1b5g5r5 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ABGR,0,5,5,5),    PIXMAN_a4r4g4b4 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ARGB,4,4,4,4),    PIXMAN_x4r4g4b4 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ARGB,0,4,4,4),    PIXMAN_a4b4g4r4 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ABGR,4,4,4,4),    PIXMAN_x4b4g4r4 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_ABGR,0,4,4,4),    /* 8bpp formats */    PIXMAN_a8 =		PIXMAN_FORMAT(8,PIXMAN_TYPE_A,8,0,0,0),    PIXMAN_r3g3b2 =	PIXMAN_FORMAT(8,PIXMAN_TYPE_ARGB,0,3,3,2),    PIXMAN_b2g3r3 =	PIXMAN_FORMAT(8,PIXMAN_TYPE_ABGR,0,3,3,2),    PIXMAN_a2r2g2b2 =	PIXMAN_FORMAT(8,PIXMAN_TYPE_ARGB,2,2,2,2),    PIXMAN_a2b2g2r2 =	PIXMAN_FORMAT(8,PIXMAN_TYPE_ABGR,2,2,2,2),        PIXMAN_c8 =		PIXMAN_FORMAT(8,PIXMAN_TYPE_COLOR,0,0,0,0),    PIXMAN_g8 =		PIXMAN_FORMAT(8,PIXMAN_TYPE_GRAY,0,0,0,0),        PIXMAN_x4a4 =	PIXMAN_FORMAT(8,PIXMAN_TYPE_A,4,0,0,0),        PIXMAN_x4c4 =	PIXMAN_FORMAT(8,PIXMAN_TYPE_COLOR,0,0,0,0),    PIXMAN_x4g4 =	PIXMAN_FORMAT(8,PIXMAN_TYPE_GRAY,0,0,0,0),    /* 4bpp formats */    PIXMAN_a4 =		PIXMAN_FORMAT(4,PIXMAN_TYPE_A,4,0,0,0),    PIXMAN_r1g2b1 =	PIXMAN_FORMAT(4,PIXMAN_TYPE_ARGB,0,1,2,1),    PIXMAN_b1g2r1 =	PIXMAN_FORMAT(4,PIXMAN_TYPE_ABGR,0,1,2,1),    PIXMAN_a1r1g1b1 =	PIXMAN_FORMAT(4,PIXMAN_TYPE_ARGB,1,1,1,1),    PIXMAN_a1b1g1r1 =	PIXMAN_FORMAT(4,PIXMAN_TYPE_ABGR,1,1,1,1),        PIXMAN_c4 =		PIXMAN_FORMAT(4,PIXMAN_TYPE_COLOR,0,0,0,0),    PIXMAN_g4 =		PIXMAN_FORMAT(4,PIXMAN_TYPE_GRAY,0,0,0,0),    /* 1bpp formats */    PIXMAN_a1 =		PIXMAN_FORMAT(1,PIXMAN_TYPE_A,1,0,0,0),        PIXMAN_g1 =		PIXMAN_FORMAT(1,PIXMAN_TYPE_GRAY,0,0,0,0),/* YUV formats */    PIXMAN_yuy2 =	PIXMAN_FORMAT(16,PIXMAN_TYPE_YUY2,0,0,0,0),    PIXMAN_yv12 =	PIXMAN_FORMAT(12,PIXMAN_TYPE_YV12,0,0,0,0),} pixman_format_code_t;/* Querying supported format values. */PIXMAN_EXPORTpixman_bool_t	pixman_format_supported_destination (pixman_format_code_t format);PIXMAN_EXPORTpixman_bool_t	pixman_format_supported_source (pixman_format_code_t format);/* Constructors */PIXMAN_EXPORTpixman_image_t *pixman_image_create_solid_fill       (pixman_color_t               *color);PIXMAN_EXPORTpixman_image_t *pixman_image_create_linear_gradient  (pixman_point_fixed_t         *p1,						      pixman_point_fixed_t         *p2,						      const pixman_gradient_stop_t *stops,						      int                           n_stops);PIXMAN_EXPORTpixman_image_t *pixman_image_create_radial_gradient  (pixman_point_fixed_t         *inner,						      pixman_point_fixed_t         *outer,						      pixman_fixed_t                inner_radius,						      pixman_fixed_t                outer_radius,						      const pixman_gradient_stop_t *stops,						      int                           n_stops);PIXMAN_EXPORTpixman_image_t *pixman_image_create_conical_gradient (pixman_point_fixed_t         *center,						      pixman_fixed_t                angle,						      const pixman_gradient_stop_t *stops,						      int                           n_stops);PIXMAN_EXPORTpixman_image_t *pixman_image_create_bits             (pixman_format_code_t          format,						      int                           width,						      int                           height,						      uint32_t                     *bits,						      int                           rowstride_bytes);/* Destructor */PIXMAN_EXPORTpixman_image_t *pixman_image_ref                     (pixman_image_t               *image);PIXMAN_EXPORTpixman_bool_t   pixman_image_unref                   (pixman_image_t               *image);/* Set properties */PIXMAN_EXPORTpixman_bool_t   pixman_image_set_clip_region         (pixman_image_t               *image,						      pixman_region16_t            *region);PIXMAN_EXPORTvoid		pixman_image_set_has_client_clip     (pixman_image_t               *image,						      pixman_bool_t		    clien_clip);PIXMAN_EXPORTpixman_bool_t   pixman_image_set_transform           (pixman_image_t               *image,						      const pixman_transform_t     *transform);PIXMAN_EXPORTvoid            pixman_image_set_repeat              (pixman_image_t               *image,						      pixman_repeat_t               repeat);PIXMAN_EXPORTpixman_bool_t   pixman_image_set_filter              (pixman_image_t               *image,						      pixman_filter_t               filter,						      const pixman_fixed_t         *filter_params,						      int                           n_filter_params);PIXMAN_EXPORTvoid            pixman_image_set_filter_params       (pixman_image_t               *image,						      pixman_fixed_t               *params,						      int                           n_params);PIXMAN_EXPORTvoid		pixman_image_set_source_clipping     (pixman_image_t		   *image,						      pixman_bool_t                 source_clipping);PIXMAN_EXPORTvoid            pixman_image_set_alpha_map           (pixman_image_t               *image,						      pixman_image_t               *alpha_map,						      int16_t                       x,						      int16_t                       y);PIXMAN_EXPORTvoid            pixman_image_set_component_alpha     (pixman_image_t               *image,						      pixman_bool_t                 component_alpha);PIXMAN_EXPORTvoid		pixman_image_set_accessors	     (pixman_image_t		   *image,						      pixman_read_memory_func_t	    read_func,						      pixman_write_memory_func_t    write_func);PIXMAN_EXPORTvoid		pixman_image_set_indexed	     (pixman_image_t		   *image,						      const pixman_indexed_t	   *indexed);PIXMAN_EXPORTuint32_t       *pixman_image_get_data                (pixman_image_t               *image);PIXMAN_EXPORTint		pixman_image_get_width               (pixman_image_t               *image);PIXMAN_EXPORTint             pixman_image_get_height              (pixman_image_t               *image);PIXMAN_EXPORTint		pixman_image_get_stride              (pixman_image_t               *image);PIXMAN_EXPORTint		pixman_image_get_depth               (pixman_image_t		   *image);PIXMAN_EXPORTpixman_bool_t	pixman_image_fill_rectangles	     (pixman_op_t		    op,						      pixman_image_t		   *image,						      pixman_color_t		   *color,						      int			    n_rects,						      const pixman_rectangle16_t	   *rects);/* Composite */PIXMAN_EXPORTpixman_bool_t   pixman_compute_composite_region (pixman_region16_t *	pRegion,						 pixman_image_t *	pSrc,						 pixman_image_t *	pMask,						 pixman_image_t *	pDst,						 int16_t		xSrc,						 int16_t		ySrc,						 int16_t		xMask,						 int16_t		yMask,						 int16_t		xDst,						 int16_t		yDst,						 uint16_t		width,						 uint16_t		height);PIXMAN_EXPORTvoid		pixman_image_composite          (pixman_op_t		    op,						 pixman_image_t		   *src,						 pixman_image_t               *mask,						 pixman_image_t               *dest,						 int16_t                       src_x,						 int16_t                       src_y,						 int16_t                       mask_x,						 int16_t                       mask_y,						 int16_t                       dest_x,						 int16_t                       dest_y,						 uint16_t                      width,						 uint16_t                      height);/* * Trapezoids */typedef struct pixman_edge pixman_edge_t;typedef struct pixman_trapezoid pixman_trapezoid_t;typedef struct pixman_trap pixman_trap_t;typedef struct pixman_span_fix pixman_span_fix_t;/* * An edge structure.  This represents a single polygon edge * and can be quickly stepped across small or large gaps in the * sample grid */struct pixman_edge{    pixman_fixed_t	x;    pixman_fixed_t	e;    pixman_fixed_t   stepx;    pixman_fixed_t   signdx;    pixman_fixed_t   dy;    pixman_fixed_t   dx;    pixman_fixed_t   stepx_small;    pixman_fixed_t   stepx_big;    pixman_fixed_t   dx_small;    pixman_fixed_t   dx_big;};struct pixman_trapezoid{    pixman_fixed_t  top, bottom;    pixman_line_fixed_t	left, right;};/* whether 't' is a well defined not obviously empty trapezoid */#define pixman_trapezoid_valid(t)				\    ((t)->left.p1.y != (t)->left.p2.y &&			   \     (t)->right.p1.y != (t)->right.p2.y &&			   \     (int) ((t)->bottom - (t)->top) > 0)struct pixman_span_fix{    pixman_fixed_t	l, r, y;};struct pixman_trap{    pixman_span_fix_t	top, bot;};PIXMAN_EXPORTpixman_fixed_t pixman_sample_ceil_y        (pixman_fixed_t       y,					    int                  bpp);PIXMAN_EXPORTpixman_fixed_t pixman_sample_floor_y       (pixman_fixed_t       y,					    int                  bpp);PIXMAN_EXPORTvoid           pixman_edge_step            (pixman_edge_t       *e,					    int                  n);PIXMAN_EXPORTvoid           pixman_edge_init            (pixman_edge_t       *e,					    int                  bpp,					    pixman_fixed_t       y_start,					    pixman_fixed_t       x_top,					    pixman_fixed_t       y_top,					    pixman_fixed_t       x_bot,					    pixman_fixed_t       y_bot);PIXMAN_EXPORTvoid           pixman_line_fixed_edge_init (pixman_edge_t       *e,					    int                  bpp,					    pixman_fixed_t       y,					    const pixman_line_fixed_t *line,					    int                  x_off,					    int                  y_off);PIXMAN_EXPORTvoid           pixman_rasterize_edges      (pixman_image_t      *image,					    pixman_edge_t       *l,					    pixman_edge_t       *r,					    pixman_fixed_t       t,					    pixman_fixed_t       b);PIXMAN_EXPORTvoid           pixman_add_traps            (pixman_image_t      *image,					    int16_t              x_off,					    int16_t              y_off,					    int                  ntrap,					    pixman_trap_t       *traps);PIXMAN_EXPORTvoid	       pixman_add_trapezoids       (pixman_image_t      *image,					    int16_t              x_off,					    int                  y_off,					    int                  ntraps,					    const pixman_trapezoid_t  *traps);PIXMAN_EXPORTvoid           pixman_rasterize_trapezoid  (pixman_image_t      *image,					    const pixman_trapezoid_t  *trap,					    int                  x_off,					    int                  y_off);#endif /* PIXMAN_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -