From: Magnus Jacobsson Date: Tue, 20 Jul 2021 05:05:15 +0000 (+0200) Subject: [nfc] define RENDER_API instead of redefining extern X-Git-Tag: 2.49.0~51^2~8 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5515b6d116cc759add8fc25f8e7eeca4f63c9c0e;p=graphviz [nfc] define RENDER_API instead of redefining extern --- diff --git a/lib/common/render.h b/lib/common/render.h index 526d3bfed..381441ea6 100644 --- a/lib/common/render.h +++ b/lib/common/render.h @@ -57,103 +57,106 @@ extern "C" { /*visual studio*/ #ifdef _WIN32 #ifndef GVC_EXPORTS -#define extern __declspec(dllimport) +#define RENDER_API __declspec(dllimport) #endif #endif /*end visual studio*/ +#ifndef RENDER_API +#define RENDER_API extern +#endif - extern void add_box(path *, boxf); - extern void arrow_flags(Agedge_t * e, int *sflag, int *eflag); - extern boxf arrow_bb(pointf p, pointf u, double arrowsize, int flag); - extern void arrow_gen(GVJ_t * job, emit_state_t emit_state, pointf p, pointf u, + RENDER_API void add_box(path *, boxf); + RENDER_API void arrow_flags(Agedge_t * e, int *sflag, int *eflag); + RENDER_API boxf arrow_bb(pointf p, pointf u, double arrowsize, int flag); + RENDER_API void arrow_gen(GVJ_t * job, emit_state_t emit_state, pointf p, pointf u, double arrowsize, double penwidth, int flag); - extern double arrow_length(edge_t * e, int flag); - extern int arrowEndClip(edge_t*, pointf*, int, int , bezier*, int eflag); - extern int arrowStartClip(edge_t*, pointf* ps, int, int, bezier*, int sflag); - extern void arrowOrthoClip(edge_t*, pointf* ps, int, int, bezier*, int sflag, int eflag); - extern void beginpath(path *, Agedge_t *, int, pathend_t *, boolean); - extern void bezier_clip(inside_t * inside_context, + RENDER_API double arrow_length(edge_t * e, int flag); + RENDER_API int arrowEndClip(edge_t*, pointf*, int, int , bezier*, int eflag); + RENDER_API int arrowStartClip(edge_t*, pointf* ps, int, int, bezier*, int sflag); + RENDER_API void arrowOrthoClip(edge_t*, pointf* ps, int, int, bezier*, int sflag, int eflag); + RENDER_API void beginpath(path *, Agedge_t *, int, pathend_t *, boolean); + RENDER_API void bezier_clip(inside_t * inside_context, boolean(*insidefn) (inside_t * inside_context, pointf p), pointf * sp, boolean left_inside); - extern shape_desc *bind_shape(char *name, node_t *); - extern void makeStraightEdge(graph_t * g, edge_t * e, int edgetype, splineInfo * info); - extern void makeStraightEdges(graph_t* g, edge_t** edges, int e_cnt, int et, splineInfo* sinfo); - extern void clip_and_install(edge_t * fe, node_t * hn, + RENDER_API shape_desc *bind_shape(char *name, node_t *); + RENDER_API void makeStraightEdge(graph_t * g, edge_t * e, int edgetype, splineInfo * info); + RENDER_API void makeStraightEdges(graph_t* g, edge_t** edges, int e_cnt, int et, splineInfo* sinfo); + RENDER_API void clip_and_install(edge_t * fe, node_t * hn, pointf * ps, int pn, splineInfo * info); - extern char* charsetToStr (int c); - extern pointf coord(node_t * n); - extern void do_graph_label(graph_t * sg); - extern void graph_init(graph_t * g, boolean use_rankdir); - extern void graph_cleanup(graph_t * g); - extern int dotneato_args_initialize(GVC_t * gvc, int, char **); - extern int dotneato_usage(int); - extern void dotneato_postprocess(Agraph_t *); - extern void gv_postprocess(Agraph_t *, int); - extern void dotneato_set_margins(GVC_t * gvc, Agraph_t *); - extern void dotneato_write(GVC_t * gvc, graph_t *g); - extern void dotneato_write_one(GVC_t * gvc, graph_t *g); - extern Ppolyline_t* ellipticWedge (pointf ctr, double major, double minor, double angle0, double angle1); - extern void emit_clusters(GVJ_t * job, Agraph_t * g, int flags); - extern char* getObjId (GVJ_t* job, void* obj, agxbuf* xb); - /* extern void emit_begin_edge(GVJ_t * job, edge_t * e, char**); */ - /* extern void emit_end_edge(GVJ_t * job); */ - extern void emit_graph(GVJ_t * job, graph_t * g); - extern void emit_label(GVJ_t * job, emit_state_t emit_state, textlabel_t *); - extern int emit_once(char *message); - extern void emit_map_rect(GVJ_t *job, boxf b); - extern void endpath(path *, Agedge_t *, int, pathend_t *, boolean); - extern void epsf_init(node_t * n); - extern void epsf_free(node_t * n); - extern shape_desc *find_user_shape(const char *); - extern void free_line(textspan_t *); - extern void free_label(textlabel_t *); - extern void free_textspan(textspan_t * tl, int); - extern void getdouble(graph_t * g, char *name, double *result); - extern splines *getsplinepoints(edge_t * e); - extern void gv_fixLocale (int set); - extern void gv_free_splines(edge_t * e); - extern void gv_cleanup_edge(Agedge_t * e); - extern void gv_cleanup_node(Agnode_t * n); - extern void* init_xdot (Agraph_t* g); - extern int initMapData (GVJ_t*, char*, char*, char*, char*, char*, void*); - extern boolean isPolygon(node_t *); - extern void makeSelfEdge(path * P, edge_t * edges[], int ind, int cnt, + RENDER_API char* charsetToStr (int c); + RENDER_API pointf coord(node_t * n); + RENDER_API void do_graph_label(graph_t * sg); + RENDER_API void graph_init(graph_t * g, boolean use_rankdir); + RENDER_API void graph_cleanup(graph_t * g); + RENDER_API int dotneato_args_initialize(GVC_t * gvc, int, char **); + RENDER_API int dotneato_usage(int); + RENDER_API void dotneato_postprocess(Agraph_t *); + RENDER_API void gv_postprocess(Agraph_t *, int); + RENDER_API void dotneato_set_margins(GVC_t * gvc, Agraph_t *); + RENDER_API void dotneato_write(GVC_t * gvc, graph_t *g); + RENDER_API void dotneato_write_one(GVC_t * gvc, graph_t *g); + RENDER_API Ppolyline_t* ellipticWedge (pointf ctr, double major, double minor, double angle0, double angle1); + RENDER_API void emit_clusters(GVJ_t * job, Agraph_t * g, int flags); + RENDER_API char* getObjId (GVJ_t* job, void* obj, agxbuf* xb); + /* RENDER_API void emit_begin_edge(GVJ_t * job, edge_t * e, char**); */ + /* RENDER_API void emit_end_edge(GVJ_t * job); */ + RENDER_API void emit_graph(GVJ_t * job, graph_t * g); + RENDER_API void emit_label(GVJ_t * job, emit_state_t emit_state, textlabel_t *); + RENDER_API int emit_once(char *message); + RENDER_API void emit_map_rect(GVJ_t *job, boxf b); + RENDER_API void endpath(path *, Agedge_t *, int, pathend_t *, boolean); + RENDER_API void epsf_init(node_t * n); + RENDER_API void epsf_free(node_t * n); + RENDER_API shape_desc *find_user_shape(const char *); + RENDER_API void free_line(textspan_t *); + RENDER_API void free_label(textlabel_t *); + RENDER_API void free_textspan(textspan_t * tl, int); + RENDER_API void getdouble(graph_t * g, char *name, double *result); + RENDER_API splines *getsplinepoints(edge_t * e); + RENDER_API void gv_fixLocale (int set); + RENDER_API void gv_free_splines(edge_t * e); + RENDER_API void gv_cleanup_edge(Agedge_t * e); + RENDER_API void gv_cleanup_node(Agnode_t * n); + RENDER_API void* init_xdot (Agraph_t* g); + RENDER_API int initMapData (GVJ_t*, char*, char*, char*, char*, char*, void*); + RENDER_API boolean isPolygon(node_t *); + RENDER_API void makeSelfEdge(path * P, edge_t * edges[], int ind, int cnt, double sizex, double sizey, splineInfo * sinfo); - extern textlabel_t *make_label(void *obj, char *str, int kind, double fontsize, char *fontname, char *fontcolor); - extern bezier *new_spline(edge_t * e, int sz); - extern char **parse_style(char *s); - extern void place_graph_label(Agraph_t *); - extern int place_portlabel(edge_t * e, boolean head_p); - extern void makePortLabels(edge_t * e); - extern pointf edgeMidpoint(graph_t* g, edge_t * e); - extern void addEdgeLabels(graph_t* g, edge_t * e, pointf rp, pointf rq); - extern void pop_obj_state(GVJ_t *job); - extern obj_state_t* push_obj_state(GVJ_t *job); - extern int rank(graph_t * g, int balance, int maxiter); - extern port resolvePort(node_t* n, node_t* other, port* oldport); - extern void resolvePorts (edge_t* e); - extern void round_corners(GVJ_t * job, pointf * AF, int sides, int style, int filled); - extern int routesplinesinit(void); - extern pointf *routesplines(path *, int *); - extern void routesplinesterm(void); - extern pointf* simpleSplineRoute (pointf, pointf, Ppoly_t, int*, int); - extern pointf *routepolylines(path* pp, int* npoints); - extern int selfRightSpace (edge_t* e); - extern shape_kind shapeOf(node_t *); - extern void shape_clip(node_t * n, pointf curve[4]); - extern void make_simple_label (GVC_t * gvc, textlabel_t* rv); - extern int stripedBox (GVJ_t * job, pointf* AF, char* clrs, int rotate); - extern stroke_t* taper (bezier*, double (*radfunc_t)(double,double,double), double initwid, int linejoin, int linecap); - extern pointf textspan_size(GVC_t * gvc, textspan_t * span); - extern Dt_t * textfont_dict_open(GVC_t *gvc); - extern void textfont_dict_close(GVC_t *gvc); - extern void translate_bb(Agraph_t *, int); - extern int wedgedEllipse (GVJ_t* job, pointf * pf, char* clrs); - extern void update_bb_bz(boxf *bb, pointf *cp); - extern boxf xdotBB (graph_t* g); + RENDER_API textlabel_t *make_label(void *obj, char *str, int kind, double fontsize, char *fontname, char *fontcolor); + RENDER_API bezier *new_spline(edge_t * e, int sz); + RENDER_API char **parse_style(char *s); + RENDER_API void place_graph_label(Agraph_t *); + RENDER_API int place_portlabel(edge_t * e, boolean head_p); + RENDER_API void makePortLabels(edge_t * e); + RENDER_API pointf edgeMidpoint(graph_t* g, edge_t * e); + RENDER_API void addEdgeLabels(graph_t* g, edge_t * e, pointf rp, pointf rq); + RENDER_API void pop_obj_state(GVJ_t *job); + RENDER_API obj_state_t* push_obj_state(GVJ_t *job); + RENDER_API int rank(graph_t * g, int balance, int maxiter); + RENDER_API port resolvePort(node_t* n, node_t* other, port* oldport); + RENDER_API void resolvePorts (edge_t* e); + RENDER_API void round_corners(GVJ_t * job, pointf * AF, int sides, int style, int filled); + RENDER_API int routesplinesinit(void); + RENDER_API pointf *routesplines(path *, int *); + RENDER_API void routesplinesterm(void); + RENDER_API pointf* simpleSplineRoute (pointf, pointf, Ppoly_t, int*, int); + RENDER_API pointf *routepolylines(path* pp, int* npoints); + RENDER_API int selfRightSpace (edge_t* e); + RENDER_API shape_kind shapeOf(node_t *); + RENDER_API void shape_clip(node_t * n, pointf curve[4]); + RENDER_API void make_simple_label (GVC_t * gvc, textlabel_t* rv); + RENDER_API int stripedBox (GVJ_t * job, pointf* AF, char* clrs, int rotate); + RENDER_API stroke_t* taper (bezier*, double (*radfunc_t)(double,double,double), double initwid, int linejoin, int linecap); + RENDER_API pointf textspan_size(GVC_t * gvc, textspan_t * span); + RENDER_API Dt_t * textfont_dict_open(GVC_t *gvc); + RENDER_API void textfont_dict_close(GVC_t *gvc); + RENDER_API void translate_bb(Agraph_t *, int); + RENDER_API int wedgedEllipse (GVJ_t* job, pointf * pf, char* clrs); + RENDER_API void update_bb_bz(boxf *bb, pointf *cp); + RENDER_API boxf xdotBB (graph_t* g); -#undef extern +#undef RENDER_API #ifdef __cplusplus }