1 /***************************************************************************/ |
|
2 /* */ |
|
3 /* pshpic.c */ |
|
4 /* */ |
|
5 /* The FreeType position independent code services for pshinter module. */ |
|
6 /* */ |
|
7 /* Copyright 2009, 2010 by */ |
|
8 /* Oran Agra and Mickey Gabel. */ |
|
9 /* */ |
|
10 /* This file is part of the FreeType project, and may only be used, */ |
|
11 /* modified, and distributed under the terms of the FreeType project */ |
|
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ |
|
13 /* this file you indicate that you have read the license and */ |
|
14 /* understand and accept it fully. */ |
|
15 /* */ |
|
16 /***************************************************************************/ |
|
17 |
|
18 |
|
19 #include <ft2build.h> |
|
20 #include FT_FREETYPE_H |
|
21 #include FT_INTERNAL_OBJECTS_H |
|
22 #include "pshpic.h" |
|
23 |
|
24 #ifdef FT_CONFIG_OPTION_PIC |
|
25 |
|
26 /* forward declaration of PIC init functions from pshmod.c */ |
|
27 void FT_Init_Class_pshinter_interface( FT_Library, PSHinter_Interface*); |
|
28 |
|
29 void |
|
30 pshinter_module_class_pic_free( FT_Library library ) |
|
31 { |
|
32 FT_PIC_Container* pic_container = &library->pic_container; |
|
33 FT_Memory memory = library->memory; |
|
34 if ( pic_container->pshinter ) |
|
35 { |
|
36 FT_FREE( pic_container->pshinter ); |
|
37 pic_container->pshinter = NULL; |
|
38 } |
|
39 } |
|
40 |
|
41 |
|
42 FT_Error |
|
43 pshinter_module_class_pic_init( FT_Library library ) |
|
44 { |
|
45 FT_PIC_Container* pic_container = &library->pic_container; |
|
46 FT_Error error = PSH_Err_Ok; |
|
47 PSHinterPIC* container; |
|
48 FT_Memory memory = library->memory; |
|
49 |
|
50 |
|
51 /* allocate pointer, clear and set global container pointer */ |
|
52 if ( FT_ALLOC ( container, sizeof ( *container ) ) ) |
|
53 return error; |
|
54 FT_MEM_SET( container, 0, sizeof ( *container ) ); |
|
55 pic_container->pshinter = container; |
|
56 |
|
57 /* add call to initialization function when you add new scripts */ |
|
58 FT_Init_Class_pshinter_interface(library, &container->pshinter_interface); |
|
59 |
|
60 /*Exit:*/ |
|
61 if(error) |
|
62 pshinter_module_class_pic_free(library); |
|
63 return error; |
|
64 } |
|
65 |
|
66 |
|
67 #endif /* FT_CONFIG_OPTION_PIC */ |
|
68 |
|
69 /* END */ |
|