efl/legacy/ecore/src/lib/ecore_x/xlib/ecore_x_damage.c

71 lines
1.6 KiB
C

#ifdef HAVE_CONFIG_H
# include <config.h>
#endif /* ifdef HAVE_CONFIG_H */
#include "ecore_x_private.h"
#include "Ecore_X.h"
static int _damage_available;
#ifdef ECORE_XDAMAGE
static int _damage_major, _damage_minor;
#endif /* ifdef ECORE_XDAMAGE */
void
_ecore_x_damage_init(void)
{
#ifdef ECORE_XDAMAGE
_damage_major = 1;
_damage_minor = 0;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (XDamageQueryVersion(_ecore_x_disp, &_damage_major, &_damage_minor))
_damage_available = 1;
else
_damage_available = 0;
#else /* ifdef ECORE_XDAMAGE */
_damage_available = 0;
#endif /* ifdef ECORE_XDAMAGE */
} /* _ecore_x_damage_init */
EAPI int
ecore_x_damage_query(void)
{
return _damage_available;
} /* ecore_x_damage_query */
EAPI Ecore_X_Damage
ecore_x_damage_new(Ecore_X_Drawable d, Ecore_X_Damage_Report_Level level)
{
#ifdef ECORE_XDAMAGE
Ecore_X_Damage damage;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
damage = XDamageCreate(_ecore_x_disp, d, level);
return damage;
#else /* ifdef ECORE_XDAMAGE */
return 0;
#endif /* ifdef ECORE_XDAMAGE */
} /* ecore_x_damage_new */
EAPI void
ecore_x_damage_free(Ecore_X_Damage damage)
{
#ifdef ECORE_XDAMAGE
LOGFN(__FILE__, __LINE__, __FUNCTION__);
XDamageDestroy(_ecore_x_disp, damage);
#endif /* ifdef ECORE_XDAMAGE */
} /* ecore_x_damage_free */
EAPI void
ecore_x_damage_subtract(Ecore_X_Damage damage,
Ecore_X_Region repair,
Ecore_X_Region parts)
{
#ifdef ECORE_XDAMAGE
LOGFN(__FILE__, __LINE__, __FUNCTION__);
XDamageSubtract(_ecore_x_disp, damage, repair, parts);
#endif /* ifdef ECORE_XDAMAGE */
} /* ecore_x_damage_subtract */