return 0;
}
-static void init_job_flags(GVJ_t * job, graph_t * g)
-{
- switch (job->output_lang) {
- case GVRENDER_PLUGIN:
- job->flags |= chkOrder(g)
- | job->render.features->flags
- | job->device.features->flags;
- break;
- case VTX:
- /* output sorted, i.e. all nodes then all edges */
- job->flags |= EMIT_SORTED;
- break;
- case DIA:
- /* output in preorder traversal of the graph */
- job->flags |= EMIT_PREORDER
- | GVDEVICE_BINARY_FORMAT;
- break;
- default:
- job->flags |= chkOrder(g);
- break;
- }
-}
-
static void init_layering(GVC_t * gvc, graph_t * g)
{
char *str;
Output_lang = job->output_lang;
#endif
- init_job_flags(job, g);
+ switch (job->output_lang) {
+ case VTX:
+ /* output sorted, i.e. all nodes then all edges */
+ job->flags |= EMIT_SORTED;
+ break;
+ case DIA:
+ /* output in preorder traversal of the graph */
+ job->flags |= EMIT_PREORDER
+ | GVDEVICE_BINARY_FORMAT;
+ break;
+ default:
+ job->flags |= chkOrder(g);
+ break;
+ }
/* if we already have an active job list and the device doesn't support mutiple output files, or we are about to write to a different output device */
firstjob = gvc->active_jobs;
gvplugin_load(gvc, API_device, str);
+ job->flags = 0;
plugin = gvc->api[API_device];
if (plugin) {
#ifdef WITH_CODEGENS
job->device.features = (gvdevice_features_t *) (typeptr->features);
job->device.id = typeptr->id;
job->device.type = plugin->typestr;
+
+ job->flags |= job->device.features->flags;
}
else
return NO_SUPPORT; /* FIXME - should differentiate problem */
job->render.features = (gvrender_features_t *) (typeptr->features);
job->render.type = plugin->typestr;
+ job->flags |= job->render.features->flags;
+
if (job->device.engine)
job->render.id = typeptr->id;
else