- return new PBMOutputDev(display, screen, pixmap, dummyWin,
- invert, fileRoot1);
+ out = new PBMOutputDev(display, screen, pixmap, dummyWin,
+ invert, fileRoot1);
+ out->startDoc();
+ return out;
+}
+
+void PBMOutputDev::killPBMOutputDev(PBMOutputDev *out) {
+ Display *display;
+ Pixmap pixmap;
+ Window dummyWin;
+
+ display = out->display;
+ pixmap = out->pixmap;
+ dummyWin = out->dummyWin;
+
+ delete out;
+
+ // these have to be done *after* the XOutputDev (parent of the
+ // PBMOutputDev) is deleted, since XOutputDev::~XOutputDev() needs
+ // them
+ XFreePixmap(display, pixmap);
+ XDestroyWindow(display, dummyWin);
+ XCloseDisplay(display);