32 lines
501 B
C++
32 lines
501 B
C++
|
|
#include "X11SharedDisplay.h"
|
|
|
|
namespace sp {
|
|
|
|
// Define a global display (for simplicity, we always connect to local one.)
|
|
::Display* sharedDisplay = NULL;
|
|
unsigned int refcount = 0;
|
|
|
|
::Display* XGetDisplay() {
|
|
|
|
// Create if we dont have any references.
|
|
if (refcount == 0) {
|
|
sharedDisplay = XOpenDisplay(NULL);
|
|
}
|
|
|
|
refcount++;
|
|
return sharedDisplay;
|
|
}
|
|
|
|
void XReleaseDisplay() {
|
|
|
|
if (refcount < 1) {
|
|
return;
|
|
}
|
|
|
|
if (--refcount == 0) {
|
|
XCloseDisplay(sharedDisplay);
|
|
}
|
|
}
|
|
|
|
} // namespace sp
|