35 #include <QMutexLocker>
46 #if defined ( PLD_bmpqt )
47 "bmpqt:Qt Windows bitmap driver:0:qt:66:bmpqt\n"
49 #if defined ( PLD_jpgqt )
50 "jpgqt:Qt jpg driver:0:qt:67:jpgqt\n"
52 #if defined ( PLD_pngqt )
53 "pngqt:Qt png driver:0:qt:68:pngqt\n"
55 #if defined ( PLD_ppmqt )
56 "ppmqt:Qt ppm driver:0:qt:69:ppmqt\n"
58 #if defined ( PLD_tiffqt )
59 "tiffqt:Qt tiff driver:0:qt:70:tiffqt\n"
61 #if defined ( PLD_svgqt ) && QT_VERSION >= 0x040300
62 "svgqt:Qt SVG driver:0:qt:71:svgqt\n"
64 #if defined ( PLD_qtwidget )
65 "qtwidget:Qt Widget:1:qt:72:qtwidget\n"
67 #if defined ( PLD_epsqt )
68 "epsqt:Qt EPS driver:0:qt:73:epsqt\n"
70 #if defined ( PLD_pdfqt )
71 "pdfqt:Qt PDF driver:0:qt:74:pdfqt\n"
73 #if defined ( PLD_extqt )
74 "extqt:External Qt driver:0:qt:75:extqt\n"
76 #if defined ( PLD_memqt )
77 "memqt:Memory Qt driver:0:qt:76:memqt\n"
83 {
"lines_antialiasing",
DRV_INT, &lines_aa,
"Toggles antialiasing on lines (0|1)" },
84 { NULL,
DRV_INT, NULL, NULL } };
95 argv[0] =
new char[10];
96 argv[1] =
new char[1];
101 if ( getenv(
"DISPLAY" ) == NULL )
104 new QApplication(
argc,
argv, isGUI );
143 plwarn(
"All pages after the first skipped because family file output not specified.\n" );
150 #if defined ( PLD_bmpqt ) || defined ( PLD_jpgqt ) || defined ( PLD_pngqt ) || defined ( PLD_ppmqt ) || defined ( PLD_tiffqt ) || defined ( PLD_memqt )
151 void plD_init_rasterqt(
PLStream * );
152 void plD_eop_rasterqt(
PLStream * );
153 void plD_line_rasterqt(
PLStream *,
short,
short,
short,
short );
154 void plD_polyline_rasterqt(
PLStream *,
short*,
short*,
PLINT );
155 void plD_tidy_rasterqt(
PLStream * );
160 #if defined ( PLD_bmpqt )
165 #if defined ( PLD_jpgqt )
170 #if defined ( PLD_pngqt )
175 #if defined ( PLD_ppmqt )
180 #if defined ( PLD_tiffqt )
185 #if defined ( PLD_svgqt ) && QT_VERSION >= 0x040300
190 void plD_line_svgqt(
PLStream *,
short,
short,
short,
short );
191 void plD_polyline_svgqt(
PLStream *,
short*,
short*,
PLINT );
197 #if defined ( PLD_epsqt ) || defined ( PLD_pdfqt )
198 void plD_init_epspdfqt(
PLStream * );
199 void plD_bop_epspdfqt_helper(
PLStream *,
int ifeps );
200 void plD_eop_epspdfqt(
PLStream * );
201 void plD_line_epspdfqt(
PLStream *,
short,
short,
short,
short );
202 void plD_polyline_epspdfqt(
PLStream *,
short*,
short*,
PLINT );
203 void plD_tidy_epspdfqt(
PLStream * );
207 #if defined ( PLD_epsqt )
211 #if defined ( PLD_pdfqt )
216 #if defined ( PLD_qtwidget )
218 void plD_init_qtwidget(
PLStream * );
219 void plD_eop_qtwidget(
PLStream * );
220 void plD_wait_qtwidget(
PLStream * );
221 void plD_line_qtwidget(
PLStream *,
short,
short,
short,
short );
222 void plD_polyline_qtwidget(
PLStream *,
short*,
short*,
PLINT );
223 void plD_tidy_qtwidget(
PLStream * );
226 void plD_bop_qtwidget(
PLStream * );
229 #if defined ( PLD_extqt )
233 void plD_line_extqt(
PLStream *,
short,
short,
short,
short );
234 void plD_polyline_extqt(
PLStream *,
short*,
short*,
PLINT );
241 #if defined ( PLD_memqt )
249 #if defined ( PLD_bmpqt ) || defined ( PLD_jpgqt ) || defined ( PLD_pngqt ) || defined ( PLD_ppmqt ) || defined ( PLD_tiffqt ) || defined ( PLD_memqt )
281 if ( pls->
xdpi <= 0. )
289 pls->
dev =
new QtRasterDevice;
290 pls->
xlength = (
PLINT) ( ( (QtRasterDevice *) ( pls->
dev ) )->m_dWidth );
291 pls->
ylength = (
PLINT) ( ( (QtRasterDevice *) ( pls->
dev ) )->m_dHeight );
297 ( (QtRasterDevice *) pls->
dev )->setPLStream( pls );
300 handler.setMasterDevice( (QtRasterDevice *) ( pls->
dev ) );
309 plP_setpxl( dpi / 25.4 / ( (QtRasterDevice *) ( pls->
dev ) )->downscale, dpi / 25.4 / ( (QtRasterDevice *) ( pls->
dev ) )->downscale );
311 ( (QtRasterDevice *) ( pls->
dev ) )->setResolution( dpi );
319 void plD_eop_rasterqt(
PLStream *pls )
325 ( (QtRasterDevice *) pls->
dev )->savePlot();
326 handler.DeviceChangedPage( (QtRasterDevice *) pls->
dev );
329 void plD_line_rasterqt(
PLStream * pls,
short x1a,
short y1a,
short x2a,
short y2a )
331 QtRasterDevice* widget = (QtRasterDevice *) pls->
dev;
337 if ( widget == NULL )
341 widget->drawLine( x1a, y1a, x2a, y2a );
344 void plD_polyline_rasterqt(
PLStream *pls,
short *xa,
short *ya,
PLINT npts )
346 QtRasterDevice * widget = (QtRasterDevice *) pls->
dev;
352 if ( widget == NULL )
356 widget->drawPolyline( xa, ya, npts );
362 unsigned char *r, *g, *b;
365 QtRasterDevice * widget = (QtRasterDevice *) pls->
dev;
370 if ( widget == NULL )
386 for ( i = 0; i < pls->
dev_npts; i++ )
388 xa[i] = pls->
dev_x[i];
389 ya[i] = pls->
dev_y[i];
392 widget->drawPolygon( xa, ya, pls->
dev_npts );
401 r =
new unsigned char[pls->
ncol1];
402 g =
new unsigned char[pls->
ncol1];
403 b =
new unsigned char[pls->
ncol1];
406 for ( i = 0; i < pls->
ncol1; i++ )
411 alpha[i] = pls->
cmap1[i].
a;
415 for ( i = 0; i < pls->
dev_npts; i++ )
417 xa[i] = pls->
dev_x[i];
418 ya[i] = pls->
dev_y[i];
420 widget->drawPolygon( xa, ya, pls->
dev_npts );
434 widget->drawText( (
EscText *) ptr );
443 QtRasterDevice * widget = (QtRasterDevice *) pls->
dev;
448 if ( widget == NULL )
454 widget->setWidthF( pls->
width );
470 void plD_tidy_rasterqt(
PLStream * pls )
472 QtRasterDevice * widget = (QtRasterDevice *) pls->
dev;
474 if ( widget != NULL )
476 handler.DeviceClosed( widget );
486 #if defined ( PLD_bmpqt )
489 #ifndef ENABLE_DYNDRIVERS
516 ( (QtRasterDevice *) pls->
dev )->definePlotName( pls->
FileName,
"BMP" );
521 #if defined ( PLD_jpgqt )
524 #ifndef ENABLE_DYNDRIVERS
551 ( (QtRasterDevice *) pls->
dev )->definePlotName( pls->
FileName,
"JPG" );
556 #if defined ( PLD_pngqt )
559 #ifndef ENABLE_DYNDRIVERS
586 ( (QtRasterDevice *) pls->
dev )->definePlotName( pls->
FileName,
"PNG" );
591 #if defined ( PLD_ppmqt )
594 #ifndef ENABLE_DYNDRIVERS
621 ( (QtRasterDevice *) pls->
dev )->definePlotName( pls->
FileName,
"PPM" );
626 #if defined ( PLD_tiffqt )
629 #ifndef ENABLE_DYNDRIVERS
645 void plD_bop_tiffqt(
PLStream *pls )
656 ( (QtRasterDevice *) pls->
dev )->definePlotName( pls->
FileName,
"TIFF" );
661 #if defined ( PLD_svgqt ) && QT_VERSION >= 0x040300
664 #ifndef ENABLE_DYNDRIVERS
680 void plD_init_svgqt(
PLStream * pls )
711 pls->
dev =
new QtSVGDevice;
712 pls->
xlength = (int) ( ( (QtSVGDevice *) ( pls->
dev ) )->m_dWidth );
713 pls->
ylength = (int) ( ( (QtSVGDevice *) ( pls->
dev ) )->m_dHeight );
719 ( (QtSVGDevice *) pls->
dev )->setPLStream( pls );
722 handler.setMasterDevice( (QtSVGDevice *) ( pls->
dev ) );
750 ( (QtSVGDevice *) pls->
dev )->definePlotName( pls->
FileName );
763 ( (QtSVGDevice *) pls->
dev )->savePlot();
766 downscale = ( (QtSVGDevice *) pls->
dev )->downscale;
767 s = ( (QtSVGDevice *) pls->
dev )->size();
768 bool isMaster = ( handler.isMasterDevice( (QtSVGDevice *) pls->
dev ) );
769 delete ( (QtSVGDevice *) pls->
dev );
771 pls->
dev =
new QtSVGDevice( s.width(), s.height() );
772 ( (QtSVGDevice *) pls->
dev )->downscale = downscale;
773 ( (QtSVGDevice *) pls->
dev )->setPLStream( pls );
776 handler.setMasterDevice( (QtSVGDevice *) pls->
dev );
777 handler.DeviceChangedPage( (QtSVGDevice *) pls->
dev );
780 void plD_line_svgqt(
PLStream * pls,
short x1a,
short y1a,
short x2a,
short y2a )
782 QtSVGDevice* widget = (QtSVGDevice *) pls->
dev;
787 if ( widget == NULL )
791 widget->drawLine( x1a, y1a, x2a, y2a );
794 void plD_polyline_svgqt(
PLStream *pls,
short *xa,
short *ya,
PLINT npts )
796 QtSVGDevice * widget = (QtSVGDevice *) pls->
dev;
801 if ( widget == NULL )
805 widget->drawPolyline( xa, ya, npts );
811 unsigned char *r, *g, *b;
814 QtSVGDevice * widget = (QtSVGDevice *) pls->
dev;
819 if ( widget == NULL )
828 for ( i = 0; i < pls->
dev_npts; i++ )
830 xa[i] = pls->
dev_x[i];
831 ya[i] = pls->
dev_y[i];
834 widget->drawPolygon( xa, ya, pls->
dev_npts );
843 r =
new unsigned char[pls->
ncol1];
844 g =
new unsigned char[pls->
ncol1];
845 b =
new unsigned char[pls->
ncol1];
848 for ( i = 0; i < pls->
ncol1; i++ )
853 alpha[i] = pls->
cmap1[i].
a;
857 for ( i = 0; i < pls->
dev_npts; i++ )
859 xa[i] = pls->
dev_x[i];
860 ya[i] = pls->
dev_y[i];
862 widget->drawPolygon( xa, ya, pls->
dev_npts );
876 widget->drawText( (
EscText *) ptr );
886 QtSVGDevice * widget = (QtSVGDevice *) pls->
dev;
891 if ( widget == NULL )
897 widget->setWidthF( pls->
width );
912 void plD_tidy_svgqt(
PLStream * pls )
914 QtSVGDevice * widget = (QtSVGDevice *) pls->
dev;
916 if ( widget != NULL )
918 handler.DeviceClosed( widget );
928 #if defined ( PLD_epsqt )
931 #ifndef ENABLE_DYNDRIVERS
948 #if defined ( PLD_pdfqt )
951 #ifndef ENABLE_DYNDRIVERS
968 #if defined ( PLD_epsqt ) || defined ( PLD_pdfqt )
969 void plD_init_epspdfqt(
PLStream * pls )
1002 pls->
dev =
new QtEPSDevice;
1003 pls->
xlength = (int) ( ( (QtEPSDevice *) ( pls->
dev ) )->m_dWidth );
1004 pls->
ylength = (int) ( ( (QtEPSDevice *) ( pls->
dev ) )->m_dHeight );
1010 ( (QtEPSDevice *) pls->
dev )->setPLStream( pls );
1013 handler.setMasterDevice( (QtEPSDevice *) ( pls->
dev ) );
1030 void plD_bop_epspdfqt_helper(
PLStream *pls,
int ifeps )
1041 ( (QtEPSDevice *) pls->
dev )->definePlotName( pls->
FileName, ifeps );
1045 void plD_eop_epspdfqt(
PLStream *pls )
1053 ( (QtEPSDevice *) pls->
dev )->savePlot();
1056 downscale = ( (QtEPSDevice *) pls->
dev )->downscale;
1057 bool isMaster = handler.isMasterDevice( (QtEPSDevice *) pls->
dev );
1058 delete ( (QtEPSDevice *) pls->
dev );
1060 pls->
dev =
new QtEPSDevice;
1061 ( (QtEPSDevice *) pls->
dev )->downscale = downscale;
1064 handler.setMasterDevice( (QtEPSDevice *) pls->
dev );
1065 handler.DeviceChangedPage( (QtEPSDevice *) pls->
dev );
1068 void plD_line_epspdfqt(
PLStream * pls,
short x1a,
short y1a,
short x2a,
short y2a )
1070 QtEPSDevice* widget = (QtEPSDevice *) pls->
dev;
1075 if ( widget == NULL )
1079 widget->drawLine( x1a, y1a, x2a, y2a );
1082 void plD_polyline_epspdfqt(
PLStream *pls,
short *xa,
short *ya,
PLINT npts )
1084 QtEPSDevice * widget = (QtEPSDevice *) pls->
dev;
1089 if ( widget == NULL )
1093 widget->drawPolyline( xa, ya, npts );
1096 void plD_esc_epspdfqt(
PLStream * pls,
PLINT op,
void* ptr )
1099 unsigned char *r, *g, *b;
1102 QtEPSDevice * widget = (QtEPSDevice *) pls->
dev;
1109 if ( widget == NULL )
1118 for ( i = 0; i < pls->
dev_npts; i++ )
1120 xa[i] = pls->
dev_x[i];
1121 ya[i] = pls->
dev_y[i];
1124 widget->drawPolygon( xa, ya, pls->
dev_npts );
1133 r =
new unsigned char[pls->
ncol1];
1134 g =
new unsigned char[pls->
ncol1];
1135 b =
new unsigned char[pls->
ncol1];
1138 for ( i = 0; i < pls->
ncol1; i++ )
1143 alpha[i] = pls->
cmap1[i].
a;
1147 for ( i = 0; i < pls->
dev_npts; i++ )
1149 xa[i] = pls->
dev_x[i];
1150 ya[i] = pls->
dev_y[i];
1152 widget->drawPolygon( xa, ya, pls->
dev_npts );
1166 widget->drawText( (
EscText *) ptr );
1170 widget->drawArc( arc_info->x, arc_info->y, arc_info->a, arc_info->b, arc_info->angle1, arc_info->angle2, arc_info->rotate, arc_info->fill );
1179 QtEPSDevice * widget = (QtEPSDevice *) pls->
dev;
1184 if ( widget == NULL )
1190 widget->setWidthF( pls->
width );
1206 void plD_tidy_epspdfqt(
PLStream * pls )
1208 QtEPSDevice * widget = (QtEPSDevice *) pls->
dev;
1210 if ( widget != NULL )
1212 handler.DeviceClosed( widget );
1222 #if defined ( PLD_epsqt )
1223 void plD_bop_epsqt(
PLStream *pls )
1225 plD_bop_epspdfqt_helper( pls, 1 );
1229 #if defined ( PLD_pdfqt )
1230 void plD_bop_pdfqt(
PLStream *pls )
1232 plD_bop_epspdfqt_helper( pls, 0 );
1236 #if defined ( PLD_qtwidget )
1239 #ifndef ENABLE_DYNDRIVERS
1256 void plD_init_qtwidget(
PLStream * pls )
1267 widget =
new QtPLWidget;
1268 pls->
dev = (
void *) widget;
1269 pls->
xlength = (int) widget->m_dWidth;
1270 pls->
ylength = (
int) widget->m_dHeight;
1275 pls->
dev = (
void *) widget;
1277 widget->setPLStream( pls );
1280 handler.setMasterDevice( widget );
1282 if ( plsc->xlength > plsc->ylength )
1290 QPainter tempPainter( &temp );
1292 plP_setpxl( temp.logicalDpiX() / 25.4 / widget->downscale, temp.logicalDpiY() / 25.4 / widget->downscale );
1313 widget->setVisible(
true );
1314 widget->resize( plsc->xlength, plsc->ylength );
1315 widget->move( plsc->xoffset, plsc->yoffset );
1317 widget->setWindowTitle( pls->
plwindow );
1319 qApp->connect( &handler, SIGNAL( MasterChangedPage() ), widget, SLOT( nextPage() ) );
1320 qApp->connect( &handler, SIGNAL( MasterClosed() ), widget, SLOT( close() ) );
1323 void plD_eop_qtwidget(
PLStream *pls )
1325 QtPLWidget* widget = ( (QtPLWidget *) pls->
dev );
1331 void plD_wait_qtwidget(
PLStream *pls )
1333 QtPLWidget* widget = ( (QtPLWidget *) pls->
dev );
1334 int currentPage = widget->pageNumber;
1337 while ( currentPage == widget->pageNumber && handler.isMasterDevice( widget ) )
1339 qApp->processEvents( QEventLoop::WaitForMoreEvents );
1343 void plD_bop_qtwidget(
PLStream *pls )
1345 QtPLWidget* widget = ( (QtPLWidget *) pls->
dev );
1349 void plD_line_qtwidget(
PLStream * pls,
short x1a,
short y1a,
short x2a,
short y2a )
1351 QtPLWidget* widget = (QtPLWidget *) pls->
dev;
1352 if ( widget == NULL )
1356 widget->drawLine( x1a, y1a, x2a, y2a );
1359 void plD_polyline_qtwidget(
PLStream *pls,
short *xa,
short *ya,
PLINT npts )
1361 QtPLWidget * widget = (QtPLWidget *) pls->
dev;
1362 if ( widget == NULL )
1366 widget->drawPolyline( xa, ya, npts );
1369 void plD_esc_qtwidget(
PLStream * pls,
PLINT op,
void* ptr )
1373 unsigned char *r, *g, *b;
1375 QtPLWidget * widget = (QtPLWidget *) pls->
dev;
1377 if ( widget == NULL )
1386 for ( i = 0; i < pls->
dev_npts; i++ )
1388 xa[i] = pls->
dev_x[i];
1389 ya[i] = pls->
dev_y[i];
1393 widget->drawPolygon( xa, ya, pls->
dev_npts );
1402 r =
new unsigned char[pls->
ncol1];
1403 g =
new unsigned char[pls->
ncol1];
1404 b =
new unsigned char[pls->
ncol1];
1407 for ( i = 0; i < pls->
ncol1; i++ )
1412 alpha[i] = pls->
cmap1[i].
a;
1416 for ( i = 0; i < pls->
dev_npts; i++ )
1418 xa[i] = pls->
dev_x[i];
1419 ya[i] = pls->
dev_y[i];
1421 widget->drawPolygon( xa, ya, pls->
dev_npts );
1433 widget->drawText( (
EscText *) ptr );
1437 widget->drawArc( arc_info->x, arc_info->y, arc_info->a, arc_info->b, arc_info->angle1, arc_info->angle2, arc_info->rotate, arc_info->fill );
1452 QtPLWidget * widget = (QtPLWidget *) pls->
dev;
1453 if ( widget == NULL )
1459 widget->setWidthF( pls->
width );
1475 void plD_tidy_qtwidget(
PLStream * pls )
1477 QtPLWidget * widget = (QtPLWidget *) pls->
dev;
1479 if ( widget != NULL )
1481 handler.DeviceClosed( widget );
1490 #if defined ( PLD_extqt )
1493 #ifndef ENABLE_DYNDRIVERS
1509 void plD_init_extqt(
PLStream * pls )
1514 if ( pls->
dev == NULL )
1516 printf(
"Error: use plsetqtdev to set up the Qt device before calling plinit()\n" );
1520 QtExtWidget* widget = (QtExtWidget *) ( pls->
dev );
1522 if ( widget->m_dWidth > widget->m_dHeight )
1530 QPainter tempPainter( &temp );
1532 plP_setpxl( temp.logicalDpiX() / 25.4 / widget->downscale, temp.logicalDpiY() / 25.4 / widget->downscale );
1560 void plD_line_extqt(
PLStream * pls,
short x1a,
short y1a,
short x2a,
short y2a )
1562 QtExtWidget * widget = NULL;
1564 widget = (QtExtWidget *) pls->
dev;
1566 widget->drawLine( x1a, y1a, x2a, y2a );
1569 void plD_polyline_extqt(
PLStream *pls,
short *xa,
short *ya,
PLINT npts )
1571 QtExtWidget * widget = NULL;
1573 widget = (QtExtWidget *) pls->
dev;
1575 widget->drawPolyline( xa, ya, npts );
1582 unsigned char *r, *g, *b;
1584 QtExtWidget * widget = NULL;
1587 widget = (QtExtWidget *) pls->
dev;
1594 for ( i = 0; i < pls->
dev_npts; i++ )
1596 xa[i] = pls->
dev_x[i];
1597 ya[i] = pls->
dev_y[i];
1600 widget->drawPolygon( xa, ya, pls->
dev_npts );
1609 r =
new unsigned char[pls->
ncol1];
1610 g =
new unsigned char[pls->
ncol1];
1611 b =
new unsigned char[pls->
ncol1];
1614 for ( i = 0; i < pls->
ncol1; i++ )
1619 alpha[i] = pls->
cmap1[i].
a;
1623 for ( i = 0; i < pls->
dev_npts; i++ )
1625 xa[i] = pls->
dev_x[i];
1626 ya[i] = pls->
dev_y[i];
1628 widget->drawPolygon( xa, ya, pls->
dev_npts );
1642 widget->drawText( (
EscText *) ptr );
1646 widget->drawArc( arc_info->
x, arc_info->
y, arc_info->
a, arc_info->
b, arc_info->
angle1, arc_info->
angle2, arc_info->
rotate, arc_info->
fill );
1655 QtExtWidget * widget = NULL;
1657 widget = (QtExtWidget *) pls->
dev;
1661 widget->setWidthF( pls->
width );
1677 void plD_tidy_extqt(
PLStream * pls )
1679 QtExtWidget * widget = NULL;
1681 widget = (QtExtWidget *) pls->
dev;
1682 if ( widget != NULL )
1684 handler.DeviceClosed( widget );
1696 void plD_bop_extqt(
PLStream *pls )
1698 QtExtWidget * widget = NULL;
1699 widget = (QtExtWidget *) pls->
dev;
1704 #if defined ( PLD_memqt )
1707 #ifndef ENABLE_DYNDRIVERS
1723 void plD_init_memqt(
PLStream * pls )
1727 unsigned char *qt_mem;
1728 unsigned char *input_mem;
1758 if ( pls->
xdpi <= 0. )
1769 input_mem = (
unsigned char *) pls->
dev;
1773 ( (QtRasterDevice *) pls->
dev )->setPLStream( pls );
1774 ( (QtRasterDevice *) pls->
dev )->memory = input_mem;
1777 handler.setMasterDevice( (QtRasterDevice *) ( pls->
dev ) );
1786 plP_setpxl( dpi / 25.4 / ( (QtRasterDevice *) ( pls->
dev ) )->downscale, dpi / 25.4 / ( (QtRasterDevice *) ( pls->
dev ) )->downscale );
1792 qt_mem = ( (QtRasterDevice *) pls->
dev )->scanLine( 0 );
1796 qt_mem[2] = input_mem[0];
1797 qt_mem[1] = input_mem[1];
1798 qt_mem[0] = input_mem[2];
1801 qt_mem[3] = input_mem[3];
1811 ( (QtRasterDevice *) ( pls->
dev ) )->setResolution( dpi );
1822 void plD_eop_memqt(
PLStream *pls )
1825 unsigned char *memory;
1826 unsigned char *qt_mem;
1828 memory = ( (QtRasterDevice *) pls->
dev )->memory;
1829 qt_mem = ( (QtRasterDevice *) pls->
dev )->scanLine( 0 );
1833 memory[0] = qt_mem[2];
1834 memory[1] = qt_mem[1];
1835 memory[2] = qt_mem[0];
1838 memory[3] = qt_mem[3];
int plParseDrvOpts(DrvOpt *acc_opt)
PLDLLIMPEXP_DRIVER void plD_dispatch_init_bmpqt(PLDispatchTable *pdt)
void(* plD_line_fp)(struct PLStream_struct *, short, short, short, short)
PLDLLIMPEXP_DRIVER void plD_dispatch_init_memqt(PLDispatchTable *pdt)
void(* plD_eop_fp)(struct PLStream_struct *)
PLDLLIMPEXP_DRIVER void plD_dispatch_init_ppmqt(PLDispatchTable *pdt)
void(* plD_state_fp)(struct PLStream_struct *, PLINT)
void(* plD_tidy_fp)(struct PLStream_struct *)
bool initQtApp(bool isGUI)
static int qt_family_check(PLStream *pls)
void plOpenFile(PLStream *pls)
void plCloseFile(PLStream *pls)
void plGetFam(PLStream *pls)
PLDLLIMPEXP_DRIVER_DATA(const char *) plD_DEVICE_INFO_qt
void(* plD_wait_fp)(struct PLStream_struct *)
void plFamInit(PLStream *pls)
void(* plD_polyline_fp)(struct PLStream_struct *, short *, short *, PLINT)
PLDLLIMPEXP_DRIVER void plD_dispatch_init_extqt(PLDispatchTable *pdt)
void(* plD_esc_fp)(struct PLStream_struct *, PLINT, void *)
void(* plD_bop_fp)(struct PLStream_struct *)
static DrvOpt qt_options[]
PLDLLIMPEXP_DRIVER void plD_dispatch_init_tiffqt(PLDispatchTable *pdt)
void plP_setpxl(PLFLT xpmm, PLFLT ypmm)
static PLStream * pls[PL_NSTREAMS]
void plP_setphy(PLINT xmin, PLINT xmax, PLINT ymin, PLINT ymax)
PLDLLIMPEXP_DRIVER void plD_dispatch_init_pdfqt(PLDispatchTable *pdt)
static int already_warned
PLDLLIMPEXP_DRIVER void plD_dispatch_init_epsqt(PLDispatchTable *pdt)
void plwarn(PLCHAR_VECTOR errormsg)
PLDLLIMPEXP_DRIVER void plD_dispatch_init_qtwidget(PLDispatchTable *pdt)
PLDLLIMPEXP_DRIVER void plD_dispatch_init_jpgqt(PLDispatchTable *pdt)
PLDLLIMPEXP_DRIVER void plD_dispatch_init_svgqt(PLDispatchTable *pdt)
plD_polyline_fp pl_polyline
PLDLLIMPEXP_DRIVER void plD_dispatch_init_pngqt(PLDispatchTable *pdt)
void(* plD_init_fp)(struct PLStream_struct *)