Revision: 8003 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8003&view=rev Author: mdboom Date: 2009-12-03 19:21:28 +0000 (Thu, 03 Dec 2009)
Log Message: ----------- [2896454] subscripts and \mathrm don't get along, aka the long-standing wiggle baseline problem Modified Paths: -------------- branches/v0_99_maint/src/ft2font.cpp Modified: branches/v0_99_maint/src/ft2font.cpp =================================================================== --- branches/v0_99_maint/src/ft2font.cpp 2009-12-03 19:02:07 UTC (rev 8002) +++ branches/v0_99_maint/src/ft2font.cpp 2009-12-03 19:21:28 UTC (rev 8003) @@ -94,8 +94,8 @@ void FT2Image::draw_bitmap( FT_Bitmap* bitmap, - FT_Int x, - FT_Int y) { + FT_Int x, + FT_Int y) { _VERBOSE("FT2Image::draw_bitmap"); FT_Int image_width = (FT_Int)_width; FT_Int image_height = (FT_Int)_height; @@ -126,9 +126,9 @@ for ( size_t i = 0; i< _height; i++) { for ( size_t j = 0; j < _width; ++j) { if (_buffer[j + i*_width]) - fputc('#', fh); + fputc('#', fh); else - fputc(' ', fh); + fputc(' ', fh); } fputc('\n', fh); } @@ -156,7 +156,7 @@ void FT2Image::draw_rect(unsigned long x0, unsigned long y0, - unsigned long x1, unsigned long y1) { + unsigned long x1, unsigned long y1) { if ( x0>_width || x1>_width || y0>_height || y1>_height ) throw Py::ValueError("Rect coords outside image bounds"); @@ -199,7 +199,7 @@ } void FT2Image::draw_rect_filled(unsigned long x0, unsigned long y0, - unsigned long x1, unsigned long y1) { + unsigned long x1, unsigned long y1) { x0 = std::min(x0, _width); y0 = std::min(y0, _height); x1 = std::min(x1, _width); @@ -249,7 +249,7 @@ return Py::asObject (PyString_FromStringAndSize((const char *)_buffer, - _width*_height) + _width*_height) ); } @@ -276,9 +276,9 @@ PyArrayObject *A = (PyArrayObject *) PyArray_SimpleNew(2, dimensions, PyArray_UBYTE); - unsigned char *src = _buffer; - unsigned char *src_end = src + (dimensions[0] * dimensions[1]); - unsigned char *dst = (unsigned char *)A->data; + unsigned char *src = _buffer; + unsigned char *src_end = src + (dimensions[0] * dimensions[1]); + unsigned char *dst = (unsigned char *)A->data; while (src != src_end) { *dst++ = *src++; @@ -297,9 +297,9 @@ } else { _rgbCopy->resize(_width * 3, _height); } - unsigned char *src = _buffer; - unsigned char *src_end = src + (_width * _height); - unsigned char *dst = _rgbCopy->_buffer; + unsigned char *src = _buffer; + unsigned char *src_end = src + (_width * _height); + unsigned char *dst = _rgbCopy->_buffer; unsigned char tmp; while (src != src_end) { @@ -335,9 +335,9 @@ } else { _rgbaCopy->resize(_width * 4, _height); } - unsigned char *src = _buffer; - unsigned char *src_end = src + (_width * _height); - unsigned char *dst = _rgbaCopy->_buffer; + unsigned char *src = _buffer; + unsigned char *src_end = src + (_width * _height); + unsigned char *dst = _rgbaCopy->_buffer; while (src != src_end) { // We know the array has already been zero'ed out in @@ -480,27 +480,27 @@ // check first point to determine origin if( tag == FT_CURVE_TAG_CONIC) - { - // first point is conic control. Yes, this happens. - if(FT_CURVE_TAG(outline.tags[last]) == FT_CURVE_TAG_ON) - { - // start at last point if it is on the curve - v_start = v_last; - limit--; - } - else - { - // if both first and last points are conic, - // start at their middle and record its position - // for closure - v_start.x = (v_start.x + v_last.x) / 2; - v_start.y = (v_start.y + v_last.y) / 2; + { + // first point is conic control. Yes, this happens. + if(FT_CURVE_TAG(outline.tags[last]) == FT_CURVE_TAG_ON) + { + // start at last point if it is on the curve + v_start = v_last; + limit--; + } + else + { + // if both first and last points are conic, + // start at their middle and record its position + // for closure + v_start.x = (v_start.x + v_last.x) / 2; + v_start.y = (v_start.y + v_last.y) / 2; - v_last = v_start; - } - point--; - tags--; - } + v_last = v_start; + } + point--; + tags--; + } double x = conv(v_start.x); double y = flip_y ? -conv(v_start.y) : conv(v_start.y); @@ -515,157 +515,157 @@ closepoly[1] = Py::Int(0); while(point < limit) - { - point++; - tags++; + { + point++; + tags++; - tag = FT_CURVE_TAG(tags[0]); - switch(tag) - { - case FT_CURVE_TAG_ON: // emit a single line_to - { - double x = conv(point->x); - double y = flip_y ? -conv(point->y) : conv(point->y); - Py::Tuple tup(3); - tup[0] = Py::Int(LINETO); - tup[1] = Py::Float(x); - tup[2] = Py::Float(y); - path.append(tup); + tag = FT_CURVE_TAG(tags[0]); + switch(tag) + { + case FT_CURVE_TAG_ON: // emit a single line_to + { + double x = conv(point->x); + double y = flip_y ? -conv(point->y) : conv(point->y); + Py::Tuple tup(3); + tup[0] = Py::Int(LINETO); + tup[1] = Py::Float(x); + tup[2] = Py::Float(y); + path.append(tup); - continue; - } + continue; + } - case FT_CURVE_TAG_CONIC: // consume conic arcs - { - v_control.x = point->x; - v_control.y = point->y; + case FT_CURVE_TAG_CONIC: // consume conic arcs + { + v_control.x = point->x; + v_control.y = point->y; - Do_Conic: - if(point < limit) - { - FT_Vector vec; - FT_Vector v_middle; + Do_Conic: + if(point < limit) + { + FT_Vector vec; + FT_Vector v_middle; - point++; - tags++; - tag = FT_CURVE_TAG(tags[0]); + point++; + tags++; + tag = FT_CURVE_TAG(tags[0]); - vec.x = point->x; - vec.y = point->y; + vec.x = point->x; + vec.y = point->y; - if(tag == FT_CURVE_TAG_ON) - { - double xctl = conv(v_control.x); - double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y); - double xto = conv(vec.x); - double yto = flip_y ? -conv(vec.y) : conv(vec.y); - Py::Tuple tup(5); - tup[0] = Py::Int(CURVE3); - tup[1] = Py::Float(xctl); - tup[2] = Py::Float(yctl); - tup[3] = Py::Float(xto); - tup[4] = Py::Float(yto); - path.append(tup); - continue; - } + if(tag == FT_CURVE_TAG_ON) + { + double xctl = conv(v_control.x); + double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y); + double xto = conv(vec.x); + double yto = flip_y ? -conv(vec.y) : conv(vec.y); + Py::Tuple tup(5); + tup[0] = Py::Int(CURVE3); + tup[1] = Py::Float(xctl); + tup[2] = Py::Float(yctl); + tup[3] = Py::Float(xto); + tup[4] = Py::Float(yto); + path.append(tup); + continue; + } - if(tag != FT_CURVE_TAG_CONIC) return Py::Object(); + if(tag != FT_CURVE_TAG_CONIC) return Py::Object(); - v_middle.x = (v_control.x + vec.x) / 2; - v_middle.y = (v_control.y + vec.y) / 2; + v_middle.x = (v_control.x + vec.x) / 2; + v_middle.y = (v_control.y + vec.y) / 2; - double xctl = conv(v_control.x); - double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y); - double xto = conv(v_middle.x); - double yto = flip_y ? -conv(v_middle.y) : conv(v_middle.y); - Py::Tuple tup(5); - tup[0] = Py::Int(CURVE3); - tup[1] = Py::Float(xctl); - tup[2] = Py::Float(yctl); - tup[3] = Py::Float(xto); - tup[4] = Py::Float(yto); - path.append(tup); + double xctl = conv(v_control.x); + double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y); + double xto = conv(v_middle.x); + double yto = flip_y ? -conv(v_middle.y) : conv(v_middle.y); + Py::Tuple tup(5); + tup[0] = Py::Int(CURVE3); + tup[1] = Py::Float(xctl); + tup[2] = Py::Float(yctl); + tup[3] = Py::Float(xto); + tup[4] = Py::Float(yto); + path.append(tup); - v_control = vec; - goto Do_Conic; - } - double xctl = conv(v_control.x); - double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y); - double xto = conv(v_start.x); - double yto = flip_y ? -conv(v_start.y) : conv(v_start.y); - Py::Tuple tup(5); - tup[0] = Py::Int(CURVE3); - tup[1] = Py::Float(xctl); - tup[2] = Py::Float(yctl); - tup[3] = Py::Float(xto); - tup[4] = Py::Float(yto); - path.append(tup); - goto Close; - } + v_control = vec; + goto Do_Conic; + } + double xctl = conv(v_control.x); + double yctl = flip_y ? -conv(v_control.y) : conv(v_control.y); + double xto = conv(v_start.x); + double yto = flip_y ? -conv(v_start.y) : conv(v_start.y); + Py::Tuple tup(5); + tup[0] = Py::Int(CURVE3); + tup[1] = Py::Float(xctl); + tup[2] = Py::Float(yctl); + tup[3] = Py::Float(xto); + tup[4] = Py::Float(yto); + path.append(tup); + goto Close; + } - default: // FT_CURVE_TAG_CUBIC - { - FT_Vector vec1, vec2; + default: // FT_CURVE_TAG_CUBIC + { + FT_Vector vec1, vec2; - if(point + 1 > limit || FT_CURVE_TAG(tags[1]) != FT_CURVE_TAG_CUBIC) - { - return Py::Object(); - } + if(point + 1 > limit || FT_CURVE_TAG(tags[1]) != FT_CURVE_TAG_CUBIC) + { + return Py::Object(); + } - vec1.x = point[0].x; - vec1.y = point[0].y; - vec2.x = point[1].x; - vec2.y = point[1].y; + vec1.x = point[0].x; + vec1.y = point[0].y; + vec2.x = point[1].x; + vec2.y = point[1].y; - point += 2; - tags += 2; + point += 2; + tags += 2; - if(point <= limit) - { - FT_Vector vec; + if(point <= limit) + { + FT_Vector vec; - vec.x = point->x; - vec.y = point->y; + vec.x = point->x; + vec.y = point->y; - double xctl1 = conv(vec1.x); - double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y); - double xctl2 = conv(vec2.x); - double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y); - double xto = conv(vec.x); - double yto = flip_y ? -conv(vec.y) : conv(vec.y); - Py::Tuple tup(7); - tup[0] = Py::Int(CURVE4); - tup[1] = Py::Float(xctl1); - tup[2] = Py::Float(yctl1); - tup[3] = Py::Float(xctl2); - tup[4] = Py::Float(yctl2); - tup[5] = Py::Float(xto); - tup[6] = Py::Float(yto); - path.append(tup); + double xctl1 = conv(vec1.x); + double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y); + double xctl2 = conv(vec2.x); + double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y); + double xto = conv(vec.x); + double yto = flip_y ? -conv(vec.y) : conv(vec.y); + Py::Tuple tup(7); + tup[0] = Py::Int(CURVE4); + tup[1] = Py::Float(xctl1); + tup[2] = Py::Float(yctl1); + tup[3] = Py::Float(xctl2); + tup[4] = Py::Float(yctl2); + tup[5] = Py::Float(xto); + tup[6] = Py::Float(yto); + path.append(tup); - continue; - } + continue; + } - double xctl1 = conv(vec1.x); - double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y); - double xctl2 = conv(vec2.x); - double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y); - double xto = conv(v_start.x); - double yto = flip_y ? -conv(v_start.y) : conv(v_start.y); - Py::Tuple tup(7); - tup[0] = Py::Int(CURVE4); - tup[1] = Py::Float(xctl1); - tup[2] = Py::Float(yctl1); - tup[3] = Py::Float(xctl2); - tup[4] = Py::Float(yctl2); - tup[5] = Py::Float(xto); - tup[6] = Py::Float(yto); - path.append(tup); + double xctl1 = conv(vec1.x); + double yctl1 = flip_y ? -conv(vec1.y) : conv(vec1.y); + double xctl2 = conv(vec2.x); + double yctl2 = flip_y ? -conv(vec2.y) : conv(vec2.y); + double xto = conv(v_start.x); + double yto = flip_y ? -conv(v_start.y) : conv(v_start.y); + Py::Tuple tup(7); + tup[0] = Py::Int(CURVE4); + tup[1] = Py::Float(xctl1); + tup[2] = Py::Float(yctl1); + tup[3] = Py::Float(xctl2); + tup[4] = Py::Float(yctl2); + tup[5] = Py::Float(xto); + tup[6] = Py::Float(yto); + path.append(tup); - goto Close; - } - } - } + goto Close; + } + } + } path.append(closepoly); @@ -850,14 +850,14 @@ #ifdef VERTICAL_HINTING int error = FT_Set_Char_Size( face, (long)(ptsize * 64), 0, - (unsigned int)dpi * HORIZ_HINTING, - (unsigned int)dpi ); + (unsigned int)dpi * HORIZ_HINTING, + (unsigned int)dpi ); static FT_Matrix transform = { 65536 / HORIZ_HINTING, 0, 0, 65536 }; FT_Set_Transform( face, &transform, 0 ); #else int error = FT_Set_Char_Size( face, (long)(ptsize * 64), 0, - (unsigned int)dpi, - (unsigned int)dpi ); + (unsigned int)dpi, + (unsigned int)dpi ); #endif if (error) throw Py::RuntimeError("Could not set the fontsize"); @@ -1009,7 +1009,7 @@ if ( use_kerning && previous && glyph_index ) { FT_Vector delta; FT_Get_Kerning( face, previous, glyph_index, - FT_KERNING_DEFAULT, &delta ); + FT_KERNING_DEFAULT, &delta ); pen.x += delta.x / HORIZ_HINTING; } error = FT_Load_Glyph( face, glyph_index, flags ); @@ -1167,12 +1167,12 @@ FT_Glyph_Get_CBox(glyphs[n], ft_glyph_bbox_pixels, &bbox); error = FT_Glyph_To_Bitmap(&glyphs[n], - ft_render_mode_normal, - 0, - 1 - ); + ft_render_mode_normal, + 0, + 1 + ); if (error) - throw Py::RuntimeError("Could not convert glyph to bitmap"); + throw Py::RuntimeError("Could not convert glyph to bitmap"); FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyphs[n]; // now, draw to our target surface (convert position) @@ -1209,12 +1209,12 @@ FT_Glyph_Get_CBox(glyphs[n], ft_glyph_bbox_pixels, &bbox); error = FT_Glyph_To_Bitmap(&glyphs[n], - ft_render_mode_normal, - 0, - 1 - ); + ft_render_mode_normal, + 0, + 1 + ); if (error) - throw Py::RuntimeError("Could not convert glyph to bitmap"); + throw Py::RuntimeError("Could not convert glyph to bitmap"); FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyphs[n]; @@ -1260,8 +1260,8 @@ long x = (long)xd; long y = (long)yd; FT_Vector sub_offset; - sub_offset.x = int((xd - (double)x) * 64.0); - sub_offset.y = int((yd - (double)y) * 64.0); + sub_offset.x = int(-(xd - (double)x) * 64.0); + sub_offset.y = int(-(yd - (double)y) * 64.0); if (!Glyph::check(args[3].ptr())) throw Py::TypeError("Usage: draw_glyph_to_bitmap(bitmap, x,y,glyph)"); @@ -1271,10 +1271,10 @@ throw Py::ValueError("glyph num is out of range"); error = FT_Glyph_To_Bitmap(&glyphs[glyph->glyphInd], - ft_render_mode_normal, - &sub_offset, //no additional translation - 1 //destroy image; - ); + ft_render_mode_normal, + &sub_offset, //no additional translation + 1 //destroy image; + ); if (error) throw Py::RuntimeError("Could not convert glyph to bitmap"); @@ -1407,7 +1407,7 @@ key[2] = Py::Int(sfnt.language_id); key[3] = Py::Int(sfnt.name_id); names[key] = Py::String((char *) sfnt.string, - (int) sfnt.string_len); + (int) sfnt.string_len); } return names; } @@ -1425,7 +1425,7 @@ std::string glyphname = Py::String(args[0]); return Py::Long((long) - FT_Get_Name_Index(face, (FT_String *) glyphname.c_str())); + FT_Get_Name_Index(face, (FT_String *) glyphname.c_str())); } char FT2Font::get_ps_font_info__doc__[] = @@ -1473,7 +1473,7 @@ int tag; const char *tags[] = {"head", "maxp", "OS/2", "hhea", - "vhea", "post", "pclt", NULL}; + "vhea", "post", "pclt", NULL}; for (tag=0; tags[tag] != NULL; tag++) if (strcmp(tagname.c_str(), tags[tag]) == 0) @@ -1488,140 +1488,140 @@ case 0: { char head_dict[] = "{s:(h,h), s:(h,h), s:l, s:l, s:i, s:i," - "s:(l,l), s:(l,l), s:h, s:h, s:h, s:h, s:i, s:i, s:h, s:h, s:h}"; + "s:(l,l), s:(l,l), s:h, s:h, s:h, s:h, s:i, s:i, s:h, s:h, s:h}"; TT_Header *t = (TT_Header *)table; return Py::asObject(Py_BuildValue(head_dict, - "version", - FIXED_MAJOR(t->Table_Version), - FIXED_MINOR(t->Table_Version), - "fontRevision", - FIXED_MAJOR(t->Font_Revision), - FIXED_MINOR(t->Font_Revision), - "checkSumAdjustment", t->CheckSum_Adjust, - "magicNumber" , t->Magic_Number, - "flags", (unsigned)t->Flags, - "unitsPerEm", (unsigned)t->Units_Per_EM, - "created", t->Created[0], t->Created[1], - "modified", t->Modified[0],t->Modified[1], - "xMin", t->xMin, - "yMin", t->yMin, - "xMax", t->xMax, - "yMax", t->yMax, - "macStyle", (unsigned)t->Mac_Style, - "lowestRecPPEM", (unsigned)t->Lowest_Rec_PPEM, - "fontDirectionHint", t->Font_Direction, - "indexToLocFormat", t->Index_To_Loc_Format, - "glyphDataFormat", t->Glyph_Data_Format)); + "version", + FIXED_MAJOR(t->Table_Version), + FIXED_MINOR(t->Table_Version), + "fontRevision", + FIXED_MAJOR(t->Font_Revision), + FIXED_MINOR(t->Font_Revision), + "checkSumAdjustment", t->CheckSum_Adjust, + "magicNumber" , t->Magic_Number, + "flags", (unsigned)t->Flags, + "unitsPerEm", (unsigned)t->Units_Per_EM, + "created", t->Created[0], t->Created[1], + "modified", t->Modified[0],t->Modified[1], + "xMin", t->xMin, + "yMin", t->yMin, + "xMax", t->xMax, + "yMax", t->yMax, + "macStyle", (unsigned)t->Mac_Style, + "lowestRecPPEM", (unsigned)t->Lowest_Rec_PPEM, + "fontDirectionHint", t->Font_Direction, + "indexToLocFormat", t->Index_To_Loc_Format, + "glyphDataFormat", t->Glyph_Data_Format)); } case 1: { char maxp_dict[] = "{s:(h,h), s:i, s:i, s:i, s:i, s:i, s:i," - "s:i, s:i, s:i, s:i, s:i, s:i, s:i, s:i}"; + "s:i, s:i, s:i, s:i, s:i, s:i, s:i, s:i}"; TT_MaxProfile *t = (TT_MaxProfile *)table; return Py::asObject(Py_BuildValue(maxp_dict, - "version", - FIXED_MAJOR(t->version), - FIXED_MINOR(t->version), - "numGlyphs", (unsigned)t->numGlyphs, - "maxPoints", (unsigned)t->maxPoints, - "maxContours", (unsigned)t->maxContours, - "maxComponentPoints", - (unsigned)t->maxCompositePoints, - "maxComponentContours", - (unsigned)t->maxCompositeContours, - "maxZones", (unsigned)t->maxZones, - "maxTwilightPoints",(unsigned)t->maxTwilightPoints, - "maxStorage", (unsigned)t->maxStorage, - "maxFunctionDefs",(unsigned)t->maxFunctionDefs, - "maxInstructionDefs", - (unsigned)t->maxInstructionDefs, - "maxStackElements",(unsigned)t->maxStackElements, - "maxSizeOfInstructions", - (unsigned)t->maxSizeOfInstructions, - "maxComponentElements", - (unsigned)t->maxComponentElements, - "maxComponentDepth", - (unsigned)t->maxComponentDepth)); + "version", + FIXED_MAJOR(t->version), + FIXED_MINOR(t->version), + "numGlyphs", (unsigned)t->numGlyphs, + "maxPoints", (unsigned)t->maxPoints, + "maxContours", (unsigned)t->maxContours, + "maxComponentPoints", + (unsigned)t->maxCompositePoints, + "maxComponentContours", + (unsigned)t->maxCompositeContours, + "maxZones", (unsigned)t->maxZones, + "maxTwilightPoints",(unsigned)t->maxTwilightPoints, + "maxStorage", (unsigned)t->maxStorage, + "maxFunctionDefs",(unsigned)t->maxFunctionDefs, + "maxInstructionDefs", + (unsigned)t->maxInstructionDefs, + "maxStackElements",(unsigned)t->maxStackElements, + "maxSizeOfInstructions", + (unsigned)t->maxSizeOfInstructions, + "maxComponentElements", + (unsigned)t->maxComponentElements, + "maxComponentDepth", + (unsigned)t->maxComponentDepth)); } case 2: { char os_2_dict[] = "{s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:h," - "s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:s#, s:(llll)," - "s:s#, s:h, s:h, s:h}"; + "s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:h, s:s#, s:(llll)," + "s:s#, s:h, s:h, s:h}"; TT_OS2 *t = (TT_OS2 *)table; return Py::asObject(Py_BuildValue(os_2_dict, - "version", (unsigned)t->version, - "xAvgCharWidth", t->xAvgCharWidth, - "usWeightClass", (unsigned)t->usWeightClass, - "usWidthClass", (unsigned)t->usWidthClass, - "fsType", t->fsType, - "ySubscriptXSize", t->ySubscriptXSize, - "ySubscriptYSize", t->ySubscriptYSize, - "ySubscriptXOffset", t->ySubscriptXOffset, - "ySubscriptYOffset", t->ySubscriptYOffset, - "ySuperscriptXSize", t->ySuperscriptXSize, - "ySuperscriptYSize", t->ySuperscriptYSize, - "ySuperscriptXOffset", t->ySuperscriptXOffset, - "ySuperscriptYOffset", t->ySuperscriptYOffset, - "yStrikeoutSize", t->yStrikeoutSize, - "yStrikeoutPosition", t->yStrikeoutPosition, - "sFamilyClass", t->sFamilyClass, - "panose", t->panose, 10, - "ulCharRange", - (unsigned long) t->ulUnicodeRange1, - (unsigned long) t->ulUnicodeRange2, - (unsigned long) t->ulUnicodeRange3, - (unsigned long) t->ulUnicodeRange4, - "achVendID", t->achVendID, 4, - "fsSelection", (unsigned)t->fsSelection, - "fsFirstCharIndex",(unsigned)t->usFirstCharIndex, - "fsLastCharIndex",(unsigned)t->usLastCharIndex)); + "version", (unsigned)t->version, + "xAvgCharWidth", t->xAvgCharWidth, + "usWeightClass", (unsigned)t->usWeightClass, + "usWidthClass", (unsigned)t->usWidthClass, + "fsType", t->fsType, + "ySubscriptXSize", t->ySubscriptXSize, + "ySubscriptYSize", t->ySubscriptYSize, + "ySubscriptXOffset", t->ySubscriptXOffset, + "ySubscriptYOffset", t->ySubscriptYOffset, + "ySuperscriptXSize", t->ySuperscriptXSize, + "ySuperscriptYSize", t->ySuperscriptYSize, + "ySuperscriptXOffset", t->ySuperscriptXOffset, + "ySuperscriptYOffset", t->ySuperscriptYOffset, + "yStrikeoutSize", t->yStrikeoutSize, + "yStrikeoutPosition", t->yStrikeoutPosition, + "sFamilyClass", t->sFamilyClass, + "panose", t->panose, 10, + "ulCharRange", + (unsigned long) t->ulUnicodeRange1, + (unsigned long) t->ulUnicodeRange2, + (unsigned long) t->ulUnicodeRange3, + (unsigned long) t->ulUnicodeRange4, + "achVendID", t->achVendID, 4, + "fsSelection", (unsigned)t->fsSelection, + "fsFirstCharIndex",(unsigned)t->usFirstCharIndex, + "fsLastCharIndex",(unsigned)t->usLastCharIndex)); } case 3: { char hhea_dict[] = "{s:(h,h), s:h, s:h, s:h, s:i, s:h, s:h, s:h," - "s:h, s:h, s:h, s:h, s:i}"; + "s:h, s:h, s:h, s:h, s:i}"; TT_HoriHeader *t = (TT_HoriHeader *)table; return Py::asObject(Py_BuildValue(hhea_dict, - "version", - FIXED_MAJOR(t->Version), - FIXED_MINOR(t->Version), - "ascent", t->Ascender, - "descent", t->Descender, - "lineGap", t->Line_Gap, - "advanceWidthMax",(unsigned)t->advance_Width_Max, - "minLeftBearing", t->min_Left_Side_Bearing, - "minRightBearing", t->min_Right_Side_Bearing, - "xMaxExtent", t->xMax_Extent, - "caretSlopeRise", t->caret_Slope_Rise, - "caretSlopeRun", t->caret_Slope_Run, - "caretOffset", t->caret_Offset, - "metricDataFormat", t->metric_Data_Format, - "numOfLongHorMetrics", - (unsigned)t->number_Of_HMetrics)); + "version", + FIXED_MAJOR(t->Version), + FIXED_MINOR(t->Version), + "ascent", t->Ascender, + "descent", t->Descender, + "lineGap", t->Line_Gap, + "advanceWidthMax",(unsigned)t->advance_Width_Max, + "minLeftBearing", t->min_Left_Side_Bearing, + "minRightBearing", t->min_Right_Side_Bearing, + "xMaxExtent", t->xMax_Extent, + "caretSlopeRise", t->caret_Slope_Rise, + "caretSlopeRun", t->caret_Slope_Run, + "caretOffset", t->caret_Offset, + "metricDataFormat", t->metric_Data_Format, + "numOfLongHorMetrics", + (unsigned)t->number_Of_HMetrics)); } case 4: { char vhea_dict[] = "{s:(h,h), s:h, s:h, s:h, s:i, s:h, s:h, s:h," - "s:h, s:h, s:h, s:h, s:i}"; + "s:h, s:h, s:h, s:h, s:i}"; TT_VertHeader *t = (TT_VertHeader *)table; return Py::asObject(Py_BuildValue(vhea_dict, - "version", - FIXED_MAJOR(t->Version), - FIXED_MINOR(t->Version), - "vertTypoAscender", t->Ascender, - "vertTypoDescender", t->Descender, - "vertTypoLineGap", t->Line_Gap, - "advanceHeightMax",(unsigned)t->advance_Height_Max, - "minTopSideBearing", t->min_Top_Side_Bearing, - "minBottomSizeBearing", t->min_Bottom_Side_Bearing, - "yMaxExtent", t->yMax_Extent, - "caretSlopeRise", t->caret_Slope_Rise, - "caretSlopeRun", t->caret_Slope_Run, - "caretOffset", t->caret_Offset, - "metricDataFormat", t->metric_Data_Format, - "numOfLongVerMetrics", - (unsigned)t->number_Of_VMetrics)); + "version", + FIXED_MAJOR(t->Version), + FIXED_MINOR(t->Version), + "vertTypoAscender", t->Ascender, + "vertTypoDescender", t->Descender, + "vertTypoLineGap", t->Line_Gap, + "advanceHeightMax",(unsigned)t->advance_Height_Max, + "minTopSideBearing", t->min_Top_Side_Bearing, + "minBottomSizeBearing", t->min_Bottom_Side_Bearing, + "yMaxExtent", t->yMax_Extent, + "caretSlopeRise", t->caret_Slope_Rise, + "caretSlopeRun", t->caret_Slope_Run, + "caretOffset", t->caret_Offset, + "metricDataFormat", t->metric_Data_Format, + "numOfLongVerMetrics", + (unsigned)t->number_Of_VMetrics)); } case 5: { @@ -1660,7 +1660,7 @@ pclt["symbolSet"] = Py::Int((short) t->SymbolSet); pclt["typeFace"] = Py::String((char *) t->TypeFace, 16); pclt["characterComplement"] = Py::String((char *) - t->CharacterComplement, 8); + t->CharacterComplement, 8); pclt["filename"] = Py::String((char *) t->FileName, 6); pclt["strokeWeight"] = Py::Int((int) t->StrokeWeight); pclt["widthType"] = Py::Int((int) t->WidthType); @@ -1735,23 +1735,23 @@ behaviors().doc("FT2Image"); add_varargs_method("write_bitmap", &FT2Image::py_write_bitmap, - FT2Image::write_bitmap__doc__); + FT2Image::write_bitmap__doc__); add_varargs_method("draw_rect", &FT2Image::py_draw_rect, - FT2Image::draw_rect__doc__); + FT2Image::draw_rect__doc__); add_varargs_method("draw_rect_filled", &FT2Image::py_draw_rect_filled, - FT2Image::draw_rect_filled__doc__); + FT2Image::draw_rect_filled__doc__); add_varargs_method("as_array", &FT2Image::py_as_array, - FT2Image::as_array__doc__); + FT2Image::as_array__doc__); add_varargs_method("as_str", &FT2Image::py_as_str, - FT2Image::as_str__doc__); + FT2Image::as_str__doc__); add_varargs_method("as_rgb_str", &FT2Image::py_as_rgb_str, - FT2Image::as_rgb_str__doc__); + FT2Image::as_rgb_str__doc__); add_varargs_method("as_rgba_str", &FT2Image::py_as_rgba_str, - FT2Image::as_rgba_str__doc__); + FT2Image::as_rgba_str__doc__); add_varargs_method("get_width", &FT2Image::py_get_width, - "Returns the width of the image"); + "Returns the width of the image"); add_varargs_method("get_height", &FT2Image::py_get_height, - "Returns the height of the image"); + "Returns the height of the image"); } void @@ -1770,45 +1770,45 @@ behaviors().doc("FT2Font"); add_varargs_method("clear", &FT2Font::clear, - FT2Font::clear__doc__); + FT2Font::clear__doc__); add_varargs_method("draw_glyph_to_bitmap", &FT2Font::draw_glyph_to_bitmap, - FT2Font::draw_glyph_to_bitmap__doc__); + FT2Font::draw_glyph_to_bitmap__doc__); add_varargs_method("draw_glyphs_to_bitmap", &FT2Font::draw_glyphs_to_bitmap, - FT2Font::draw_glyphs_to_bitmap__doc__); + FT2Font::draw_glyphs_to_bitmap__doc__); add_varargs_method("get_xys", &FT2Font::get_xys, - FT2Font::get_xys__doc__); + FT2Font::get_xys__doc__); add_varargs_method("get_num_glyphs", &FT2Font::get_num_glyphs, - FT2Font::get_num_glyphs__doc__); + FT2Font::get_num_glyphs__doc__); add_keyword_method("load_char", &FT2Font::load_char, - FT2Font::load_char__doc__); + FT2Font::load_char__doc__); add_keyword_method("set_text", &FT2Font::set_text, - FT2Font::set_text__doc__); + FT2Font::set_text__doc__); add_varargs_method("set_size", &FT2Font::set_size, - FT2Font::set_size__doc__); + FT2Font::set_size__doc__); add_varargs_method("set_charmap", &FT2Font::set_charmap, - FT2Font::set_charmap__doc__); + FT2Font::set_charmap__doc__); add_varargs_method("get_width_height", &FT2Font::get_width_height, - FT2Font::get_width_height__doc__); + FT2Font::get_width_height__doc__); add_varargs_method("get_descent", &FT2Font::get_descent, - FT2Font::get_descent__doc__); + FT2Font::get_descent__doc__); add_varargs_method("get_glyph_name", &FT2Font::get_glyph_name, - FT2Font::get_glyph_name__doc__); + FT2Font::get_glyph_name__doc__); add_varargs_method("get_charmap", &FT2Font::get_charmap, - FT2Font::get_charmap__doc__); + FT2Font::get_charmap__doc__); add_varargs_method("get_kerning", &FT2Font::get_kerning, - FT2Font::get_kerning__doc__); + FT2Font::get_kerning__doc__); add_varargs_method("get_sfnt", &FT2Font::get_sfnt, - FT2Font::get_sfnt__doc__); + FT2Font::get_sfnt__doc__); add_varargs_method("get_name_index", &FT2Font::get_name_index, - FT2Font::get_name_index__doc__); + FT2Font::get_name_index__doc__); add_varargs_method("get_ps_font_info", &FT2Font::get_ps_font_info, - FT2Font::get_ps_font_info__doc__); + FT2Font::get_ps_font_info__doc__); add_varargs_method("get_sfnt_table", &FT2Font::get_sfnt_table, - FT2Font::get_sfnt_table__doc__); + FT2Font::get_sfnt_table__doc__); add_varargs_method("get_image", &FT2Font::get_image, - FT2Font::get_image__doc__); + FT2Font::get_image__doc__); add_varargs_method("attach_file", &FT2Font::attach_file, FT2Font::attach_file__doc__); @@ -1882,28 +1882,28 @@ import_array(); Py::Dict d = ft2font->moduleDictionary(); - d["SCALABLE"] = Py::Int(FT_FACE_FLAG_SCALABLE); - d["FIXED_SIZES"] = Py::Int(FT_FACE_FLAG_FIXED_SIZES); - d["FIXED_WIDTH"] = Py::Int(FT_FACE_FLAG_FIXED_WIDTH); - d["SFNT"] = Py::Int(FT_FACE_FLAG_SFNT); - d["HORIZONTAL"] = Py::Int(FT_FACE_FLAG_HORIZONTAL); - d["VERTICAL"] = Py::Int(FT_FACE_FLAG_SCALABLE); - d["KERNING"] = Py::Int(FT_FACE_FLAG_KERNING); - d["FAST_GLYPHS"] = Py::Int(FT_FACE_FLAG_FAST_GLYPHS); + d["SCALABLE"] = Py::Int(FT_FACE_FLAG_SCALABLE); + d["FIXED_SIZES"] = Py::Int(FT_FACE_FLAG_FIXED_SIZES); + d["FIXED_WIDTH"] = Py::Int(FT_FACE_FLAG_FIXED_WIDTH); + d["SFNT"] = Py::Int(FT_FACE_FLAG_SFNT); + d["HORIZONTAL"] = Py::Int(FT_FACE_FLAG_HORIZONTAL); + d["VERTICAL"] = Py::Int(FT_FACE_FLAG_SCALABLE); + d["KERNING"] = Py::Int(FT_FACE_FLAG_KERNING); + d["FAST_GLYPHS"] = Py::Int(FT_FACE_FLAG_FAST_GLYPHS); d["MULTIPLE_MASTERS"] = Py::Int(FT_FACE_FLAG_MULTIPLE_MASTERS); - d["GLYPH_NAMES"] = Py::Int(FT_FACE_FLAG_GLYPH_NAMES); - d["EXTERNAL_STREAM"] = Py::Int(FT_FACE_FLAG_EXTERNAL_STREAM); - d["ITALIC"] = Py::Int(FT_STYLE_FLAG_ITALIC); - d["BOLD"] = Py::Int(FT_STYLE_FLAG_BOLD); + d["GLYPH_NAMES"] = Py::Int(FT_FACE_FLAG_GLYPH_NAMES); + d["EXTERNAL_STREAM"] = Py::Int(FT_FACE_FLAG_EXTERNAL_STREAM); + d["ITALIC"] = Py::Int(FT_STYLE_FLAG_ITALIC); + d["BOLD"] = Py::Int(FT_STYLE_FLAG_BOLD); d["KERNING_DEFAULT"] = Py::Int(FT_KERNING_DEFAULT); d["KERNING_UNFITTED"] = Py::Int(FT_KERNING_UNFITTED); d["KERNING_UNSCALED"] = Py::Int(FT_KERNING_UNSCALED); - d["LOAD_DEFAULT"] = Py::Long(FT_LOAD_DEFAULT); - d["LOAD_NO_SCALE"] = Py::Long(FT_LOAD_NO_SCALE); - d["LOAD_NO_HINTING"] = Py::Long(FT_LOAD_NO_HINTING); - d["LOAD_RENDER"] = Py::Long(FT_LOAD_RENDER); - d["LOAD_NO_BITMAP"] = Py::Long(FT_LOAD_NO_BITMAP); + d["LOAD_DEFAULT"] = Py::Long(FT_LOAD_DEFAULT); + d["LOAD_NO_SCALE"] = Py::Long(FT_LOAD_NO_SCALE); + d["LOAD_NO_HINTING"] = Py::Long(FT_LOAD_NO_HINTING); + d["LOAD_RENDER"] = Py::Long(FT_LOAD_RENDER); + d["LOAD_NO_BITMAP"] = Py::Long(FT_LOAD_NO_BITMAP); d["LOAD_VERTICAL_LAYOUT"] = Py::Long(FT_LOAD_VERTICAL_LAYOUT); d["LOAD_FORCE_AUTOHINT"] = Py::Long(FT_LOAD_FORCE_AUTOHINT); d["LOAD_CROP_BITMAP"] = Py::Long(FT_LOAD_CROP_BITMAP); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Join us December 9, 2009 for the Red Hat Virtual Experience, a free event focused on virtualization and cloud computing. Attend in-depth sessions from your desk. Your couch. Anywhere. http://p.sf.net/sfu/redhat-sfdev2dev _______________________________________________ Matplotlib-checkins mailing list Matplotlib-checkins@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins