[ft-devel] Stroke fonts - Stroker

2007-01-30 Thread Anders Eriksson
Hello,

I'm using an engraving system that uses FreeType to render text. This is
very good since it enables us to use TrueType fonts, Arial Unicode MS. The
"bad" thing is that TrueType fonts are outlined and vill make the engraver
put two lines instead of one.

I don't have any knowledge of fonts or FreeType, but I have read about
Stroke Fonts, which I think is what I am interested in, and FreeType Glyph
Stroker.

What I want is that instead of an outline I get one line/single line font,
the way it's described here:
http://www.colortune.com/ProductsServices/stroke_fonts.aspx

Since we engrave in many languages, not CJK, it would be wonderful if I
could use Arial Unicode MS and the automatically create Stroke characters
when rendering.

Is this possible, or have I totally misunderstood Stroke Fonts/Characters
and Stroker?

Is there some sample code doing this (C, or C++)?


// Anders
-- 
English is not my first, or second, language
so anything strange, or insulting, is due to
the translation.
Please correct me so I may improve my English!



___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] bug fix: pointers in FT_Open_Args should be const

2007-01-30 Thread Antoine Leca
Graham Asher wrote:
> Casting from non-const to const is always legal, I believe, so I
> don't see how this can break compatibility.

It is a struct, not a function prototype.

So if your (= client) code manipulates such things, perhaps storing them,
committing the change may make the code now stores a not-const-decorated
pointer (from earlier API) to a const*... Definitively something compilers
do not like!


Antoine



___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Help, why i got this result?

2007-01-30 Thread Werner LEMBERG
> When I use the freetype in my program, the font was display very
> ungainly.
>
> And in ftview, it’s normal.
>
> The flow I use is the same as Ftview.  [...]
>
> Do anybody know why I got this result?

I can't deduce the problem from your description, sorry.


Werner
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] Stroke fonts - Stroker

2007-01-30 Thread mpsuzuki
Hi,

On Tue, 30 Jan 2007 14:00:33 +0100
Anders Eriksson <[EMAIL PROTECTED]> wrote:

>I don't have any knowledge of fonts or FreeType, but I have read about
>Stroke Fonts, which I think is what I am interested in, and FreeType Glyph
>Stroker.

ftstroke.c of freetype2 is a file collecting functions to
compute the borderlines of stroke by given outline bezier
curves, not for stroke based font.

>What I want is that instead of an outline I get one line/single line font,
>the way it's described here:
>http://www.colortune.com/ProductsServices/stroke_fonts.aspx

I guess various font producers around CJK markets have their
own stroke-based font formats, e.g. "Wada-laboratory font project"
collected stroke-based glyph database (but their final product
is standard outline font format: PostScript and TrueType),
Dynalab has their own stroke based font format. However most
of them are closed format, no format specification is disclosed,
so FreeType cannot support such kind of closed stroke based fonts.

>Since we engrave in many languages, not CJK, it would be wonderful if I
>could use Arial Unicode MS and the automatically create Stroke characters
>when rendering.

I guess you want the stroke vector data (instead of outline vector
data) of characters, not the stroke-based font itself
- if I'm misunderstanding, please correct.

>Is this possible, or have I totally misunderstood Stroke Fonts/Characters
>and Stroker?

I think, at least in FreeType, there's no functions to compute
stroke vector data by given outline vector data. In fact, it's
not easy work to compute the suitable stroke by given outline.
I guess you can find more suitable things in bitmap-to-vector
softwares, like autotrace.

However, I don't know anything recommended for you. I've ever
tried to make stroke vector data by hand-written Yi-script,
by autotrace, but result was worse than outline vector data.
Improvement of the algorithm to determine suitable stroke
is required.

https://www.codeblog.org/blog/mpsuzuki/20060710.html

Regards,
mpsuzuki


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/freetype-devel


autotools version check in autogen.sh (Re: [ft-devel] Mac install instructions don't seem to exist)

2007-01-30 Thread mpsuzuki
Dear Sir,

I thank Turner for his quick fix of autogen.sh for Mac OS X's
"glibtool" issue, on 2007-01-11.

On Fri, 29 Dec 2006 00:57:12 +0900
[EMAIL PROTECTED] wrote:
>>> In my personal opinion, putting some hooks to check autotools
>>> versions into autogen.sh is not bad idea.
>>
>>I don't object, but it doesn't have a high priority for me.
>
>Of course, it's task of me who proposed. I will write version
>checking hooks for autogen.sh, after 2007-01-15. Please wait.

Following is my first manuscript patch to add the version checking
feature to autogen.sh. In addition to basic aclocal/libtoolize/autoconf,
it scans aclocal-1.9, glibtoolize, libtoolize-1.5, autoconf-2.59
for fallbacking.

This is too lengthy for other developers to maintain, possibly
I can reduce to 50% shorter. If more compression is essential,
please let me know.

Regards,
mpsuzuki

--

Index: autogen.sh
===
RCS file: /sources/freetype/freetype2/autogen.sh,v
retrieving revision 1.6
diff -u -r1.6 autogen.sh
--- autogen.sh  12 Jan 2007 09:28:44 -  1.6
+++ autogen.sh  31 Jan 2007 06:43:31 -
@@ -20,6 +20,123 @@
   fi
 }
 
