1
0
Fork 0
spectre/source/Platform/Unix/Xlib.cpp
Henrik Hautakoski 090646b61a Platform/Unix: Rename X11SharedDisplay to Xlib, and remove Display member variable from all classes.
We now initialize/destroy the display in Xlib::init/shutdown that is called in UnixApplication::init/shutdown and
therefore is valid through the whole lifetime. So no need for classes to keep references.
2020-12-26 15:37:56 +01:00

34 lines
572 B
C++

#include <assert.h>
#include "Xlib.h"
namespace sp { namespace Xlib {
namespace _priv {
// Define a global display (for simplicity, we always connect to local one.)
::Display* display = NULL;
};
void init()
{
_priv::display = XOpenDisplay(NULL);
}
void shutdown()
{
XCloseDisplay(_priv::display);
_priv::display = NULL;
}
::Display* getDisplay()
{
assert(_priv::display != NULL);
return _priv::display;
}
::Atom getAtom(const std::string& name, bool onlyIfExists)
{
return XInternAtom(getDisplay(), name.c_str(), onlyIfExists);
}
} } // namespace sp::Xlib