pshpic.c revision 295ffce55e0198e7a9f7d46b33f5c2b4147bf821
1295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/***************************************************************************/ 2295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 3295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* pshpic.c */ 4295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 5295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* The FreeType position independent code services for pshinter module. */ 6295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 7295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* Copyright 2009 by */ 8295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* Oran Agra and Mickey Gabel. */ 9295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 10295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* This file is part of the FreeType project, and may only be used, */ 11295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* modified, and distributed under the terms of the FreeType project */ 12295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* this file you indicate that you have read the license and */ 14295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* understand and accept it fully. */ 15295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 16295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/***************************************************************************/ 17295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 18295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 19295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include <ft2build.h> 20295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_FREETYPE_H 21295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_INTERNAL_OBJECTS_H 22295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include "pshpic.h" 23295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 24295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#ifdef FT_CONFIG_OPTION_PIC 25295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 26295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner /* forward declaration of PIC init functions from pshmod.c */ 27295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner void FT_Init_Class_pshinter_interface( FT_Library, PSHinter_Interface*); 28295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 29295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner void 30295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner pshinter_module_class_pic_free( FT_Library library ) 31295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner { 32295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_PIC_Container* pic_container = &library->pic_container; 33295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Memory memory = library->memory; 34295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner if ( pic_container->pshinter ) 35295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner { 36295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_FREE( pic_container->pshinter ); 37295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner pic_container->pshinter = NULL; 38295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner } 39295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner } 40295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 41295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Error 42295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner pshinter_module_class_pic_init( FT_Library library ) 43295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner { 44295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_PIC_Container* pic_container = &library->pic_container; 45295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Error error = FT_Err_Ok; 46295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner PSHinterPIC* container; 47295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Memory memory = library->memory; 48295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 49295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner /* allocate pointer, clear and set global container pointer */ 50295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner if ( FT_ALLOC ( container, sizeof ( *container ) ) ) 51295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner return error; 52295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_MEM_SET( container, 0, sizeof(*container) ); 53295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner pic_container->pshinter = container; 54295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 55295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner /* add call to initialization function when you add new scripts */ 56295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Init_Class_pshinter_interface(library, &container->pshinter_interface); 57295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 58295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/*Exit:*/ 59295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner if(error) 60295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner pshinter_module_class_pic_free(library); 61295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner return error; 62295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner } 63295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 64295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 65295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#endif /* FT_CONFIG_OPTION_PIC */ 66295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 67295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* END */ 68