+compare_version_number ()
+{
+  r=`( echo $1 ; echo $2 ) | tr ',' ' ' |  \
+  awk 'BEGIN{getline;vn=split($0,v," ")}\
+   {\
+ for(i=1;i<=NF;i++)\
+ {\
+   if(v[i] > $i){print "no";exit}\
+   if($i > v[i]){print "yes";exit}\
+ }\
+ if ( length( v[NF + 1] ) > 0 ) { print "no" } \
+ else { print "yes" } \
+   }'`
+
+  if test x"${r}" = xyes ; then
+return 0
+  else
+return 1
+  fi
+}
+
+
+check_program_version ()
+{
+  prog_name=$1
+  min_version=$2
+  vendor_keyword=$3
+
+  matched_prog=""
+
+  p=""
+  for d in `echo ${PATH} | tr ':' ' '`
+  do
+if test -x ${d}/${prog_name} ; then
+  p=${d}/${prog_name}
+  break;
+fi
+  done
+
+  if test x = x"${p}" ; then
+return 1
+  fi
+
+  echo -n 'Checking version of '${p}' (>= '${min_version}')... '
+
+  v=`${p} --version 2>/dev/null | head -1`
+  if test x != x"${v}" ; then
+v=`${p} --version 2>&1 | head -1`
+  fi
+  case `echo ${v} | wc -w` in
+  0) # cannot extract program version
+;;
+
+  1) # assumed format: "[version]"
+echo -n ${v}", "
+vn=`echo ${v} | sed 's/[^0-9 ][^0-9 ]*/ & /g;s/  */,/g;s/\.,//g' `
+vm=`echo ${min_version} | sed 's/\./ /g;s/[^0-9 ]/ &/g;s/  */,/g' `
+compare_version_number ${vm} ${vn}
+if test 0 != $? ; then
+  echo "too old"
+else
+  echo "ok"
+  matched_prog=${p}
+fi
+;;
+
+  3) # assumed format: "[progname] version [version]"
+vn=`echo ${v} | sed 's/^.* //' `
+echo -n ${vn}", "
+vn=`echo ${vn} | sed 's/[^0-9 ][^0-9 ]*/ & /g;s/  */,/g;s/\.,//g' `
+vm=`echo ${min_version} | sed 's/\./ /g;s/[^0-9 ]/ &/g;s/  */,/g' `
+compare_version_number ${vm} ${vn}
+if test 0 != $? ; then
+  echo "too old"
+else
+  echo "ok"
+  matched_prog=${p}
+fi
+;;
+
+  *) # assumed format: "[progname] ([vendor]) [version] [extra-comment]"
+v=`echo ${v} | sed 's/  */ /g;s/ /_/g;s/_(/ (/g;s/)_/) /g;s/\.,//g'`
+vn=`echo ${v} | cut -d" " -f3`
+echo -n ${vn}", "
+vn=`echo ${vn} | sed 's/[^0-9 ][^0-9 ]*/ & /g;s/  */,/g;;s/\.,//g' `
+vm=`echo ${min_version} | sed 's/\./ /g;s/[^0-9 ]/ &/g;s/  */,/g' `
+compare_version_number ${vm} ${vn}
+if test 0 != $? ; then
+  echo "too old"
+else
+  echo "ok"
+
+  vendor=`echo ${v} | cut -d" " -f2`
+  if test x != x"${vendor}" -a x != x"${vendor_keyword}"; then
+echo -n 'Checking ${p}...'
+case ${vendor} in
+*${vendor_keyword}* )
+  echo ' '${vendor_keyword}' '${prog_name}
+  ;;
+*)
+  echo ' not '${vendor_keyword}' '${prog_name}
+  exit 1
+  ;;
+esac
+  fi
+  matched_prog=${p}
+fi
+;;
+  esac
+
+  if test x != x"${matched_prog}" ; then
+return 0
+  else
+return 1
+  fi
+}
+
 if test ! -f ./builds/unix/configure.raw; then
   echo "You must be in the same directory as \`autogen.sh'."
   echo "Bootstrapping doesn't work if srcdir != builddir."
@@ -40,16 +157,50 @@
 sed -e "s;@VERSION@;$freetype_major$freetype_minor$freetype_patch;" \
 < configure.raw > configure.ac
 
-# On MacOS X, the GNU libtool is named `glibtool'.
-HOSTOS=`uname`
-LIBTOOLIZE=libtoolize
-if test "$HOSTOS"x = Darwinx; then
-  LIBTOOLIZE=glibtoolize
+
+# autotool version check
+for p in aclocal aclocal-1.9
+do
+  if test x = x"${ACLOCAL}" ; then
+check_program_version $p 1.9.6
+if test 0 = $? ; then
+  ACLOCAL=$p
+fi
+  fi
+done
+if test x = x"${ACLOCAL}" ; then
+  exit 1
+fi
+
+for p in libtoolize libtoolize-1.5 glibtoolize
+do
+  if test x = x"${LIBTOOLIZE}" ; then
+check_program_version $p 1.5.22
+if test 0 = $? ; then
+  LIBTOOLIZE=$p
+fi
+  fi
+done
+if test x = x"${LIBTOOLIZE}" ; then
+  exit 1
+