kitty/freetype/ft_types.py
2016-10-23 23:12:00 +05:30

156 lines
5.4 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# -----------------------------------------------------------------------------
#
# FreeType high-level python API - Copyright 2011 Nicolas P. Rougier
# Distributed under the terms of the new BSD license.
#
# -----------------------------------------------------------------------------
'''
Freetype basic data types
-------------------------
FT_Byte : A simple typedef for the unsigned char type.
FT_Bytes : A typedef for constant memory areas.
FT_Char : A simple typedef for the signed char type.
FT_Int : A typedef for the int type.
FT_UInt : A typedef for the unsigned int type.
FT_Int16 : A typedef for a 16bit signed integer type.
FT_UInt16 : A typedef for a 16bit unsigned integer type.
FT_Int32 : A typedef for a 32bit signed integer type.
FT_UInt32 : A typedef for a 32bit unsigned integer type.
FT_Short : A typedef for signed short.
FT_UShort : A typedef for unsigned short.
FT_Long : A typedef for signed long.
FT_ULong : A typedef for unsigned long.
FT_Bool : A typedef of unsigned char, used for simple booleans. As usual,
values 1 and 0 represent true and false, respectively.
FT_Offset : This is equivalent to the ANSI C 'size_t' type, i.e., the largest
unsigned integer type used to express a file size or position, or
a memory block size.
FT_PtrDist : This is equivalent to the ANSI C 'ptrdiff_t' type, i.e., the
largest signed integer type used to express the distance between
two pointers.
FT_String : A simple typedef for the char type, usually used for strings.
FT_Tag : A typedef for 32-bit tags (as used in the SFNT format).
FT_Error : The FreeType error code type. A value of 0 is always interpreted as
a successful operation.
FT_Fixed : This type is used to store 16.16 fixed float values, like scaling
values or matrix coefficients.
FT_Pointer : A simple typedef for a typeless pointer.
FT_Pos : The type FT_Pos is used to store vectorial coordinates. Depending on
the context, these can represent distances in integer font units, or
16.16, or 26.6 fixed float pixel coordinates.
FT_FWord : A signed 16-bit integer used to store a distance in original font
units.
FT_UFWord : An unsigned 16-bit integer used to store a distance in original
font units.
FT_F2Dot14 : A signed 2.14 fixed float type used for unit vectors.
FT_F26Dot6 : A signed 26.6 fixed float type used for vectorial pixel
coordinates.
'''
from ctypes import *
FT_Byte = c_ubyte # A simple typedef for the unsigned char type.
FT_Bytes = c_char_p # A typedef for constant memory areas.
FT_Char = c_char # A simple typedef for the signed char type.
FT_Int = c_int # A typedef for the int type.
FT_UInt = c_uint # A typedef for the unsigned int type.
FT_Int16 = c_short # A typedef for a 16bit signed integer type.
FT_UInt16 = c_ushort # A typedef for a 16bit unsigned integer type.
FT_Int32 = c_int32 # A typedef for a 32bit signed integer type.
FT_UInt32 = c_uint32 # A typedef for a 32bit unsigned integer type.
FT_Short = c_short # A typedef for signed short.
FT_UShort = c_ushort # A typedef for unsigned short.
FT_Long = c_long # A typedef for signed long.
FT_ULong = c_ulong # A typedef for unsigned long.
FT_Bool = c_char # A typedef of unsigned char, used for simple booleans. As
# usual, values 1 and 0 represent true and false,
# respectively.
FT_Offset = c_size_t # This is equivalent to the ANSI C 'size_t' type, i.e.,
# the largest unsigned integer type used to express a file
# size or position, or a memory block size.
FT_PtrDist = c_longlong # This is equivalent to the ANSI C 'ptrdiff_t' type,
# i.e., the largest signed integer type used to express
# the distance between two pointers.
FT_String = c_char # A simple typedef for the char type, usually used for strings.
FT_String_p= c_char_p
FT_Tag = FT_UInt32 # A typedef for 32-bit tags (as used in the SFNT format).
FT_Error = c_int # The FreeType error code type. A value of 0 is always
# interpreted as a successful operation.
FT_Fixed = c_long # This type is used to store 16.16 fixed float values,
# like scaling values or matrix coefficients.
FT_Pointer = c_void_p # A simple typedef for a typeless pointer.
FT_Pos = c_long # The type FT_Pos is used to store vectorial
# coordinates. Depending on the context, these can
# represent distances in integer font units, or 16.16, or
# 26.6 fixed float pixel coordinates.
FT_FWord = c_short # A signed 16-bit integer used to store a distance in
# original font units.
FT_UFWord = c_ushort # An unsigned 16-bit integer used to store a distance in
# original font units.
FT_F2Dot14 = c_short # A signed 2.14 fixed float type used for unit vectors.
FT_F26Dot6 = c_long # A signed 26.6 fixed float type used for vectorial pixel
# coordinates.
FT_Glyph_Format = c_int
FT_Encoding = c_int
# Describe a function used to destroy the 'client' data of any FreeType
# object. See the description of the FT_Generic type for details of usage.
FT_Generic_Finalizer = CFUNCTYPE(None, c_void_p)