anchor.diff:    end;
     PStBttPoint = ^TStBttPoint;
   
  -  TStBttPointArray = array[0..32767] of TStBttPoint;
  -  PStBttPointArray = ^TStBttPointArray;
  +  TStBttPointArray = Record
  +    List:Array Of TStBttPoint;
  +    Count:Integer;
  +  End;
   
     TStBttActiveEdge = Class(TERRAObject)
       x,dx: Integer;
  
positive.code:       end;
        contour_lengths[n] := NumPoints - start;
     end;
  
     Result := points;
  end;
  
  procedure TTFFont.stbtt_Rasterize(resultBitmap:Image; FlatnessInPixels: Single; Vertices: PStBttVertexArray; NumVerts: Integer; ScaleX, ScaleY, ShiftX, ShiftY: Single; XOff, YOff, Invert: Integer);
  var
    Scale: Single;
    WindingCount: Integer;
    WindingLengths: PIntegerArray;
    Windings: PStBttPointArray;
  begin
     Scale := Min(ScaleX, ScaleY);
  
     Windings := stbtt_FlattenCurves(Vertices, NumVerts, FlatnessInPixels / Scale, WindingLengths, WindingCount);
     if windings<>nil then
     begin
        stbtt__rasterize(resultBitmap, Windings, WindingLengths, WindingCount, ScaleX, ScaleY, ShiftX, ShiftY, XOff, YOff, Invert);
        //FreeMem(Windings);
     end;
  end;
  
  Procedure TTFFont.stbtt__rasterize(resultBitmap:Image; Pts: PStBttPointArray; WCount: PIntegerArray; Windings: Integer; ScaleX, ScaleY, ShiftX,ShiftY: Single; XOff, YOff, Invert: Integer);
  Var
    YScaleInv: Single;
    i,j,k,m, a,b, VSubSample: Integer;
    e: EdgeList;
    p: PStBttPointArray;
    en: TStBttEdge;
  Begin
     If Invert<>0 Then
      YScaleInv := -ScaleY
  
negative.code:       Procedure stbtt_Rasterize(resultBitmap:Image; FlatnessInPixels: Single; Vertices: PStBttVertexArray; NumVerts: Integer; ScaleX, ScaleY, ShiftX, ShiftY: Single; XOff, YOff, Invert: Integer);
        Procedure stbtt_GetFontVMetrics(var ascent, descent, lineGap: Integer);
        Procedure stbtt_setvertex(var v:TStBttVertex; typeByte: Byte; x, y, cx, cy: Smallint);
        Procedure stbtt__rasterize(resultBitmap:Image; Var Pts:TStBttPointArray; WCount: PIntegerArray; Windings: Integer; ScaleX, ScaleY, ShiftX, ShiftY: Single; XOff, YOff, Invert: Integer);
        Procedure stbtt_FlattenCurves(Vertices: PStBttVertexArray; num_verts:Integer; ObjSpaceFlatness: Single; var contour_lengths: PIntegerArray; var num_contours: Integer; Out Result: TStBttPointArray);
        Procedure stbtt__add_point(Var points:TStBttPointArray; n: Integer; x, y: Single);
        Function stbtt__tesselate_curve(Var points:TStBttPointArray; var num_points: Integer; x0, y0, x1, y1, x2, y2, objspace_flatness_squared: Single; n: Integer): Integer;
        Procedure stbtt__rasterize_sorted_edges(resultBitmap:Image; e:EdgeList; vsubsample, off_x, off_y: Integer);
        Procedure stbtt__fill_active_edges(scanline: PByteArray; len: Integer; e:TStBttActiveEdge; max_weight: Integer);
        Function new_active(Const e: TStBttEdge; off_x: Integer; start_point: Single):TStBttActiveEdge;
  