graphviz.ffi: refactor it to not make FFI calls at parse time
parent
38c5652093
commit
39b00a1b39
|
@ -3,12 +3,9 @@
|
||||||
USING: accessors alien alien.c-types alien.destructors
|
USING: accessors alien alien.c-types alien.destructors
|
||||||
alien.libraries alien.syntax combinators debugger destructors
|
alien.libraries alien.syntax combinators debugger destructors
|
||||||
fry io kernel literals math prettyprint sequences splitting
|
fry io kernel literals math prettyprint sequences splitting
|
||||||
system words.constant
|
system memoize graphviz ;
|
||||||
graphviz
|
|
||||||
;
|
|
||||||
IN: graphviz.ffi
|
IN: graphviz.ffi
|
||||||
|
|
||||||
<<
|
|
||||||
"libgraph" {
|
"libgraph" {
|
||||||
{ [ os macosx? ] [ "libgraph.dylib" ] }
|
{ [ os macosx? ] [ "libgraph.dylib" ] }
|
||||||
{ [ os unix? ] [ "libgraph.so" ] }
|
{ [ os unix? ] [ "libgraph.so" ] }
|
||||||
|
@ -21,7 +18,6 @@ IN: graphviz.ffi
|
||||||
{ [ os unix? ] [ "libgvc.so" ] }
|
{ [ os unix? ] [ "libgvc.so" ] }
|
||||||
{ [ os winnt? ] [ "gvc.dll" ] }
|
{ [ os winnt? ] [ "gvc.dll" ] }
|
||||||
} cond cdecl add-library
|
} cond cdecl add-library
|
||||||
>>
|
|
||||||
|
|
||||||
LIBRARY: libgraph
|
LIBRARY: libgraph
|
||||||
|
|
||||||
|
@ -85,11 +81,7 @@ FUNCTION: int agsafeset ( void* obj,
|
||||||
LIBRARY: libgvc
|
LIBRARY: libgvc
|
||||||
|
|
||||||
! Graphviz contexts
|
! Graphviz contexts
|
||||||
! This must be wrapped in << >> so that GVC_t*, gvContext, and
|
|
||||||
! &gvFreeContext can be used to compute the supported-engines
|
|
||||||
! and supported-formats constants below.
|
|
||||||
|
|
||||||
<<
|
|
||||||
C-TYPE: GVC_t
|
C-TYPE: GVC_t
|
||||||
|
|
||||||
FUNCTION: GVC_t* gvContext ( ) ;
|
FUNCTION: GVC_t* gvContext ( ) ;
|
||||||
|
@ -112,7 +104,6 @@ M: ffi-errors error.
|
||||||
int-gvFreeContext dup zero? [ drop ] [ ffi-errors ] if ;
|
int-gvFreeContext dup zero? [ drop ] [ ffi-errors ] if ;
|
||||||
|
|
||||||
DESTRUCTOR: gvFreeContext
|
DESTRUCTOR: gvFreeContext
|
||||||
>>
|
|
||||||
|
|
||||||
! Layout
|
! Layout
|
||||||
|
|
||||||
|
@ -130,8 +121,6 @@ FUNCTION: int gvRenderFilename ( GVC_t* gvc,
|
||||||
|
|
||||||
! Supported layout engines (dot, neato, etc.) and output
|
! Supported layout engines (dot, neato, etc.) and output
|
||||||
! formats (png, jpg, etc.)
|
! formats (png, jpg, etc.)
|
||||||
|
|
||||||
<<
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
ENUM: api_t
|
ENUM: api_t
|
||||||
|
@ -152,7 +141,6 @@ FUNCTION: c-string
|
||||||
] with-destructors ;
|
] with-destructors ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
>>
|
|
||||||
|
|
||||||
CONSTANT: supported-engines $[ API_layout plugin-list ]
|
MEMO: supported-engines ( -- seq ) API_layout plugin-list ;
|
||||||
CONSTANT: supported-formats $[ API_device plugin-list ]
|
MEMO: supported-formats ( -- seq ) API_device plugin-list ;
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
! Copyright (C) 2011 Alex Vondrak.
|
! Copyright (C) 2011 Alex Vondrak.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors combinators continuations destructors
|
USING: accessors combinators compiler.units continuations
|
||||||
images.viewer io.backend io.files.unique kernel locals
|
destructors images.viewer io.backend io.files.unique kernel
|
||||||
namespaces parser sequences summary unicode.case words
|
locals namespaces parser sequences summary unicode.case words
|
||||||
graphviz.ffi
|
graphviz.ffi graphviz.builder ;
|
||||||
graphviz.builder
|
|
||||||
;
|
|
||||||
IN: graphviz.render
|
IN: graphviz.render
|
||||||
|
|
||||||
SYMBOL: default-layout
|
SYMBOL: default-layout
|
||||||
|
@ -109,8 +107,6 @@ PRIVATE>
|
||||||
: preview-window ( graph -- )
|
: preview-window ( graph -- )
|
||||||
(preview) image-window ; inline
|
(preview) image-window ; inline
|
||||||
|
|
||||||
<<
|
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: define-graphviz-by-engine ( -K -- )
|
: define-graphviz-by-engine ( -K -- )
|
||||||
|
@ -130,7 +126,7 @@ PRIVATE>
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
supported-engines [ define-graphviz-by-engine ] each
|
[
|
||||||
supported-formats [ define-graphviz-by-format ] each
|
supported-engines [ define-graphviz-by-engine ] each
|
||||||
|
supported-formats [ define-graphviz-by-format ] each
|
||||||
>>
|
] with-compilation-unit
|
||||||
|
|
Loading…
Reference in New Issue