pixman学习笔记1(region区域)

1、pixman_reginon32_t数据结构

typedef struct pixman_region32_data    pixman_region32_data_t;
typedef struct pixman_box32        pixman_box32_t;
typedef struct pixman_rectangle32    pixman_rectangle32_t;
typedef struct pixman_region32        pixman_region32_t;

struct pixman_region32
{
    pixman_box32_t          extents;
    pixman_region32_data_t  *data;
};

struct pixman_box32
{
    int32_t x1, y1, x2, y2;
};

struct pixman_region32_data {
    long        size;
    long        numRects;
/*  pixman_box32_t    rects[size];   隐藏实现 */
};

获取区域方式:单个就是extents;多个就是data后的隐藏的rects

#define PIXREGION_RECTS(reg) \
    ((reg)->data ? (box_type_t *)((reg)->data + 1) \
     : (box_type_t *)&(reg)->extents)

2、pixman_region32_init初始化

其他初始化函数:

pixman_region32_init_rect

pixman_region32_init_with_extents

void pixman_region32_init(region_type_t *region)
{
    region->extents = *pixman_region_empty_box;
    region->data = pixman_region_empty_data;
}

static const box_type_t PREFIX (_empty_box_) = { 0, 0, 0, 0 };

static box_type_t *pixman_region_empty_box =(box_type_t *)&PREFIX (_empty_box_);

static const region_data_type_t PREFIX (_empty_data_) = { 0, 0 };

static region_data_type_t *pixman_region_empty_data =(region_data_type_t *)&PREFIX (_empty_data_);

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值