版本比较

密钥

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

代码块
languagejava
/* Requests */
#define X_DamageQueryVersion        0
#define X_DamageCreate          1
#define X_DamageDestroy         2
#define X_DamageSubtract        3
#define X_DamageAdd         4
 
/* Events */
#define XDamageNotify           0
#define XDamageNumberEvents     (XDamageNotify + 1)
 
/* Constants */
#define XDamageReportRawRectangles  0      // 有新的区域
#define XDamageReportDeltaRectangles    1  // 区域有变化
#define XDamageReportBoundingBox    2      // 边界有变化
#define XDamageReportNonEmpty       3      // 空至非空转换
 
static int (*ProcDamageVector[XDamageNumberRequests]) (ClientPtr) = {
    ProcDamageQueryVersion, ProcDamageCreate, ProcDamageDestroy,
    ProcDamageSubtract, ProcDamageAdd,
};

// 提交渲染命令前调用该函数,二选一:记录或者报告;可由调用者选择。
1. 报告:指定报告触发条件,以及报告回调函数,当该drawable满足条件时回调通知
2. 记录:记录drawable所有的变化区域。如:modesetting记录screen pixmap的变化,然后更新显示。
void DamageRegionAppend(DrawablePtr pDrawable, RegionPtr pRegion);

// 提交渲染命令后调用该函数,处理reportAfter的damageReport,或者记录变化区域
void DamageRegionProcessPending(DrawablePtr pDrawable);