XUniqueResource.cpp [plain text]
#include "config.h"
#include "XUniqueResource.h"
#if PLATFORM(X11)
#include "PlatformDisplayX11.h"
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#if PLATFORM(GTK)
#include <X11/extensions/Xdamage.h>
#endif
#if USE(GLX)
#include <GL/glx.h>
#endif
namespace WebCore {
static inline Display* sharedDisplay()
{
return downcast<PlatformDisplayX11>(PlatformDisplay::sharedDisplay()).native();
}
template<> void XUniqueResource<XResource::Colormap>::deleteXResource(unsigned long resource)
{
if (resource)
XFreeColormap(sharedDisplay(), resource);
}
#if PLATFORM(GTK)
template<> void XUniqueResource<XResource::Damage>::deleteXResource(unsigned long resource)
{
if (resource)
XDamageDestroy(sharedDisplay(), resource);
}
#endif
template<> void XUniqueResource<XResource::Pixmap>::deleteXResource(unsigned long resource)
{
if (resource)
XFreePixmap(sharedDisplay(), resource);
}
template<> void XUniqueResource<XResource::Window>::deleteXResource(unsigned long resource)
{
if (resource)
XDestroyWindow(sharedDisplay(), resource);
}
#if USE(GLX)
template<> void XUniqueResource<XResource::GLXPbuffer>::deleteXResource(unsigned long resource)
{
if (resource)
glXDestroyPbuffer(sharedDisplay(), resource);
}
template<> void XUniqueResource<XResource::GLXPixmap>::deleteXResource(unsigned long resource)
{
if (resource)
glXDestroyGLXPixmap(sharedDisplay(), resource);
}
#endif // USE(GLX)
}
#endif // PLATFORM(X11)