mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-07-31 21:56:15 +02:00
975 lines
28 KiB
ObjectPascal
975 lines
28 KiB
ObjectPascal
//----------------------------------------------------------------------------
|
|
// Anti-Grain Geometry - Version 2.4 (Public License)
|
|
// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
|
|
//
|
|
// Anti-Grain Geometry - Version 2.4 Release Milano 3 (AggPas 2.4 RM3)
|
|
// Pascal Port By: Milan Marusinec alias Milano
|
|
// milan@marusinec.sk
|
|
// http://www.aggpas.org
|
|
// Copyright (c) 2005-2006
|
|
//
|
|
// Permission to copy, use, modify, sell and distribute this software
|
|
// is granted provided this copyright notice appears in all copies.
|
|
// This software is provided "as is" without express or implied
|
|
// warranty, and with no claim as to its suitability for any purpose.
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
// Contact: mcseem@antigrain.com
|
|
// mcseemagg@yahoo.com
|
|
// http://www.antigrain.com
|
|
//
|
|
// [Pascal Port History] -----------------------------------------------------
|
|
//
|
|
// 23.06.2006-Milano: ptrcomp adjustments
|
|
// 21.12.2005-Milano: Unit port establishment
|
|
//
|
|
{ agg_gsv_text.pas }
|
|
unit
|
|
agg_gsv_text ;
|
|
|
|
INTERFACE
|
|
|
|
{$I agg_mode.inc }
|
|
{$Q- }
|
|
{$R- }
|
|
uses
|
|
SysUtils ,
|
|
agg_basics ,
|
|
agg_vertex_source ,
|
|
agg_conv_stroke ,
|
|
agg_conv_transform ,
|
|
agg_trans_affine ,
|
|
agg_math_stroke ;
|
|
|
|
{ TYPES DEFINITION }
|
|
type
|
|
status = (
|
|
initial,
|
|
next_char,
|
|
start_glyph,
|
|
glyph );
|
|
|
|
//---------------------------------------------------------------gsv_text
|
|
gsv_text_ptr = ^gsv_text;
|
|
gsv_text = object(vertex_source )
|
|
m_x ,
|
|
m_y ,
|
|
m_start_x ,
|
|
m_width ,
|
|
m_height ,
|
|
m_space ,
|
|
m_line_space : double;
|
|
m_chr : array[0..1 ] of byte;
|
|
m_text ,
|
|
m_text_buf : pointer;
|
|
m_buf_size : unsigned;
|
|
m_cur_chr : int8u_ptr;
|
|
m_font ,
|
|
m_loaded_font : pointer;
|
|
m_loadfont_sz : unsigned;
|
|
m_status : status;
|
|
m_big_endian ,
|
|
m_flip : boolean;
|
|
|
|
m_indices : int8u_ptr;
|
|
m_glyphs ,
|
|
m_bglyph ,
|
|
m_eglyph : int8_ptr;
|
|
m_w ,
|
|
m_h : double;
|
|
|
|
constructor Construct;
|
|
destructor Destruct; virtual;
|
|
|
|
procedure font_ (font : pointer );
|
|
procedure flip_ (flip_y : boolean );
|
|
procedure load_font_ (_file_ : shortstring );
|
|
procedure size_ (height : double; width : double = 0.0 );
|
|
procedure space_ (space : double );
|
|
procedure line_space_ (line_space : double );
|
|
procedure start_point_(x ,y : double );
|
|
procedure text_ (text : PChar );
|
|
|
|
procedure rewind(path_id : unsigned ); virtual;
|
|
function vertex(x ,y : double_ptr ) : unsigned; virtual;
|
|
|
|
function _value(p : int8u_ptr ) : int16u;
|
|
|
|
end;
|
|
|
|
//--------------------------------------------------------gsv_text_outline
|
|
gsv_text_outline = object(vertex_source )
|
|
m_polyline : conv_stroke;
|
|
m_trans : conv_transform;
|
|
|
|
constructor Construct(text : gsv_text_ptr; trans : trans_affine_ptr );
|
|
destructor Destruct; virtual;
|
|
|
|
procedure width_(w : double );
|
|
|
|
procedure transformer_(trans : trans_affine_ptr );
|
|
|
|
procedure rewind(path_id : unsigned ); virtual;
|
|
function vertex(x ,y : double_ptr ) : unsigned; virtual;
|
|
|
|
end;
|
|
|
|
{ GLOBAL PROCEDURES }
|
|
|
|
|
|
IMPLEMENTATION
|
|
{ LOCAL VARIABLES & CONSTANTS }
|
|
const
|
|
gsv_default_font : array[0..4525 ] of int8u = (
|
|
$40,$00,$6c,$0f,$15,$00,$0e,$00,$f9,$ff,
|
|
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
|
|
$0d,$0a,$0d,$0a,$46,$6f,$6e,$74,$20,$28,
|
|
$63,$29,$20,$4d,$69,$63,$72,$6f,$50,$72,
|
|
$6f,$66,$20,$32,$37,$20,$53,$65,$70,$74,
|
|
$65,$6d,$62,$2e,$31,$39,$38,$39,$00,$0d,
|
|
$0a,$0d,$0a,$00,$00,$00,$00,$00,$00,$00,
|
|
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
|
|
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
|
|
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
|
|
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
|
|
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
|
|
$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,
|
|
$02,$00,$12,$00,$34,$00,$46,$00,$94,$00,
|
|
$d0,$00,$2e,$01,$3e,$01,$64,$01,$8a,$01,
|
|
$98,$01,$a2,$01,$b4,$01,$ba,$01,$c6,$01,
|
|
$cc,$01,$f0,$01,$fa,$01,$18,$02,$38,$02,
|
|
$44,$02,$68,$02,$98,$02,$a2,$02,$de,$02,
|
|
$0e,$03,$24,$03,$40,$03,$48,$03,$52,$03,
|
|
$5a,$03,$82,$03,$ec,$03,$fa,$03,$26,$04,
|
|
$4c,$04,$6a,$04,$7c,$04,$8a,$04,$b6,$04,
|
|
$c4,$04,$ca,$04,$e0,$04,$ee,$04,$f8,$04,
|
|
$0a,$05,$18,$05,$44,$05,$5e,$05,$8e,$05,
|
|
$ac,$05,$d6,$05,$e0,$05,$f6,$05,$00,$06,
|
|
$12,$06,$1c,$06,$28,$06,$36,$06,$48,$06,
|
|
$4e,$06,$60,$06,$6e,$06,$74,$06,$84,$06,
|
|
$a6,$06,$c8,$06,$e6,$06,$08,$07,$2c,$07,
|
|
$3c,$07,$68,$07,$7c,$07,$8c,$07,$a2,$07,
|
|
$b0,$07,$b6,$07,$d8,$07,$ec,$07,$10,$08,
|
|
$32,$08,$54,$08,$64,$08,$88,$08,$98,$08,
|
|
$ac,$08,$b6,$08,$c8,$08,$d2,$08,$e4,$08,
|
|
$f2,$08,$3e,$09,$48,$09,$94,$09,$c2,$09,
|
|
$c4,$09,$d0,$09,$e2,$09,$04,$0a,$0e,$0a,
|
|
$26,$0a,$34,$0a,$4a,$0a,$66,$0a,$70,$0a,
|
|
$7e,$0a,$8e,$0a,$9a,$0a,$a6,$0a,$b4,$0a,
|
|
$d8,$0a,$e2,$0a,$f6,$0a,$18,$0b,$22,$0b,
|
|
$32,$0b,$56,$0b,$60,$0b,$6e,$0b,$7c,$0b,
|
|
$8a,$0b,$9c,$0b,$9e,$0b,$b2,$0b,$c2,$0b,
|
|
$d8,$0b,$f4,$0b,$08,$0c,$30,$0c,$56,$0c,
|
|
$72,$0c,$90,$0c,$b2,$0c,$ce,$0c,$e2,$0c,
|
|
$fe,$0c,$10,$0d,$26,$0d,$36,$0d,$42,$0d,
|
|
$4e,$0d,$5c,$0d,$78,$0d,$8c,$0d,$8e,$0d,
|
|
$90,$0d,$92,$0d,$94,$0d,$96,$0d,$98,$0d,
|
|
$9a,$0d,$9c,$0d,$9e,$0d,$a0,$0d,$a2,$0d,
|
|
$a4,$0d,$a6,$0d,$a8,$0d,$aa,$0d,$ac,$0d,
|
|
$ae,$0d,$b0,$0d,$b2,$0d,$b4,$0d,$b6,$0d,
|
|
$b8,$0d,$ba,$0d,$bc,$0d,$be,$0d,$c0,$0d,
|
|
$c2,$0d,$c4,$0d,$c6,$0d,$c8,$0d,$ca,$0d,
|
|
$cc,$0d,$ce,$0d,$d0,$0d,$d2,$0d,$d4,$0d,
|
|
$d6,$0d,$d8,$0d,$da,$0d,$dc,$0d,$de,$0d,
|
|
$e0,$0d,$e2,$0d,$e4,$0d,$e6,$0d,$e8,$0d,
|
|
$ea,$0d,$ec,$0d,$0c,$0e,$26,$0e,$48,$0e,
|
|
$64,$0e,$88,$0e,$92,$0e,$a6,$0e,$b4,$0e,
|
|
$d0,$0e,$ee,$0e,$02,$0f,$16,$0f,$26,$0f,
|
|
$3c,$0f,$58,$0f,$6c,$0f,$6c,$0f,$6c,$0f,
|
|
$6c,$0f,$6c,$0f,$6c,$0f,$6c,$0f,$6c,$0f,
|
|
$6c,$0f,$6c,$0f,$6c,$0f,$6c,$0f,$6c,$0f,
|
|
$6c,$0f,$6c,$0f,$6c,$0f,$6c,$0f,$10,$80,
|
|
$05,$95,$00,$72,$00,$fb,$ff,$7f,$01,$7f,
|
|
$01,$01,$ff,$01,$05,$fe,$05,$95,$ff,$7f,
|
|
$00,$7a,$01,$86,$ff,$7a,$01,$87,$01,$7f,
|
|
$fe,$7a,$0a,$87,$ff,$7f,$00,$7a,$01,$86,
|
|
$ff,$7a,$01,$87,$01,$7f,$fe,$7a,$05,$f2,
|
|
$0b,$95,$f9,$64,$0d,$9c,$f9,$64,$fa,$91,
|
|
$0e,$00,$f1,$fa,$0e,$00,$04,$fc,$08,$99,
|
|
$00,$63,$04,$9d,$00,$63,$04,$96,$ff,$7f,
|
|
$01,$7f,$01,$01,$00,$01,$fe,$02,$fd,$01,
|
|
$fc,$00,$fd,$7f,$fe,$7e,$00,$7e,$01,$7e,
|
|
$01,$7f,$02,$7f,$06,$7e,$02,$7f,$02,$7e,
|
|
$f2,$89,$02,$7e,$02,$7f,$06,$7e,$02,$7f,
|
|
$01,$7f,$01,$7e,$00,$7c,$fe,$7e,$fd,$7f,
|
|
$fc,$00,$fd,$01,$fe,$02,$00,$01,$01,$01,
|
|
$01,$7f,$ff,$7f,$10,$fd,$15,$95,$ee,$6b,
|
|
$05,$95,$02,$7e,$00,$7e,$ff,$7e,$fe,$7f,
|
|
$fe,$00,$fe,$02,$00,$02,$01,$02,$02,$01,
|
|
$02,$00,$02,$7f,$03,$7f,$03,$00,$03,$01,
|
|
$02,$01,$fc,$f2,$fe,$7f,$ff,$7e,$00,$7e,
|
|
$02,$7e,$02,$00,$02,$01,$01,$02,$00,$02,
|
|
$fe,$02,$fe,$00,$07,$f9,$15,$8d,$ff,$7f,
|
|
$01,$7f,$01,$01,$00,$01,$ff,$01,$ff,$00,
|
|
$ff,$7f,$ff,$7e,$fe,$7b,$fe,$7d,$fe,$7e,
|
|
$fe,$7f,$fd,$00,$fd,$01,$ff,$02,$00,$03,
|
|
$01,$02,$06,$04,$02,$02,$01,$02,$00,$02,
|
|
$ff,$02,$fe,$01,$fe,$7f,$ff,$7e,$00,$7e,
|
|
$01,$7d,$02,$7d,$05,$79,$02,$7e,$03,$7f,
|
|
$01,$00,$01,$01,$00,$01,$f1,$fe,$fe,$01,
|
|
$ff,$02,$00,$03,$01,$02,$02,$02,$00,$86,
|
|
$01,$7e,$08,$75,$02,$7e,$02,$7f,$05,$80,
|
|
$05,$93,$ff,$01,$01,$01,$01,$7f,$00,$7e,
|
|
$ff,$7e,$ff,$7f,$06,$f1,$0b,$99,$fe,$7e,
|
|
$fe,$7d,$fe,$7c,$ff,$7b,$00,$7c,$01,$7b,
|
|
$02,$7c,$02,$7d,$02,$7e,$fe,$9e,$fe,$7c,
|
|
$ff,$7d,$ff,$7b,$00,$7c,$01,$7b,$01,$7d,
|
|
$02,$7c,$05,$85,$03,$99,$02,$7e,$02,$7d,
|
|
$02,$7c,$01,$7b,$00,$7c,$ff,$7b,$fe,$7c,
|
|
$fe,$7d,$fe,$7e,$02,$9e,$02,$7c,$01,$7d,
|
|
$01,$7b,$00,$7c,$ff,$7b,$ff,$7d,$fe,$7c,
|
|
$09,$85,$08,$95,$00,$74,$fb,$89,$0a,$7a,
|
|
$00,$86,$f6,$7a,$0d,$f4,$0d,$92,$00,$6e,
|
|
$f7,$89,$12,$00,$04,$f7,$06,$81,$ff,$7f,
|
|
$ff,$01,$01,$01,$01,$7f,$00,$7e,$ff,$7e,
|
|
$ff,$7f,$06,$84,$04,$89,$12,$00,$04,$f7,
|
|
$05,$82,$ff,$7f,$01,$7f,$01,$01,$ff,$01,
|
|
$05,$fe,$00,$fd,$0e,$18,$00,$eb,$09,$95,
|
|
$fd,$7f,$fe,$7d,$ff,$7b,$00,$7d,$01,$7b,
|
|
$02,$7d,$03,$7f,$02,$00,$03,$01,$02,$03,
|
|
$01,$05,$00,$03,$ff,$05,$fe,$03,$fd,$01,
|
|
$fe,$00,$0b,$eb,$06,$91,$02,$01,$03,$03,
|
|
$00,$6b,$09,$80,$04,$90,$00,$01,$01,$02,
|
|
$01,$01,$02,$01,$04,$00,$02,$7f,$01,$7f,
|
|
$01,$7e,$00,$7e,$ff,$7e,$fe,$7d,$f6,$76,
|
|
$0e,$00,$03,$80,$05,$95,$0b,$00,$fa,$78,
|
|
$03,$00,$02,$7f,$01,$7f,$01,$7d,$00,$7e,
|
|
$ff,$7d,$fe,$7e,$fd,$7f,$fd,$00,$fd,$01,
|
|
$ff,$01,$ff,$02,$11,$fc,$0d,$95,$f6,$72,
|
|
$0f,$00,$fb,$8e,$00,$6b,$07,$80,$0f,$95,
|
|
$f6,$00,$ff,$77,$01,$01,$03,$01,$03,$00,
|
|
$03,$7f,$02,$7e,$01,$7d,$00,$7e,$ff,$7d,
|
|
$fe,$7e,$fd,$7f,$fd,$00,$fd,$01,$ff,$01,
|
|
$ff,$02,$11,$fc,$10,$92,$ff,$02,$fd,$01,
|
|
$fe,$00,$fd,$7f,$fe,$7d,$ff,$7b,$00,$7b,
|
|
$01,$7c,$02,$7e,$03,$7f,$01,$00,$03,$01,
|
|
$02,$02,$01,$03,$00,$01,$ff,$03,$fe,$02,
|
|
$fd,$01,$ff,$00,$fd,$7f,$fe,$7e,$ff,$7d,
|
|
$10,$f9,$11,$95,$f6,$6b,$fc,$95,$0e,$00,
|
|
$03,$eb,$08,$95,$fd,$7f,$ff,$7e,$00,$7e,
|
|
$01,$7e,$02,$7f,$04,$7f,$03,$7f,$02,$7e,
|
|
$01,$7e,$00,$7d,$ff,$7e,$ff,$7f,$fd,$7f,
|
|
$fc,$00,$fd,$01,$ff,$01,$ff,$02,$00,$03,
|
|
$01,$02,$02,$02,$03,$01,$04,$01,$02,$01,
|
|
$01,$02,$00,$02,$ff,$02,$fd,$01,$fc,$00,
|
|
$0c,$eb,$10,$8e,$ff,$7d,$fe,$7e,$fd,$7f,
|
|
$ff,$00,$fd,$01,$fe,$02,$ff,$03,$00,$01,
|
|
$01,$03,$02,$02,$03,$01,$01,$00,$03,$7f,
|
|
$02,$7e,$01,$7c,$00,$7b,$ff,$7b,$fe,$7d,
|
|
$fd,$7f,$fe,$00,$fd,$01,$ff,$02,$10,$fd,
|
|
$05,$8e,$ff,$7f,$01,$7f,$01,$01,$ff,$01,
|
|
$00,$f4,$ff,$7f,$01,$7f,$01,$01,$ff,$01,
|
|
$05,$fe,$05,$8e,$ff,$7f,$01,$7f,$01,$01,
|
|
$ff,$01,$01,$f3,$ff,$7f,$ff,$01,$01,$01,
|
|
$01,$7f,$00,$7e,$ff,$7e,$ff,$7f,$06,$84,
|
|
$14,$92,$f0,$77,$10,$77,$04,$80,$04,$8c,
|
|
$12,$00,$ee,$fa,$12,$00,$04,$fa,$04,$92,
|
|
$10,$77,$f0,$77,$14,$80,$03,$90,$00,$01,
|
|
$01,$02,$01,$01,$02,$01,$04,$00,$02,$7f,
|
|
$01,$7f,$01,$7e,$00,$7e,$ff,$7e,$ff,$7f,
|
|
$fc,$7e,$00,$7d,$00,$fb,$ff,$7f,$01,$7f,
|
|
$01,$01,$ff,$01,$09,$fe,$12,$8d,$ff,$02,
|
|
$fe,$01,$fd,$00,$fe,$7f,$ff,$7f,$ff,$7d,
|
|
$00,$7d,$01,$7e,$02,$7f,$03,$00,$02,$01,
|
|
$01,$02,$fb,$88,$fe,$7e,$ff,$7d,$00,$7d,
|
|
$01,$7e,$01,$7f,$07,$8b,$ff,$78,$00,$7e,
|
|
$02,$7f,$02,$00,$02,$02,$01,$03,$00,$02,
|
|
$ff,$03,$ff,$02,$fe,$02,$fe,$01,$fd,$01,
|
|
$fd,$00,$fd,$7f,$fe,$7f,$fe,$7e,$ff,$7e,
|
|
$ff,$7d,$00,$7d,$01,$7d,$01,$7e,$02,$7e,
|
|
$02,$7f,$03,$7f,$03,$00,$03,$01,$02,$01,
|
|
$01,$01,$fe,$8d,$ff,$78,$00,$7e,$01,$7f,
|
|
$08,$fb,$09,$95,$f8,$6b,$08,$95,$08,$6b,
|
|
$f3,$87,$0a,$00,$04,$f9,$04,$95,$00,$6b,
|
|
$00,$95,$09,$00,$03,$7f,$01,$7f,$01,$7e,
|
|
$00,$7e,$ff,$7e,$ff,$7f,$fd,$7f,$f7,$80,
|
|
$09,$00,$03,$7f,$01,$7f,$01,$7e,$00,$7d,
|
|
$ff,$7e,$ff,$7f,$fd,$7f,$f7,$00,$11,$80,
|
|
$12,$90,$ff,$02,$fe,$02,$fe,$01,$fc,$00,
|
|
$fe,$7f,$fe,$7e,$ff,$7e,$ff,$7d,$00,$7b,
|
|
$01,$7d,$01,$7e,$02,$7e,$02,$7f,$04,$00,
|
|
$02,$01,$02,$02,$01,$02,$03,$fb,$04,$95,
|
|
$00,$6b,$00,$95,$07,$00,$03,$7f,$02,$7e,
|
|
$01,$7e,$01,$7d,$00,$7b,$ff,$7d,$ff,$7e,
|
|
$fe,$7e,$fd,$7f,$f9,$00,$11,$80,$04,$95,
|
|
$00,$6b,$00,$95,$0d,$00,$f3,$f6,$08,$00,
|
|
$f8,$f5,$0d,$00,$02,$80,$04,$95,$00,$6b,
|
|
$00,$95,$0d,$00,$f3,$f6,$08,$00,$06,$f5,
|
|
$12,$90,$ff,$02,$fe,$02,$fe,$01,$fc,$00,
|
|
$fe,$7f,$fe,$7e,$ff,$7e,$ff,$7d,$00,$7b,
|
|
$01,$7d,$01,$7e,$02,$7e,$02,$7f,$04,$00,
|
|
$02,$01,$02,$02,$01,$02,$00,$03,$fb,$80,
|
|
$05,$00,$03,$f8,$04,$95,$00,$6b,$0e,$95,
|
|
$00,$6b,$f2,$8b,$0e,$00,$04,$f5,$04,$95,
|
|
$00,$6b,$04,$80,$0c,$95,$00,$70,$ff,$7d,
|
|
$ff,$7f,$fe,$7f,$fe,$00,$fe,$01,$ff,$01,
|
|
$ff,$03,$00,$02,$0e,$f9,$04,$95,$00,$6b,
|
|
$0e,$95,$f2,$72,$05,$85,$09,$74,$03,$80,
|
|
$04,$95,$00,$6b,$00,$80,$0c,$00,$01,$80,
|
|
$04,$95,$00,$6b,$00,$95,$08,$6b,$08,$95,
|
|
$f8,$6b,$08,$95,$00,$6b,$04,$80,$04,$95,
|
|
$00,$6b,$00,$95,$0e,$6b,$00,$95,$00,$6b,
|
|
$04,$80,$09,$95,$fe,$7f,$fe,$7e,$ff,$7e,
|
|
$ff,$7d,$00,$7b,$01,$7d,$01,$7e,$02,$7e,
|
|
$02,$7f,$04,$00,$02,$01,$02,$02,$01,$02,
|
|
$01,$03,$00,$05,$ff,$03,$ff,$02,$fe,$02,
|
|
$fe,$01,$fc,$00,$0d,$eb,$04,$95,$00,$6b,
|
|
$00,$95,$09,$00,$03,$7f,$01,$7f,$01,$7e,
|
|
$00,$7d,$ff,$7e,$ff,$7f,$fd,$7f,$f7,$00,
|
|
$11,$f6,$09,$95,$fe,$7f,$fe,$7e,$ff,$7e,
|
|
$ff,$7d,$00,$7b,$01,$7d,$01,$7e,$02,$7e,
|
|
$02,$7f,$04,$00,$02,$01,$02,$02,$01,$02,
|
|
$01,$03,$00,$05,$ff,$03,$ff,$02,$fe,$02,
|
|
$fe,$01,$fc,$00,$03,$ef,$06,$7a,$04,$82,
|
|
$04,$95,$00,$6b,$00,$95,$09,$00,$03,$7f,
|
|
$01,$7f,$01,$7e,$00,$7e,$ff,$7e,$ff,$7f,
|
|
$fd,$7f,$f7,$00,$07,$80,$07,$75,$03,$80,
|
|
$11,$92,$fe,$02,$fd,$01,$fc,$00,$fd,$7f,
|
|
$fe,$7e,$00,$7e,$01,$7e,$01,$7f,$02,$7f,
|
|
$06,$7e,$02,$7f,$01,$7f,$01,$7e,$00,$7d,
|
|
$fe,$7e,$fd,$7f,$fc,$00,$fd,$01,$fe,$02,
|
|
$11,$fd,$08,$95,$00,$6b,$f9,$95,$0e,$00,
|
|
$01,$eb,$04,$95,$00,$71,$01,$7d,$02,$7e,
|
|
$03,$7f,$02,$00,$03,$01,$02,$02,$01,$03,
|
|
$00,$0f,$04,$eb,$01,$95,$08,$6b,$08,$95,
|
|
$f8,$6b,$09,$80,$02,$95,$05,$6b,$05,$95,
|
|
$fb,$6b,$05,$95,$05,$6b,$05,$95,$fb,$6b,
|
|
$07,$80,$03,$95,$0e,$6b,$00,$95,$f2,$6b,
|
|
$11,$80,$01,$95,$08,$76,$00,$75,$08,$95,
|
|
$f8,$76,$09,$f5,$11,$95,$f2,$6b,$00,$95,
|
|
$0e,$00,$f2,$eb,$0e,$00,$03,$80,$03,$93,
|
|
$00,$6c,$01,$94,$00,$6c,$ff,$94,$05,$00,
|
|
$fb,$ec,$05,$00,$02,$81,$00,$95,$0e,$68,
|
|
$00,$83,$06,$93,$00,$6c,$01,$94,$00,$6c,
|
|
$fb,$94,$05,$00,$fb,$ec,$05,$00,$03,$81,
|
|
$03,$87,$08,$05,$08,$7b,$f0,$80,$08,$04,
|
|
$08,$7c,$03,$f9,$01,$80,$10,$00,$01,$80,
|
|
$06,$95,$ff,$7f,$ff,$7e,$00,$7e,$01,$7f,
|
|
$01,$01,$ff,$01,$05,$ef,$0f,$8e,$00,$72,
|
|
$00,$8b,$fe,$02,$fe,$01,$fd,$00,$fe,$7f,
|
|
$fe,$7e,$ff,$7d,$00,$7e,$01,$7d,$02,$7e,
|
|
$02,$7f,$03,$00,$02,$01,$02,$02,$04,$fd,
|
|
$04,$95,$00,$6b,$00,$8b,$02,$02,$02,$01,
|
|
$03,$00,$02,$7f,$02,$7e,$01,$7d,$00,$7e,
|
|
$ff,$7d,$fe,$7e,$fe,$7f,$fd,$00,$fe,$01,
|
|
$fe,$02,$0f,$fd,$0f,$8b,$fe,$02,$fe,$01,
|
|
$fd,$00,$fe,$7f,$fe,$7e,$ff,$7d,$00,$7e,
|
|
$01,$7d,$02,$7e,$02,$7f,$03,$00,$02,$01,
|
|
$02,$02,$03,$fd,$0f,$95,$00,$6b,$00,$8b,
|
|
$fe,$02,$fe,$01,$fd,$00,$fe,$7f,$fe,$7e,
|
|
$ff,$7d,$00,$7e,$01,$7d,$02,$7e,$02,$7f,
|
|
$03,$00,$02,$01,$02,$02,$04,$fd,$03,$88,
|
|
$0c,$00,$00,$02,$ff,$02,$ff,$01,$fe,$01,
|
|
$fd,$00,$fe,$7f,$fe,$7e,$ff,$7d,$00,$7e,
|
|
$01,$7d,$02,$7e,$02,$7f,$03,$00,$02,$01,
|
|
$02,$02,$03,$fd,$0a,$95,$fe,$00,$fe,$7f,
|
|
$ff,$7d,$00,$6f,$fd,$8e,$07,$00,$03,$f2,
|
|
$0f,$8e,$00,$70,$ff,$7d,$ff,$7f,$fe,$7f,
|
|
$fd,$00,$fe,$01,$09,$91,$fe,$02,$fe,$01,
|
|
$fd,$00,$fe,$7f,$fe,$7e,$ff,$7d,$00,$7e,
|
|
$01,$7d,$02,$7e,$02,$7f,$03,$00,$02,$01,
|
|
$02,$02,$04,$fd,$04,$95,$00,$6b,$00,$8a,
|
|
$03,$03,$02,$01,$03,$00,$02,$7f,$01,$7d,
|
|
$00,$76,$04,$80,$03,$95,$01,$7f,$01,$01,
|
|
$ff,$01,$ff,$7f,$01,$f9,$00,$72,$04,$80,
|
|
$05,$95,$01,$7f,$01,$01,$ff,$01,$ff,$7f,
|
|
$01,$f9,$00,$6f,$ff,$7d,$fe,$7f,$fe,$00,
|
|
$09,$87,$04,$95,$00,$6b,$0a,$8e,$f6,$76,
|
|
$04,$84,$07,$78,$02,$80,$04,$95,$00,$6b,
|
|
$04,$80,$04,$8e,$00,$72,$00,$8a,$03,$03,
|
|
$02,$01,$03,$00,$02,$7f,$01,$7d,$00,$76,
|
|
$00,$8a,$03,$03,$02,$01,$03,$00,$02,$7f,
|
|
$01,$7d,$00,$76,$04,$80,$04,$8e,$00,$72,
|
|
$00,$8a,$03,$03,$02,$01,$03,$00,$02,$7f,
|
|
$01,$7d,$00,$76,$04,$80,$08,$8e,$fe,$7f,
|
|
$fe,$7e,$ff,$7d,$00,$7e,$01,$7d,$02,$7e,
|
|
$02,$7f,$03,$00,$02,$01,$02,$02,$01,$03,
|
|
$00,$02,$ff,$03,$fe,$02,$fe,$01,$fd,$00,
|
|
$0b,$f2,$04,$8e,$00,$6b,$00,$92,$02,$02,
|
|
$02,$01,$03,$00,$02,$7f,$02,$7e,$01,$7d,
|
|
$00,$7e,$ff,$7d,$fe,$7e,$fe,$7f,$fd,$00,
|
|
$fe,$01,$fe,$02,$0f,$fd,$0f,$8e,$00,$6b,
|
|
$00,$92,$fe,$02,$fe,$01,$fd,$00,$fe,$7f,
|
|
$fe,$7e,$ff,$7d,$00,$7e,$01,$7d,$02,$7e,
|
|
$02,$7f,$03,$00,$02,$01,$02,$02,$04,$fd,
|
|
$04,$8e,$00,$72,$00,$88,$01,$03,$02,$02,
|
|
$02,$01,$03,$00,$01,$f2,$0e,$8b,$ff,$02,
|
|
$fd,$01,$fd,$00,$fd,$7f,$ff,$7e,$01,$7e,
|
|
$02,$7f,$05,$7f,$02,$7f,$01,$7e,$00,$7f,
|
|
$ff,$7e,$fd,$7f,$fd,$00,$fd,$01,$ff,$02,
|
|
$0e,$fd,$05,$95,$00,$6f,$01,$7d,$02,$7f,
|
|
$02,$00,$f8,$8e,$07,$00,$03,$f2,$04,$8e,
|
|
$00,$76,$01,$7d,$02,$7f,$03,$00,$02,$01,
|
|
$03,$03,$00,$8a,$00,$72,$04,$80,$02,$8e,
|
|
$06,$72,$06,$8e,$fa,$72,$08,$80,$03,$8e,
|
|
$04,$72,$04,$8e,$fc,$72,$04,$8e,$04,$72,
|
|
$04,$8e,$fc,$72,$07,$80,$03,$8e,$0b,$72,
|
|
$00,$8e,$f5,$72,$0e,$80,$02,$8e,$06,$72,
|
|
$06,$8e,$fa,$72,$fe,$7c,$fe,$7e,$fe,$7f,
|
|
$ff,$00,$0f,$87,$0e,$8e,$f5,$72,$00,$8e,
|
|
$0b,$00,$f5,$f2,$0b,$00,$03,$80,$09,$99,
|
|
$fe,$7f,$ff,$7f,$ff,$7e,$00,$7e,$01,$7e,
|
|
$01,$7f,$01,$7e,$00,$7e,$fe,$7e,$01,$8e,
|
|
$ff,$7e,$00,$7e,$01,$7e,$01,$7f,$01,$7e,
|
|
$00,$7e,$ff,$7e,$fc,$7e,$04,$7e,$01,$7e,
|
|
$00,$7e,$ff,$7e,$ff,$7f,$ff,$7e,$00,$7e,
|
|
$01,$7e,$ff,$8e,$02,$7e,$00,$7e,$ff,$7e,
|
|
$ff,$7f,$ff,$7e,$00,$7e,$01,$7e,$01,$7f,
|
|
$02,$7f,$05,$87,$04,$95,$00,$77,$00,$fd,
|
|
$00,$77,$04,$80,$05,$99,$02,$7f,$01,$7f,
|
|
$01,$7e,$00,$7e,$ff,$7e,$ff,$7f,$ff,$7e,
|
|
$00,$7e,$02,$7e,$ff,$8e,$01,$7e,$00,$7e,
|
|
$ff,$7e,$ff,$7f,$ff,$7e,$00,$7e,$01,$7e,
|
|
$04,$7e,$fc,$7e,$ff,$7e,$00,$7e,$01,$7e,
|
|
$01,$7f,$01,$7e,$00,$7e,$ff,$7e,$01,$8e,
|
|
$fe,$7e,$00,$7e,$01,$7e,$01,$7f,$01,$7e,
|
|
$00,$7e,$ff,$7e,$ff,$7f,$fe,$7f,$09,$87,
|
|
$03,$86,$00,$02,$01,$03,$02,$01,$02,$00,
|
|
$02,$7f,$04,$7d,$02,$7f,$02,$00,$02,$01,
|
|
$01,$02,$ee,$fe,$01,$02,$02,$01,$02,$00,
|
|
$02,$7f,$04,$7d,$02,$7f,$02,$00,$02,$01,
|
|
$01,$03,$00,$02,$03,$f4,$10,$80,$03,$80,
|
|
$07,$15,$08,$6b,$fe,$85,$f5,$00,$10,$fb,
|
|
$0d,$95,$f6,$00,$00,$6b,$0a,$00,$02,$02,
|
|
$00,$08,$fe,$02,$f6,$00,$0e,$f4,$03,$80,
|
|
$00,$15,$0a,$00,$02,$7e,$00,$7e,$00,$7d,
|
|
$00,$7e,$fe,$7f,$f6,$00,$0a,$80,$02,$7e,
|
|
$01,$7e,$00,$7d,$ff,$7d,$fe,$7f,$f6,$00,
|
|
$10,$80,$03,$80,$00,$15,$0c,$00,$ff,$7e,
|
|
$03,$ed,$03,$fd,$00,$03,$02,$00,$00,$12,
|
|
$02,$03,$0a,$00,$00,$6b,$02,$00,$00,$7d,
|
|
$fe,$83,$f4,$00,$11,$80,$0f,$80,$f4,$00,
|
|
$00,$15,$0c,$00,$ff,$f6,$f5,$00,$0f,$f5,
|
|
$04,$95,$07,$76,$00,$0a,$07,$80,$f9,$76,
|
|
$00,$75,$f8,$80,$07,$0c,$09,$f4,$f9,$0c,
|
|
$09,$f4,$03,$92,$02,$03,$07,$00,$03,$7d,
|
|
$00,$7b,$fc,$7e,$04,$7d,$00,$7a,$fd,$7e,
|
|
$f9,$00,$fe,$02,$06,$89,$02,$00,$06,$f5,
|
|
$03,$95,$00,$6b,$0c,$15,$00,$6b,$02,$80,
|
|
$03,$95,$00,$6b,$0c,$15,$00,$6b,$f8,$96,
|
|
$03,$00,$07,$ea,$03,$80,$00,$15,$0c,$80,
|
|
$f7,$76,$fd,$00,$03,$80,$0a,$75,$03,$80,
|
|
$03,$80,$07,$13,$02,$02,$03,$00,$00,$6b,
|
|
$02,$80,$03,$80,$00,$15,$09,$6b,$09,$15,
|
|
$00,$6b,$03,$80,$03,$80,$00,$15,$00,$f6,
|
|
$0d,$00,$00,$8a,$00,$6b,$03,$80,$07,$80,
|
|
$fd,$00,$ff,$03,$00,$04,$00,$07,$00,$04,
|
|
$01,$02,$03,$01,$06,$00,$03,$7f,$01,$7e,
|
|
$01,$7c,$00,$79,$ff,$7c,$ff,$7d,$fd,$00,
|
|
$fa,$00,$0e,$80,$03,$80,$00,$15,$0c,$00,
|
|
$00,$6b,$02,$80,$03,$80,$00,$15,$0a,$00,
|
|
$02,$7f,$01,$7d,$00,$7b,$ff,$7e,$fe,$7f,
|
|
$f6,$00,$10,$f7,$11,$8f,$ff,$03,$ff,$02,
|
|
$fe,$01,$fa,$00,$fd,$7f,$ff,$7e,$00,$7c,
|
|
$00,$79,$00,$7b,$01,$7e,$03,$00,$06,$00,
|
|
$02,$00,$01,$03,$01,$02,$03,$fb,$03,$95,
|
|
$0c,$00,$fa,$80,$00,$6b,$09,$80,$03,$95,
|
|
$00,$77,$06,$7a,$06,$06,$00,$09,$fa,$f1,
|
|
$fa,$7a,$0e,$80,$03,$87,$00,$0b,$02,$02,
|
|
$03,$00,$02,$7e,$01,$02,$04,$00,$02,$7e,
|
|
$00,$75,$fe,$7e,$fc,$00,$ff,$01,$fe,$7f,
|
|
$fd,$00,$fe,$02,$07,$8e,$00,$6b,$09,$80,
|
|
$03,$80,$0e,$15,$f2,$80,$0e,$6b,$03,$80,
|
|
$03,$95,$00,$6b,$0e,$00,$00,$7d,$fe,$98,
|
|
$00,$6b,$05,$80,$03,$95,$00,$75,$02,$7d,
|
|
$0a,$00,$00,$8e,$00,$6b,$02,$80,$03,$95,
|
|
$00,$6b,$10,$00,$00,$15,$f8,$80,$00,$6b,
|
|
$0a,$80,$03,$95,$00,$6b,$10,$00,$00,$15,
|
|
$f8,$80,$00,$6b,$0a,$00,$00,$7d,$02,$83,
|
|
$10,$80,$03,$95,$00,$6b,$09,$00,$03,$02,
|
|
$00,$08,$fd,$02,$f7,$00,$0e,$89,$00,$6b,
|
|
$03,$80,$03,$95,$00,$6b,$09,$00,$03,$02,
|
|
$00,$08,$fd,$02,$f7,$00,$0e,$f4,$03,$92,
|
|
$02,$03,$07,$00,$03,$7d,$00,$70,$fd,$7e,
|
|
$f9,$00,$fe,$02,$03,$89,$09,$00,$02,$f5,
|
|
$03,$80,$00,$15,$00,$f5,$07,$00,$00,$08,
|
|
$02,$03,$06,$00,$02,$7d,$00,$70,$fe,$7e,
|
|
$fa,$00,$fe,$02,$00,$08,$0c,$f6,$0f,$80,
|
|
$00,$15,$f6,$00,$fe,$7d,$00,$79,$02,$7e,
|
|
$0a,$00,$f4,$f7,$07,$09,$07,$f7,$03,$8c,
|
|
$01,$02,$01,$01,$05,$00,$02,$7f,$01,$7e,
|
|
$00,$74,$00,$86,$ff,$01,$fe,$01,$fb,$00,
|
|
$ff,$7f,$ff,$7f,$00,$7c,$01,$7e,$01,$00,
|
|
$05,$00,$02,$00,$01,$02,$03,$fe,$04,$8e,
|
|
$02,$01,$04,$00,$02,$7f,$01,$7e,$00,$77,
|
|
$ff,$7e,$fe,$7f,$fc,$00,$fe,$01,$ff,$02,
|
|
$00,$09,$01,$02,$02,$02,$03,$01,$02,$01,
|
|
$01,$01,$01,$02,$02,$eb,$03,$80,$00,$15,
|
|
$03,$00,$02,$7e,$00,$7b,$fe,$7e,$fd,$00,
|
|
$03,$80,$04,$00,$03,$7e,$00,$78,$fd,$7e,
|
|
$f9,$00,$0c,$80,$03,$8c,$02,$02,$02,$01,
|
|
$03,$00,$02,$7f,$01,$7d,$fe,$7e,$f9,$7d,
|
|
$ff,$7e,$00,$7d,$03,$7f,$02,$00,$03,$01,
|
|
$02,$01,$02,$fe,$0d,$8c,$ff,$02,$fe,$01,
|
|
$fc,$00,$fe,$7f,$ff,$7e,$00,$77,$01,$7e,
|
|
$02,$7f,$04,$00,$02,$01,$01,$02,$00,$0f,
|
|
$ff,$02,$fe,$01,$f9,$00,$0c,$eb,$03,$88,
|
|
$0a,$00,$00,$02,$00,$03,$fe,$02,$fa,$00,
|
|
$ff,$7e,$ff,$7d,$00,$7b,$01,$7c,$01,$7f,
|
|
$06,$00,$02,$02,$03,$fe,$03,$8f,$06,$77,
|
|
$06,$09,$fa,$80,$00,$71,$ff,$87,$fb,$79,
|
|
$07,$87,$05,$79,$02,$80,$03,$8d,$02,$02,
|
|
$06,$00,$02,$7e,$00,$7d,$fc,$7d,$04,$7e,
|
|
$00,$7d,$fe,$7e,$fa,$00,$fe,$02,$04,$85,
|
|
$02,$00,$06,$f9,$03,$8f,$00,$73,$01,$7e,
|
|
$07,$00,$02,$02,$00,$0d,$00,$f3,$01,$7e,
|
|
$03,$80,$03,$8f,$00,$73,$01,$7e,$07,$00,
|
|
$02,$02,$00,$0d,$00,$f3,$01,$7e,$f8,$90,
|
|
$03,$00,$08,$f0,$03,$80,$00,$15,$00,$f3,
|
|
$02,$00,$06,$07,$fa,$f9,$07,$78,$03,$80,
|
|
$03,$80,$04,$0c,$02,$03,$04,$00,$00,$71,
|
|
$02,$80,$03,$80,$00,$0f,$06,$77,$06,$09,
|
|
$00,$71,$02,$80,$03,$80,$00,$0f,$0a,$f1,
|
|
$00,$0f,$f6,$f8,$0a,$00,$02,$f9,$05,$80,
|
|
$ff,$01,$ff,$04,$00,$05,$01,$03,$01,$02,
|
|
$06,$00,$02,$7e,$00,$7d,$00,$7b,$00,$7c,
|
|
$fe,$7f,$fa,$00,$0b,$80,$03,$80,$00,$0f,
|
|
$00,$fb,$01,$03,$01,$02,$05,$00,$02,$7e,
|
|
$01,$7d,$00,$76,$03,$80,$10,$80,$10,$80,
|
|
$10,$80,$10,$80,$10,$80,$10,$80,$10,$80,
|
|
$10,$80,$10,$80,$10,$80,$10,$80,$10,$80,
|
|
$10,$80,$10,$80,$10,$80,$10,$80,$10,$80,
|
|
$10,$80,$10,$80,$10,$80,$10,$80,$10,$80,
|
|
$10,$80,$10,$80,$10,$80,$10,$80,$10,$80,
|
|
$10,$80,$10,$80,$10,$80,$10,$80,$10,$80,
|
|
$10,$80,$10,$80,$10,$80,$10,$80,$10,$80,
|
|
$10,$80,$10,$80,$10,$80,$10,$80,$10,$80,
|
|
$10,$80,$10,$80,$10,$80,$10,$80,$10,$80,
|
|
$10,$80,$0a,$8f,$02,$7f,$01,$7e,$00,$76,
|
|
$ff,$7f,$fe,$7f,$fb,$00,$ff,$01,$ff,$01,
|
|
$00,$0a,$01,$02,$01,$01,$05,$00,$f9,$80,
|
|
$00,$6b,$0c,$86,$0d,$8a,$ff,$03,$fe,$02,
|
|
$fb,$00,$ff,$7e,$ff,$7d,$00,$7b,$01,$7c,
|
|
$01,$7f,$05,$00,$02,$01,$01,$03,$03,$fc,
|
|
$03,$80,$00,$0f,$00,$fb,$01,$03,$01,$02,
|
|
$04,$00,$01,$7e,$01,$7d,$00,$76,$00,$8a,
|
|
$01,$03,$02,$02,$03,$00,$02,$7e,$01,$7d,
|
|
$00,$76,$03,$80,$03,$8f,$00,$74,$01,$7e,
|
|
$02,$7f,$04,$00,$02,$01,$01,$01,$00,$8d,
|
|
$00,$6e,$ff,$7e,$fe,$7f,$fb,$00,$fe,$01,
|
|
$0c,$85,$03,$8d,$01,$02,$03,$00,$02,$7e,
|
|
$01,$02,$03,$00,$02,$7e,$00,$74,$fe,$7f,
|
|
$fd,$00,$ff,$01,$fe,$7f,$fd,$00,$ff,$01,
|
|
$00,$0c,$06,$82,$00,$6b,$08,$86,$03,$80,
|
|
$0a,$0f,$f6,$80,$0a,$71,$03,$80,$03,$8f,
|
|
$00,$73,$01,$7e,$07,$00,$02,$02,$00,$0d,
|
|
$00,$f3,$01,$7e,$00,$7e,$03,$82,$03,$8f,
|
|
$00,$79,$02,$7e,$08,$00,$00,$89,$00,$71,
|
|
$02,$80,$03,$8f,$00,$73,$01,$7e,$03,$00,
|
|
$02,$02,$00,$0d,$00,$f3,$01,$7e,$03,$00,
|
|
$02,$02,$00,$0d,$00,$f3,$01,$7e,$03,$80,
|
|
$03,$8f,$00,$73,$01,$7e,$03,$00,$02,$02,
|
|
$00,$0d,$00,$f3,$01,$7e,$03,$00,$02,$02,
|
|
$00,$0d,$00,$f3,$01,$7e,$00,$7e,$03,$82,
|
|
$03,$8d,$00,$02,$02,$00,$00,$71,$08,$00,
|
|
$02,$02,$00,$06,$fe,$02,$f8,$00,$0c,$f6,
|
|
$03,$8f,$00,$71,$07,$00,$02,$02,$00,$06,
|
|
$fe,$02,$f9,$00,$0c,$85,$00,$71,$02,$80,
|
|
$03,$8f,$00,$71,$07,$00,$03,$02,$00,$06,
|
|
$fd,$02,$f9,$00,$0c,$f6,$03,$8d,$02,$02,
|
|
$06,$00,$02,$7e,$00,$75,$fe,$7e,$fa,$00,
|
|
$fe,$02,$04,$85,$06,$00,$02,$f9,$03,$80,
|
|
$00,$0f,$00,$f8,$04,$00,$00,$06,$02,$02,
|
|
$04,$00,$02,$7e,$00,$75,$fe,$7e,$fc,$00,
|
|
$fe,$02,$00,$05,$0a,$f9,$0d,$80,$00,$0f,
|
|
$f7,$00,$ff,$7e,$00,$7b,$01,$7e,$09,$00,
|
|
$f6,$fa,$04,$06,$08,$fa );
|
|
|
|
{ UNIT IMPLEMENTATION }
|
|
{ CONSTRUCT }
|
|
constructor gsv_text.Construct;
|
|
var
|
|
t : int;
|
|
|
|
begin
|
|
inherited Construct;
|
|
|
|
m_x :=0.0;
|
|
m_y :=0.0;
|
|
m_start_x :=0.0;
|
|
m_width :=10.0;
|
|
m_height :=0.0;
|
|
m_space :=0.0;
|
|
m_line_space :=0.0;
|
|
m_text :=@m_chr[0 ];
|
|
m_text_buf :=NIL;
|
|
m_buf_size :=0;
|
|
m_cur_chr :=@m_chr[0 ];
|
|
m_font :=@gsv_default_font[0 ];
|
|
m_loaded_font:=NIL;
|
|
m_loadfont_sz:=0;
|
|
m_status :=initial;
|
|
m_big_endian :=false;
|
|
m_flip :=false;
|
|
|
|
m_chr[0 ]:=0;
|
|
m_chr[1 ]:=0;
|
|
|
|
t:=1;
|
|
|
|
if byte(pointer(@t )^ ) = 0 then
|
|
m_big_endian:=true;
|
|
|
|
end;
|
|
|
|
{ DESTRUCT }
|
|
destructor gsv_text.Destruct;
|
|
begin
|
|
inherited Destruct;
|
|
|
|
if m_loaded_font <> NIL then
|
|
agg_freemem(m_loaded_font ,m_loadfont_sz );
|
|
|
|
if m_text_buf <> NIL then
|
|
agg_freemem(m_text_buf ,m_buf_size );
|
|
|
|
end;
|
|
|
|
{ FONT_ }
|
|
procedure gsv_text.font_;
|
|
begin
|
|
m_font:=font;
|
|
|
|
if m_font = NIL then
|
|
m_font:=m_loaded_font;
|
|
|
|
end;
|
|
|
|
{ FLIP_ }
|
|
procedure gsv_text.flip_;
|
|
begin
|
|
m_flip:=flip_y;
|
|
|
|
end;
|
|
|
|
{ LOAD_FONT_ }
|
|
procedure gsv_text.load_font_;
|
|
var
|
|
fd : file;
|
|
err : integer;
|
|
|
|
begin
|
|
if m_loaded_font <> NIL then
|
|
agg_freemem(m_loaded_font ,m_loadfont_sz );
|
|
|
|
{$I- }
|
|
err:=ioresult;
|
|
|
|
assignfile(fd ,_file_ );
|
|
reset (fd ,1 );
|
|
|
|
err:=ioresult;
|
|
|
|
if err = 0 then
|
|
begin
|
|
m_loadfont_sz:=filesize(fd );
|
|
|
|
if m_loadfont_sz > 0 then
|
|
begin
|
|
agg_getmem(m_loaded_font ,m_loadfont_sz );
|
|
blockread (fd ,m_loaded_font^ ,m_loadfont_sz );
|
|
|
|
m_font:=m_loaded_font;
|
|
|
|
end;
|
|
|
|
close(fd );
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
{ SIZE_ }
|
|
procedure gsv_text.size_;
|
|
begin
|
|
m_height:=height;
|
|
m_width :=width;
|
|
|
|
end;
|
|
|
|
{ SPACE_ }
|
|
procedure gsv_text.space_;
|
|
begin
|
|
m_space:=space;
|
|
|
|
end;
|
|
|
|
{ LINE_SPACE_ }
|
|
procedure gsv_text.line_space_;
|
|
begin
|
|
m_line_space:=line_space;
|
|
|
|
end;
|
|
|
|
{ START_POINT_ }
|
|
procedure gsv_text.start_point_;
|
|
begin
|
|
m_x:=x;
|
|
m_y:=y;
|
|
|
|
m_start_x:=x;
|
|
|
|
end;
|
|
|
|
{ TEXT_ }
|
|
procedure gsv_text.text_;
|
|
var
|
|
new_size : unsigned;
|
|
|
|
begin
|
|
if text = NIL then
|
|
begin
|
|
m_chr[0 ]:=0;
|
|
m_text :=@m_chr[0 ];
|
|
|
|
exit;
|
|
|
|
end;
|
|
|
|
new_size:=StrLen(text ) + 1;
|
|
|
|
if new_size > m_buf_size then
|
|
begin
|
|
if m_text_buf <> NIL then
|
|
agg_freemem(m_text_buf ,m_buf_size );
|
|
|
|
agg_getmem(m_text_buf ,new_size );
|
|
|
|
m_buf_size:=new_size;
|
|
|
|
end;
|
|
|
|
move(text^ ,m_text_buf^ ,new_size );
|
|
|
|
m_text:=m_text_buf;
|
|
|
|
end;
|
|
|
|
{ REWIND }
|
|
procedure gsv_text.rewind;
|
|
var
|
|
base_height : double;
|
|
|
|
begin
|
|
m_status:=initial;
|
|
|
|
if m_font = NIL then
|
|
exit;
|
|
|
|
m_indices:=m_font;
|
|
|
|
base_height:=_value(pointer(ptrcomp(m_indices ) + 4 * sizeof(int8u ) ) );
|
|
|
|
m_indices:=pointer(ptrcomp(m_indices ) + _value(m_indices ) );
|
|
m_glyphs :=pointer(ptrcomp(m_indices ) + 257 * 2 * sizeof(int8u ) );
|
|
|
|
m_h:= m_height / base_height;
|
|
|
|
if m_width = 0 then
|
|
m_w:=m_h
|
|
else
|
|
m_w:=m_width / base_height;
|
|
|
|
if m_flip then
|
|
m_h:=-m_h;
|
|
|
|
m_cur_chr:=m_text;
|
|
|
|
end;
|
|
|
|
{ VERTEX }
|
|
function gsv_text.vertex;
|
|
var
|
|
idx : unsigned;
|
|
|
|
yc ,yf : int8;
|
|
dx ,dy : int;
|
|
|
|
quit : boolean;
|
|
|
|
label
|
|
_nxch ,_strt ;
|
|
|
|
begin
|
|
quit:=false;
|
|
|
|
while not quit do
|
|
case m_status of
|
|
initial :
|
|
if m_font = NIL then
|
|
quit:=true
|
|
|
|
else
|
|
begin
|
|
m_status:=next_char;
|
|
|
|
goto _nxch;
|
|
|
|
end;
|
|
|
|
next_char :
|
|
_nxch:
|
|
if m_cur_chr^ = 0 then
|
|
quit:=true
|
|
|
|
else
|
|
begin
|
|
idx:=m_cur_chr^ and $FF;
|
|
|
|
inc(ptrcomp(m_cur_chr ) ,sizeof(int8u ) );
|
|
|
|
if idx = 13 then
|
|
begin
|
|
m_x:=m_start_x;
|
|
|
|
if m_flip then
|
|
m_y:=m_y - (-m_height - m_line_space )
|
|
else
|
|
m_y:=m_y - (m_height + m_line_space );
|
|
|
|
end
|
|
else
|
|
begin
|
|
idx:=idx shl 1;
|
|
|
|
m_bglyph:=pointer(ptrcomp(m_glyphs ) + _value(pointer(ptrcomp(m_indices ) + idx ) ) );
|
|
m_eglyph:=pointer(ptrcomp(m_glyphs ) + _value(pointer(ptrcomp(m_indices ) + idx + 2 ) ) );
|
|
m_status:=start_glyph;
|
|
|
|
goto _strt;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
start_glyph :
|
|
_strt:
|
|
begin
|
|
x^:=m_x;
|
|
y^:=m_y;
|
|
|
|
m_status:=glyph;
|
|
|
|
result:=path_cmd_move_to;
|
|
|
|
exit;
|
|
|
|
end;
|
|
|
|
glyph :
|
|
if ptrcomp(m_bglyph ) >= ptrcomp(m_eglyph ) then
|
|
begin
|
|
m_status:=next_char;
|
|
|
|
m_x:=m_x + m_space;
|
|
|
|
end
|
|
else
|
|
begin
|
|
dx:=int(m_bglyph^ );
|
|
|
|
inc(ptrcomp(m_bglyph ) ,sizeof(int8u ) );
|
|
|
|
yc:=m_bglyph^;
|
|
|
|
inc(ptrcomp(m_bglyph ) ,sizeof(int8u ) );
|
|
|
|
yf:=yc and $80;
|
|
yc:=yc shl 1;
|
|
yc:=shr_int8(yc ,1 );
|
|
|
|
dy:=yc;
|
|
|
|
m_x:=m_x + (dx * m_w );
|
|
m_y:=m_y + (dy * m_h );
|
|
|
|
x^:=m_x;
|
|
y^:=m_y;
|
|
|
|
if yf <> 0 then
|
|
result:=path_cmd_move_to
|
|
else
|
|
result:=path_cmd_line_to;
|
|
|
|
exit;
|
|
|
|
end;
|
|
|
|
end;
|
|
|
|
result:=path_cmd_stop;
|
|
|
|
end;
|
|
|
|
{ _VALUE }
|
|
function gsv_text._value;
|
|
var
|
|
v : int16u;
|
|
|
|
begin
|
|
if m_big_endian then
|
|
begin
|
|
int16u_(v ).Low :=int8u_ptr(ptrcomp(p ) + 1 )^;
|
|
int16u_(v ).High:=p^;
|
|
|
|
end
|
|
else
|
|
begin
|
|
int16u_(v ).Low :=p^;
|
|
int16u_(v ).High:=int8u_ptr(ptrcomp(p ) + 1 )^;
|
|
|
|
end;
|
|
|
|
result:=v;
|
|
|
|
end;
|
|
|
|
{ CONSTRUCT }
|
|
constructor gsv_text_outline.Construct;
|
|
begin
|
|
m_polyline.Construct(text );
|
|
m_trans.Construct (@m_polyline ,trans );
|
|
|
|
end;
|
|
|
|
{ DESTRUCT }
|
|
destructor gsv_text_outline.Destruct;
|
|
begin
|
|
m_polyline.Destruct;
|
|
|
|
end;
|
|
|
|
{ WIDTH_ }
|
|
procedure gsv_text_outline.width_;
|
|
begin
|
|
m_polyline.width_(w );
|
|
|
|
end;
|
|
|
|
{ TRANSFORMER_ }
|
|
procedure gsv_text_outline.transformer_;
|
|
begin
|
|
m_trans.transformer_(trans );
|
|
|
|
end;
|
|
|
|
{ REWIND }
|
|
procedure gsv_text_outline.rewind;
|
|
begin
|
|
m_trans.rewind(path_id );
|
|
|
|
m_polyline.line_join_(round_join );
|
|
m_polyline.line_cap_ (round_cap );
|
|
|
|
end;
|
|
|
|
{ VERTEX }
|
|
function gsv_text_outline.vertex;
|
|
begin
|
|
result:=m_trans.vertex(x ,y );
|
|
|
|
end;
|
|
|
|
END.
|
|
|