Imager-Font-T1
view release on metacpan or search on metacpan
double point
SV* str_sv
int utf8
char* flags
PREINIT:
const char *str;
STRLEN len;
i_img_dim cords[BOUNDING_BOX_COUNT];
int i;
int rc;
PPCODE:
str = SvPV(str_sv, len);
#ifdef SvUTF8
if (SvUTF8(str_sv))
utf8 = 1;
#endif
rc = i_t1_bbox(fontnum,point,str,len,cords,utf8,flags);
if (rc > 0) {
EXTEND(SP, rc);
for (i = 0; i < rc; ++i)
PUSHs(sv_2mortal(newSViv(cords[i])));
i_t1_has_chars(font, text_sv, utf8 = 0)
Imager::Font::T1xs font
SV *text_sv
int utf8
PREINIT:
char const *text;
STRLEN len;
char *work;
int count;
int i;
PPCODE:
text = SvPV(text_sv, len);
#ifdef SvUTF8
if (SvUTF8(text_sv))
utf8 = 1;
#endif
work = mymalloc(len);
count = i_t1_has_chars(font, text, len, utf8, work);
if (GIMME_V == G_ARRAY) {
EXTEND(SP, count);
PUSHs(sv_2mortal(newSVpv(work, count)));
}
myfree(work);
void
i_t1_face_name(font)
Imager::Font::T1xs font
PREINIT:
char name[255];
int len;
PPCODE:
len = i_t1_face_name(font, name, sizeof(name));
if (len) {
EXTEND(SP, 1);
PUSHs(sv_2mortal(newSVpv(name, strlen(name))));
}
void
i_t1_glyph_names(font, text_sv, utf8 = 0)
Imager::Font::T1xs font
SV *text_sv
int utf8
PREINIT:
char const *text;
STRLEN work_len;
size_t len;
char name[255];
SSize_t count = 0;
PPCODE:
text = SvPV(text_sv, work_len);
#ifdef SvUTF8
if (SvUTF8(text_sv))
utf8 = 1;
#endif
i_clear_error();
len = work_len;
while (len) {
unsigned long ch;
if (utf8) {
( run in 0.651 second using v1.01-cache-2.11-cpan-5511b514fd6 )