3 #endif /* ifdef HAVE_CONFIG_H */
5 #include "ecore_x_private.h"
8 static Eina_Bool _damage_available = EINA_FALSE;
10 static int _damage_major, _damage_minor;
11 #endif /* ifdef ECORE_XDAMAGE */
14 _ecore_x_damage_init(void)
20 LOGFN(__FILE__, __LINE__, __FUNCTION__);
21 if (XDamageQueryVersion(_ecore_x_disp, &_damage_major, &_damage_minor))
22 _damage_available = EINA_TRUE;
24 _damage_available = EINA_FALSE;
26 #else /* ifdef ECORE_XDAMAGE */
27 _damage_available = EINA_FALSE;
28 #endif /* ifdef ECORE_XDAMAGE */
32 ecore_x_damage_query(void)
34 return _damage_available;
38 ecore_x_damage_new(Ecore_X_Drawable d,
39 Ecore_X_Damage_Report_Level level)
42 Ecore_X_Damage damage;
44 LOGFN(__FILE__, __LINE__, __FUNCTION__);
45 EINA_SAFETY_ON_NULL_RETURN_VAL(_ecore_x_disp, 0);
46 damage = XDamageCreate(_ecore_x_disp, d, level);
47 if (_ecore_xlib_sync) ecore_x_sync();
49 #else /* ifdef ECORE_XDAMAGE */
51 #endif /* ifdef ECORE_XDAMAGE */
55 ecore_x_damage_free(Ecore_X_Damage damage)
58 LOGFN(__FILE__, __LINE__, __FUNCTION__);
59 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
60 XDamageDestroy(_ecore_x_disp, damage);
61 #endif /* ifdef ECORE_XDAMAGE */
65 ecore_x_damage_subtract(Ecore_X_Damage damage,
66 Ecore_X_Region repair,
70 LOGFN(__FILE__, __LINE__, __FUNCTION__);
71 EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
72 XDamageSubtract(_ecore_x_disp, damage, repair, parts);
73 if (_ecore_xlib_sync) ecore_x_sync();
74 #endif /* ifdef ECORE_XDAMAGE */