Hi there,
I'm writing a ttf parser and want to learn from the source code of freetype.
My questions are:
*1.* a simple problem -- I failed to build a demo project using freetype2.
I followed the steps in "FreeType 2 Tutorial Step
1<http://www.freetype.org/freetype2/docs/tutorial/step1.html>
".
First, I located "the FreeType 2 include directory" by right clicking on
project, Properties, Configuration Properties, VC++ Directories, Include
Directories, and added "D:\freeT\freetype2\include". Note that my project
directory is "D:\freeT\".
Second, I wrote the following code:
#include <ft2build.h>
#include FT_FREETYPE_H
#include <stdio.h>
int main(){
  FT_Library  library;
  FT_Face     face;      /* handle to face object */
  FT_Error error = FT_Init_FreeType( &library );
  if ( error ) { printf("Error!\n"); }
  error = FT_New_Face( library,
    "arial.ttf",
    0,
    &face );
if ( error ){
    printf("ERROR!\n");
  }
  printf("Hello");
  getchar();
  return 0;
}
But finally I got the following error message:
>freeT.obj : error LNK2019: unresolved external symbol _FT_New_Face
referenced in function _main
1>freeT.obj : error LNK2019: unresolved external symbol _FT_Init_FreeType
referenced in function _main
Why? BTW, I tried to build with freetype253.dll and freetype253.lib and
succeed!

*2.* *When *does the freetype parse the *glyph data*?
My ttf_parser reads ttf file and parses the tables into classes right away
(This process is laterly referred as *LOAD *time). But now I wonder if I
can delay the glyph data parsing process to the time when users fetch the
glyph outline (referred as *FETCH *time). I have two reasons supporting
this change.
a) My program parses the glyph data during the *LOAD *time, and it's really
slow to load a ttf file if the file size is as big as tens of MB. In a
word, my ttf_parser is slow in *LOAD *time but fast in *FETCH *time. Maybe
it would be better if I delay the parsing process to *FETCH *time? But I am
also afraid of the trade-off -- the FETCH process might slow down.
b) I realized that lots of the information are stored sequentially and it's
easier for parsing if I don't break the file into pieces of tables.
Besides, I cannot pre-determine by how many simple glyph a specific
composite glyph is composed (is it?). To deal with it I should use
std::vector but I prefer not 'cause I will build my parser into dll and
using standard containers will cause some trouble.

Um.. I hope I described my question clearly. Any advise will be
appreciated! And I'll keep reading the source of freetype. Thanks for your
work.

Liu Zhenglai.
_______________________________________________
Freetype-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/freetype-devel

Reply via email to