PageRenderTime 24ms CodeModel.GetById 16ms app.highlight 6ms RepoModel.GetById 1ms app.codeStats 0ms

/src/freetype/src/pshinter/pshpic.c

https://bitbucket.org/cabalistic/ogredeps/
C | 75 lines | 38 code | 16 blank | 21 comment | 3 complexity | 3169a8282d403085e1eaefa58f03f6b1 MD5 | raw file
 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#include "pshnterr.h"
24
25#ifdef FT_CONFIG_OPTION_PIC
26
27  /* forward declaration of PIC init functions from pshmod.c */
28  void
29  FT_Init_Class_pshinter_interface( FT_Library           library,
30                                    PSHinter_Interface*  clazz );
31
32  void
33  pshinter_module_class_pic_free( FT_Library  library )
34  {
35    FT_PIC_Container*  pic_container = &library->pic_container;
36    FT_Memory  memory = library->memory;
37
38
39    if ( pic_container->pshinter )
40    {
41      FT_FREE( pic_container->pshinter );
42      pic_container->pshinter = NULL;
43    }
44  }
45
46
47  FT_Error
48  pshinter_module_class_pic_init( FT_Library  library )
49  {
50    FT_PIC_Container*  pic_container = &library->pic_container;
51    FT_Error           error         = PSH_Err_Ok;
52    PSHinterPIC*       container;
53    FT_Memory          memory        = library->memory;
54
55
56    /* allocate pointer, clear and set global container pointer */
57    if ( FT_ALLOC ( container, sizeof ( *container ) ) )
58      return error;
59    FT_MEM_SET( container, 0, sizeof ( *container ) );
60    pic_container->pshinter = container;
61
62    /* add call to initialization function when you add new scripts */
63    FT_Init_Class_pshinter_interface(
64      library, &container->pshinter_interface );
65
66/*Exit:*/
67    if( error )
68      pshinter_module_class_pic_free( library );
69    return error;
70  }
71
72
73#endif /* FT_CONFIG_OPTION_PIC */
74
75/* END */