~ubuntu-branches/ubuntu/saucy/emscripten/saucy-proposed

« back to all changes in this revision

Viewing changes to tests/freetype/src/truetype/ttpic.c

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************/
 
2
/*                                                                         */
 
3
/*  ttpic.c                                                                */
 
4
/*                                                                         */
 
5
/*    The FreeType position independent code services for truetype 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 "ttpic.h"
 
23
 
 
24
#ifdef FT_CONFIG_OPTION_PIC
 
25
 
 
26
  /* forward declaration of PIC init functions from ttdriver.c */
 
27
  FT_Error FT_Create_Class_tt_services( FT_Library, FT_ServiceDescRec**);
 
28
  void FT_Destroy_Class_tt_services( FT_Library, FT_ServiceDescRec*);
 
29
  void FT_Init_Class_tt_service_gx_multi_masters(FT_Service_MultiMastersRec*);
 
30
  void FT_Init_Class_tt_service_truetype_glyf(FT_Service_TTGlyfRec*);
 
31
 
 
32
  void
 
33
  tt_driver_class_pic_free(  FT_Library library )
 
34
  {
 
35
    FT_PIC_Container* pic_container = &library->pic_container;
 
36
    FT_Memory memory = library->memory;
 
37
    if ( pic_container->truetype )
 
38
    {
 
39
      TTModulePIC* container = (TTModulePIC*)pic_container->truetype;
 
40
      if(container->tt_services)
 
41
        FT_Destroy_Class_tt_services(library, container->tt_services);
 
42
      container->tt_services = NULL;
 
43
      FT_FREE( container );
 
44
      pic_container->truetype = NULL;
 
45
    }
 
46
  }
 
47
 
 
48
 
 
49
  FT_Error
 
50
  tt_driver_class_pic_init( FT_Library  library )
 
51
  {
 
52
    FT_PIC_Container*  pic_container = &library->pic_container;
 
53
    FT_Error           error         = TT_Err_Ok;
 
54
    TTModulePIC*       container;
 
55
    FT_Memory          memory        = library->memory;
 
56
 
 
57
 
 
58
    /* allocate pointer, clear and set global container pointer */
 
59
    if ( FT_ALLOC ( container, sizeof ( *container ) ) )
 
60
      return error;
 
61
    FT_MEM_SET( container, 0, sizeof(*container) );
 
62
    pic_container->truetype = container;
 
63
 
 
64
    /* initialize pointer table - this is how the module usually expects this data */
 
65
    error = FT_Create_Class_tt_services(library, &container->tt_services);
 
66
    if(error) 
 
67
      goto Exit;
 
68
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
 
69
    FT_Init_Class_tt_service_gx_multi_masters(&container->tt_service_gx_multi_masters);
 
70
#endif
 
71
    FT_Init_Class_tt_service_truetype_glyf(&container->tt_service_truetype_glyf);
 
72
Exit:
 
73
    if(error)
 
74
      tt_driver_class_pic_free(library);
 
75
    return error;
 
76
  }
 
77
 
 
78
#endif /* FT_CONFIG_OPTION_PIC */
 
79
 
 
80
 
 
81
/* END */