Merge branch 'master' of factorcode.org:/git/factor
commit
3d2f731aab
|
@ -47,7 +47,10 @@ ERROR: not-a-string object ;
|
|||
CTLineCreateWithAttributedString
|
||||
] with-destructors ;
|
||||
|
||||
TUPLE: line < disposable line metrics image loc dim ;
|
||||
TUPLE: line < disposable line metrics image loc dim rendered-line ;
|
||||
|
||||
TUPLE: rendered-line font string loc dim ;
|
||||
C: <rendered-line> rendered-line
|
||||
|
||||
: typographic-bounds ( line -- width ascent descent leading )
|
||||
{ CGFloat CGFloat CGFloat }
|
||||
|
@ -126,22 +129,34 @@ TUPLE: line < disposable line metrics image loc dim ;
|
|||
|
||||
line >>line
|
||||
|
||||
metrics >>metrics
|
||||
font string loc dim <rendered-line> >>rendered-line
|
||||
|
||||
dim [
|
||||
{
|
||||
[ font dim fill-background ]
|
||||
[ loc dim line string fill-selection-background ]
|
||||
[ loc set-text-position ]
|
||||
[ [ line ] dip CTLineDraw ]
|
||||
} cleave
|
||||
] make-bitmap-image >>image
|
||||
metrics >>metrics
|
||||
|
||||
metrics loc dim line-loc >>loc
|
||||
|
||||
metrics metrics>dim >>dim
|
||||
] with-destructors ;
|
||||
|
||||
:: render ( line -- line image )
|
||||
line line>> :> ctline
|
||||
line rendered-line>> string>> :> string
|
||||
line rendered-line>> font>> :> font
|
||||
line rendered-line>> loc>> :> loc
|
||||
line rendered-line>> dim>> :> dim
|
||||
|
||||
line dim [
|
||||
{
|
||||
[ font dim fill-background ]
|
||||
[ loc dim ctline string fill-selection-background ]
|
||||
[ loc set-text-position ]
|
||||
[ [ ctline ] dip CTLineDraw ]
|
||||
} cleave
|
||||
] make-bitmap-image ;
|
||||
|
||||
: line>image ( line -- image )
|
||||
dup image>> [ render >>image ] unless image>> ;
|
||||
|
||||
M: line dispose* line>> CFRelease ;
|
||||
|
||||
SYMBOL: cached-lines
|
||||
|
|
|
@ -18,7 +18,7 @@ M: core-text-renderer flush-layout-cache
|
|||
cached-lines get purge-cache ;
|
||||
|
||||
M: core-text-renderer string>image ( font string -- image loc )
|
||||
cached-line [ image>> ] [ loc>> ] bi ;
|
||||
cached-line [ line>image ] [ loc>> ] bi ;
|
||||
|
||||
M: core-text-renderer x>offset ( x font string -- n )
|
||||
[ 2drop 0 ] [
|
||||
|
@ -38,4 +38,4 @@ M: core-text-renderer line-metrics ( font string -- metrics )
|
|||
[ cached-line metrics>> ]
|
||||
if-empty ;
|
||||
|
||||
core-text-renderer font-renderer set-global
|
||||
core-text-renderer font-renderer set-global
|
||||
|
|
|
@ -6,6 +6,7 @@ fry io kernel literals math prettyprint sequences splitting
|
|||
system memoize graphviz ;
|
||||
IN: graphviz.ffi
|
||||
|
||||
<<
|
||||
"libgraph" {
|
||||
{ [ os macosx? ] [ "libgraph.dylib" ] }
|
||||
{ [ os unix? ] [ "libgraph.so" ] }
|
||||
|
@ -18,6 +19,7 @@ IN: graphviz.ffi
|
|||
{ [ os unix? ] [ "libgvc.so" ] }
|
||||
{ [ os winnt? ] [ "gvc.dll" ] }
|
||||
} cond cdecl add-library
|
||||
>>
|
||||
|
||||
LIBRARY: libgraph
|
||||
|
||||
|
|
|
@ -110,7 +110,7 @@ PRIVATE>
|
|||
<PRIVATE
|
||||
|
||||
: define-graphviz-by-engine ( -K -- )
|
||||
[ create-in dup make-inline ]
|
||||
[ "graphviz.render" create dup make-inline ]
|
||||
[ [ graphviz ] curry ] bi
|
||||
(( graph -O -T -- ))
|
||||
define-declared ;
|
||||
|
@ -118,7 +118,7 @@ PRIVATE>
|
|||
: define-graphviz-by-format ( -T -- )
|
||||
[
|
||||
dup supported-engines member? [ "-file" append ] when
|
||||
create-in dup make-inline
|
||||
"graphviz.render" create dup make-inline
|
||||
]
|
||||
[ [ graphviz* ] curry ] bi
|
||||
(( graph -O -- ))
|
||||
|
|
Loading…
Reference in New Issue