]> granicus.if.org Git - graphviz/commitdiff
framework for supporting multiple display types (xlib, xcb, sdl, glitz, ...) via...
authorellson <devnull@localhost>
Tue, 18 Jan 2005 20:01:04 +0000 (20:01 +0000)
committerellson <devnull@localhost>
Tue, 18 Jan 2005 20:01:04 +0000 (20:01 +0000)
lib/common/types.h
lib/gvc/gvcint.h
lib/gvc/gvemit.c
lib/gvc/gvplugin.h
lib/gvc/gvplugin_display.h [new file with mode: 0644]
lib/gvc/gvplugin_layout.h
lib/gvc/gvplugin_render.h

index a03a8f578e2f3035fb3f94e7b6e36cc6df9aedc3..7e84029aff8586f70d6f787b6ed792fc874215ac 100644 (file)
@@ -36,6 +36,7 @@ extern "C" {
     typedef struct GVC_s GVC_t;
     typedef struct gvrender_engine_s gvrender_engine_t;
     typedef struct gvlayout_engine_s gvlayout_engine_t;
+    typedef struct gvdisplay_engine_s gvdisplay_engine_t;
 
     typedef struct htmllabel_t htmllabel_t;
 
index 69c1d1896459fd57e005a93ae6f6274f265c18cf..1bc40302003c6324ae9f3205b3b8e6dbc8f83fa3 100644 (file)
@@ -153,6 +153,8 @@ extern "C" {
        gv_plugin_t *apis[NUM_APIS];    /* array of linked lists of plugins for each api */
        gv_plugin_t *api[NUM_APIS];     /* array of current plugins for each api */
 
+       void *display; /* window display data for gvdisplay plugin */
+
        /* gvrender_begin_job() */
        char *layout_type;      /* string name of layout type */
        gvlayout_engine_t *layout_engine;       /* current layout engine */
index 7ef36322933970ca857a9ec4221f9e01d9e09aef..a3b67d9aaf86ca189c5b19f5fa4a3e656c7329bc 100644 (file)
@@ -533,7 +533,6 @@ void gvemit_graph(GVC_t * gvc, graph_t * g, int flags)
        win_deinit(job);
 
        XCloseDisplay(job->dpy);
-       free(job->win);
 #else
        fprintf(stderr,"No X11 support available\n");
 #endif
index d2e6add0ab28d5fedfee4df5d74054665bb88593..62579ba81911302b0836fc2936530a74877d645a 100644 (file)
 extern "C" {
 #endif
 
+#ifndef NULL
+#define NULL (void *)0
+#endif
+
 /*
  * Define an apis array of name strings using an enumerated api_t as index.
  * The enumerated type is defined here.  The apis array is
@@ -31,7 +35,7 @@ extern "C" {
  * The last enum is NUM_APIS which is the size of the array.
  */
 // #define APIS ELEM(render) ELEM(layout) ELEM(parser) ELEM(scripter) ...
-#define APIS ELEM(render) ELEM(layout)
+#define APIS ELEM(render) ELEM(layout) ELEM(display)
 
 #define ELEM(x) API_##x,
     typedef enum { APIS NUM_APIS } api_t;      /* API_render, API_layout, ... */
diff --git a/lib/gvc/gvplugin_display.h b/lib/gvc/gvplugin_display.h
new file mode 100644 (file)
index 0000000..c7f9c49
--- /dev/null
@@ -0,0 +1,36 @@
+/* $Id$ $Revision$ */
+/* vim:set shiftwidth=4 ts=8: */
+
+/**********************************************************
+*      This software is part of the graphviz package      *
+*                http://www.graphviz.org/                 *
+*                                                         *
+*            Copyright (c) 1994-2004 AT&T Corp.           *
+*                and is licensed under the                *
+*            Common Public License, Version 1.0           *
+*                      by AT&T Corp.                      *
+*                                                         *
+*        Information and Software Systems Research        *
+*              AT&T Research, Florham Park NJ             *
+**********************************************************/
+
+#ifndef GVDISPLAY_PLUGIN_H
+#define GVDISPLAY_PLUGIN_H
+
+#include "gvplugin.h"
+#include "gvcint.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    struct gvdisplay_engine_s {
+       void (*init) (GVC_t * gvc);
+       void (*process) (GVC_t * gvc);
+       void (*deinit) (GVC_t * gvc);
+    };
+
+#ifdef __cplusplus
+}
+#endif
+#endif                         /* GVDISPLAY_PLUGIN_H */
index 3508b62a22080591878317e259e1b182e308d294..e47cbfd7842169700ea934454a68da2decb6b032 100644 (file)
@@ -14,8 +14,6 @@
 *              AT&T Research, Florham Park NJ             *
 **********************************************************/
 
-/* This is the public header for the libgvre_* plugins */
-
 #ifndef GVLAYOUT_PLUGIN_H
 #define GVLAYOUT_PLUGIN_H
 
index 7155d498a3adea9f5e1a4859fe1284b17eece3c0..f92dd3e1a9d66681676b188078adebcf09f0510d 100644 (file)
@@ -14,8 +14,6 @@
 *              AT&T Research, Florham Park NJ             *
 **********************************************************/
 
-/* This is the public header for the libgvre_* plugins */
-
 #ifndef GVRENDER_PLUGIN_H
 #define GVRENDER_PLUGIN_H