mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-11 19:40:05 +01:00
94 lines
2.1 KiB
ObjectPascal
94 lines
2.1 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.02.2006-Milano: Unit port establishment
|
|
//
|
|
{ agg_span_converter.pas }
|
|
unit
|
|
agg_span_converter ;
|
|
|
|
INTERFACE
|
|
|
|
{$I agg_mode.inc }
|
|
|
|
uses
|
|
agg_basics ,
|
|
agg_color ,
|
|
agg_span_generator ;
|
|
|
|
{ TYPES DEFINITION }
|
|
type
|
|
span_convertor_ptr = ^span_convertor;
|
|
span_convertor = object
|
|
procedure convert(span : aggclr_ptr; x ,y : int; len : unsigned ); virtual; abstract;
|
|
|
|
end;
|
|
|
|
span_converter = object(span_generator )
|
|
m_span_gen : span_generator_ptr;
|
|
m_conv : span_convertor_ptr;
|
|
|
|
constructor Construct(span_gen : span_generator_ptr; conv : span_convertor_ptr );
|
|
|
|
procedure prepare (max_span_len : unsigned ); virtual;
|
|
function generate(x ,y : int; len : unsigned ) : aggclr_ptr; virtual;
|
|
|
|
end;
|
|
|
|
{ GLOBAL PROCEDURES }
|
|
|
|
|
|
IMPLEMENTATION
|
|
{ LOCAL VARIABLES & CONSTANTS }
|
|
{ UNIT IMPLEMENTATION }
|
|
{ CONSTRUCT }
|
|
constructor span_converter.Construct;
|
|
begin
|
|
m_span_gen:=span_gen;
|
|
m_conv :=conv;
|
|
|
|
end;
|
|
|
|
{ PREPARE }
|
|
procedure span_converter.prepare;
|
|
begin
|
|
m_span_gen.prepare(max_span_len );
|
|
|
|
end;
|
|
|
|
{ GENERATE }
|
|
function span_converter.generate;
|
|
var
|
|
span : aggclr_ptr;
|
|
|
|
begin
|
|
span:=m_span_gen.generate(x ,y ,len );
|
|
|
|
m_conv.convert(span ,x ,y ,len );
|
|
|
|
result:=span;
|
|
|
|
end;
|
|
|
|
END.
|
|
|