You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
3.9 KiB
90 lines
3.9 KiB
/*
|
|
* Adobe Universal Font Library
|
|
*
|
|
* Copyright (c) 1996 Adobe Systems Inc.
|
|
* All Rights Reserved
|
|
*
|
|
* UFOttt1.h - TrueType downloaded as type 1 implementation.
|
|
*
|
|
*
|
|
* $Header:
|
|
*/
|
|
|
|
#ifndef _H_UFOTTT1
|
|
#define _H_UFOTTT1
|
|
|
|
|
|
/*===============================================================================*
|
|
* Include files used by this interface *
|
|
*===============================================================================*/
|
|
#include "UFO.h"
|
|
|
|
|
|
/*===============================================================================*
|
|
* Theory of Operation *
|
|
*===============================================================================*/
|
|
/*
|
|
TrueType downloaded as type 1 implementation (Unhinted outline font).
|
|
*/
|
|
|
|
/*===============================================================================*
|
|
* Constants *
|
|
*===============================================================================*/
|
|
|
|
|
|
/*===============================================================================*
|
|
* Scalar Types *
|
|
*===============================================================================*/
|
|
|
|
/* CSBufStruct uses to buffer and encrypt CharString */
|
|
|
|
typedef struct {
|
|
char* pBuf;
|
|
|
|
char* pPos; // points to current position within buffer.
|
|
|
|
char* pEnd ;
|
|
|
|
unsigned long ulSize;
|
|
|
|
UFLMemObj* pMemObj; /* Memory object */
|
|
|
|
} CSBufStruct;
|
|
|
|
/* Public functions */
|
|
/* These three functions should have "static" in front... --jfu */
|
|
static CSBufStruct* CSBufInit( const UFLMemObj *pMem );
|
|
static void CSBufCleanUp( CSBufStruct *h );
|
|
static UFLErrCode CSBufAddNumber( CSBufStruct *h, long dw );
|
|
|
|
#define CSBufBuffer( h ) (((CSBufStruct *)h)->pBuf)
|
|
#define CSBufRewind( h ) (((CSBufStruct *)h)->pPos = ((CSBufStruct *)h)->pBuf)
|
|
#define CSBufCurrentSize( h) (((CSBufStruct *)h)->pEnd - ((CSBufStruct *)h)->pBuf) /* Return the current availability size of the CharString Buffer */
|
|
#define CSBufCurrentLen( h ) (((CSBufStruct *)h)->pPos - ((CSBufStruct *)h)->pBuf) /* Return the current usage of the CharString buffer */
|
|
#define CSBufAddChar( h, c ) ( *(((CSBufStruct *)h)->pPos)++ = c )
|
|
|
|
#define CSBufFreeLen( h ) (((CSBufStruct *)h)->pEnd - ((CSBufStruct *)h)->pPos) /* The left room usable in the CharString buffer */
|
|
|
|
#ifdef DEBUG_ENGLISH
|
|
void CSBufAddString( CSBufStruct *h, char* str );
|
|
void CSBufAddFixed( CSBufStruct *h, UFLFixed f );
|
|
#endif
|
|
|
|
/*==================================================================================================*
|
|
* UFOTTT1Font - type 1 *
|
|
*==================================================================================================*/
|
|
|
|
typedef struct {
|
|
|
|
/* TT1 Data starts from here */
|
|
|
|
CSBufStruct *pCSBuf; /* CharString buffer */
|
|
|
|
UFLTTT1FontInfo info; /* True Type Font info. */
|
|
|
|
unsigned short eexecKey;
|
|
} TTT1FontStruct;
|
|
|
|
UFOStruct *TTT1FontInit( const UFLMemObj *pMem, const UFLStruct *pUFL, const UFLRequest *pRequest );
|
|
|
|
#endif
|