1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
|
# typemap for perl 5 interface to FreeType Ver1.0
#
# written by Takuya SHIOZAKI (tshiozak@makino.ise.chuo-u.ac.jp)
#
TYPEMAP
TT_Fixed T_LONG
TT_FWord T_SHORT
TT_UFWord T_U_SHORT
TT_Short T_SHORT
TT_UShort T_U_SHORT
TT_LONG T_LONG
TT_ULong T_U_LONG
TT_F2Dot14 T_SHORT
TT_F26Dot6 T_LONG
TT_Pos T_LONG
TT_UnitVector T_UnitVector
TT_Vector T_Vector
TT_Matrix T_Matrix
TT_Outline T_Outline
TT_BBox T_BBox
TT_Glyph_Metrics T_Glyph_Metrics
#TT_Big_Glyph_Metrics T_Big_Glyph_Metrics
TT_Instance_Metrics T_Instance_Metrics
TT_Raster_Map T_Raster_Map
#TT_Header T_Header
#TT_Horizontal_Header T_Horizontal_Header
#TT_OS2 T_OS2
#TT_Postscript T_Postscript
#TT_Hdmx_Record T_Hdmx_Record
#TT_Hdmx T_Hdmx
TT_Face_Properties T_Face_Properties
TT_Engine T_Handle
TT_Stream T_Handle
TT_Face T_Handle
TT_Instance T_Handle
TT_Glyph T_Handle
TT_CharMap T_Handle
TT_Error T_INT
INPUT
T_Handle
{
void **ptrImage;
int na;
if (SvTYPE($arg) == SVt_PV &&
((ptrImage = (void **)SvPV($arg, na)),
na == sizeof($var.z)))
$var.z = *ptrImage;
else
croak(\"Illegal Handle for $var.\");
}
#T_Face_Properties
# /* NO NEED */
T_UnitVector
if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV) {
HV *obj = (HV*)SvRV($arg);
FETCH_OBJ_IV(obj, &$var, x, $var);
FETCH_OBJ_IV(obj, &$var, y, $var);
}
else
croak(\"Illegal Object for $var.\");
T_Vector
if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV) {
HV *obj = (HV*)SvRV($arg);
FETCH_OBJ_IV(obj, &$var, x, $var);
FETCH_OBJ_IV(obj, &$var, y, $var);
}
else
croak(\"Illegal Object for $var.\");
T_Matrix
if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV) {
HV *obj = (HV*)SvRV($arg);
FETCH_OBJ_IV(obj, &$var, xx, $var);
FETCH_OBJ_IV(obj, &$var, xy, $var);
FETCH_OBJ_IV(obj, &$var, yx, $var);
FETCH_OBJ_IV(obj, &$var, yy, $var);
}
else
croak(\"Illegal Object for $var.\");
T_Outline
if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV) {
HV *obj = (HV*)SvRV($arg);
conv_hash_obj_to_outline(&$var, obj);
}
else
croak(\"Illegal Object for $var.\");
#T_BBox
# /* NO NEED */
#T_Glyph_Metrics
# /* NO NEED */
#T_Instance_Metrics
# /* NO NEED */
T_Raster_Map
if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVHV) {
HV *obj = (HV*)SvRV($arg);
SV *sv;
int na;
FETCH_OBJ_IV(obj, &$var, rows, $var);
FETCH_OBJ_IV(obj, &$var, cols, $var);
FETCH_OBJ_IV(obj, &$var, width, $var);
FETCH_OBJ_IV(obj, &$var, flow, $var);
# FETCH_OBJ_IV(obj, &$var, size, $var);
FETCH_OBJ(obj, bitmap, sv, $var);
$var.bitmap = SvPV(sv, na);
$var.size = na;
}
else
croak(\"Illegal Object for $var.\");
OUTPUT
T_Handle
sv_setpvn($arg, (char*)&$var, sizeof(&$var));
T_Face_Properties
sv_setsv($arg,
newRV_noinc((SV*)conv_face_properties_to_hash_obj(&$var)));
T_UnitVector
{
HV *obj = newHV();
STORE_OBJ_IV(obj, &$var, x);
STORE_OBJ_IV(obj, &$var, y);
sv_setsv($arg, newRV_noinc((SV*)obj));
}
T_Vector
{
HV *obj = newHV();
STORE_OBJ_IV(obj, &$var, x);
STORE_OBJ_IV(obj, &$var, y);
sv_setsv($arg, newRV_noinc((SV*)obj));
}
T_Matrix
{
HV *obj = newHV();
STORE_OBJ_IV(obj, &$var, xx);
STORE_OBJ_IV(obj, &$var, xy);
STORE_OBJ_IV(obj, &$var, yx);
STORE_OBJ_IV(obj, &$var, yy);
sv_setsv($arg, newRV_noinc((SV*)obj));
}
T_Outline
sv_setsv($arg,
newRV_noinc((SV*)conv_outline_to_hash_obj(&$var)));
T_BBox
sv_setsv($arg, newRV_noinc((SV*)conv_bbox_to_hash_obj(&$var)));
T_Glyph_Metrics
{
HV *obj = newHV();
STORE_OBJ(obj, bbox,
newRV_noinc((SV*)conv_bbox_to_hash_obj(&$var.bbox)));
STORE_OBJ_IV(obj, &$var, bearingX);
STORE_OBJ_IV(obj, &$var, bearingY);
STORE_OBJ_IV(obj, &$var, advance);
sv_setsv($arg, newRV_noinc((SV*)obj));
}
T_Instance_Metrics
{
HV *obj = newHV();
STORE_OBJ_IV(obj, &$var, pointSize);
STORE_OBJ_IV(obj, &$var, x_ppem);
STORE_OBJ_IV(obj, &$var, y_ppem);
STORE_OBJ_IV(obj, &$var, x_scale);
STORE_OBJ_IV(obj, &$var, y_scale);
STORE_OBJ_IV(obj, &$var, x_resolution);
STORE_OBJ_IV(obj, &$var, y_resolution);
sv_setsv($arg, newRV_noinc((SV*)obj));
}
#T_Raster_Map
# /* NO NEED */
|