1
//----------------------------------------------------------------------------
2
// Anti-Grain Geometry - Version 2.4 (Public License)
3
// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
5
// Anti-Grain Geometry - Version 2.4 Release Milano 3 (AggPas 2.4 RM3)
6
// Pascal Port By: Milan Marusinec alias Milano
8
// http://www.aggpas.org
9
// Copyright (c) 2005-2006
11
// Permission to copy, use, modify, sell and distribute this software
12
// is granted provided this copyright notice appears in all copies.
13
// This software is provided "as is" without express or implied
14
// warranty, and with no claim as to its suitability for any purpose.
16
//----------------------------------------------------------------------------
17
// Contact: mcseem@antigrain.com
18
// mcseemagg@yahoo.com
19
// http://www.antigrain.com
21
// [Pascal Port History] -----------------------------------------------------
23
// 23.06.2006-Milano: ptrcomp adjustments
24
// 10.02.2006-Milano: amask_no_clip_u8
25
// 09.02.2006-Milano: Unit port establishment
27
{ agg_alpha_mask_u8.pas }
37
agg_rendering_buffer ;
46
func_mask_calculate = function(p : int8u_ptr ) : unsigned;
48
//==========================================================alpha_mask_u8
49
alpha_mask_ptr = ^alpha_mask;
51
procedure attach(rbuf : rendering_buffer_ptr ); virtual; abstract;
53
function mask_function : func_mask_calculate; virtual; abstract;
55
function pixel (x ,y : int ) : int8u; virtual; abstract;
56
function combine_pixel(x ,y : int; val : int8u ) : int8u; virtual; abstract;
58
procedure fill_hspan (x ,y : int; dst : int8u_ptr; num_pix : int ); virtual; abstract;
59
procedure combine_hspan(x ,y : int; dst : int8u_ptr; num_pix : int ); virtual; abstract;
60
procedure fill_vspan (x ,y : int; dst : int8u_ptr; num_pix : int ); virtual; abstract;
61
procedure combine_vspan(x ,y : int; dst : int8u_ptr; num_pix : int ); virtual; abstract;
65
alpha_mask_u8 = object(alpha_mask )
69
m_rbuf : rendering_buffer_ptr;
70
m_mask_function : func_mask_calculate;
72
constructor Construct(MaskF : func_mask_calculate; Step_ : unsigned = 1; Offset_ : unsigned = 0 ); overload;
73
constructor Construct(rbuf : rendering_buffer_ptr; MaskF : func_mask_calculate; Step_ : unsigned = 1; Offset_ : unsigned = 0 ); overload;
75
procedure attach(rbuf : rendering_buffer_ptr ); virtual;
77
function mask_function : func_mask_calculate; virtual;
79
function pixel (x ,y : int ) : int8u; virtual;
80
function combine_pixel(x ,y : int; val : int8u ) : int8u; virtual;
82
procedure fill_hspan (x ,y : int; dst : int8u_ptr; num_pix : int ); virtual;
83
procedure combine_hspan(x ,y : int; dst : int8u_ptr; num_pix : int ); virtual;
84
procedure fill_vspan (x ,y : int; dst : int8u_ptr; num_pix : int ); virtual;
85
procedure combine_vspan(x ,y : int; dst : int8u_ptr; num_pix : int ); virtual;
89
alpha_mask_gray8 = object(alpha_mask_u8 )
90
constructor Construct(rbuf : rendering_buffer_ptr );
94
alpha_mask_rgb24r = object(alpha_mask_u8 )
95
constructor Construct(rbuf : rendering_buffer_ptr );
99
alpha_mask_rgb24g = object(alpha_mask_u8 )
100
constructor Construct(rbuf : rendering_buffer_ptr );
104
alpha_mask_rgb24b = object(alpha_mask_u8 )
105
constructor Construct(rbuf : rendering_buffer_ptr );
109
alpha_mask_bgr24r = object(alpha_mask_u8 )
110
constructor Construct(rbuf : rendering_buffer_ptr );
114
alpha_mask_bgr24g = object(alpha_mask_u8 )
115
constructor Construct(rbuf : rendering_buffer_ptr );
119
alpha_mask_bgr24b = object(alpha_mask_u8 )
120
constructor Construct(rbuf : rendering_buffer_ptr );
124
alpha_mask_rgba32r = object(alpha_mask_u8 )
125
constructor Construct(rbuf : rendering_buffer_ptr );
129
alpha_mask_rgba32g = object(alpha_mask_u8 )
130
constructor Construct(rbuf : rendering_buffer_ptr );
134
alpha_mask_rgba32b = object(alpha_mask_u8 )
135
constructor Construct(rbuf : rendering_buffer_ptr );
139
alpha_mask_rgba32a = object(alpha_mask_u8 )
140
constructor Construct(rbuf : rendering_buffer_ptr );
144
alpha_mask_argb32r = object(alpha_mask_u8 )
145
constructor Construct(rbuf : rendering_buffer_ptr );
149
alpha_mask_argb32g = object(alpha_mask_u8 )
150
constructor Construct(rbuf : rendering_buffer_ptr );
154
alpha_mask_argb32b = object(alpha_mask_u8 )
155
constructor Construct(rbuf : rendering_buffer_ptr );
159
alpha_mask_argb32a = object(alpha_mask_u8 )
160
constructor Construct(rbuf : rendering_buffer_ptr );
164
alpha_mask_bgra32r = object(alpha_mask_u8 )
165
constructor Construct(rbuf : rendering_buffer_ptr );
169
alpha_mask_bgra32g = object(alpha_mask_u8 )
170
constructor Construct(rbuf : rendering_buffer_ptr );
174
alpha_mask_bgra32b = object(alpha_mask_u8 )
175
constructor Construct(rbuf : rendering_buffer_ptr );
179
alpha_mask_bgra32a = object(alpha_mask_u8 )
180
constructor Construct(rbuf : rendering_buffer_ptr );
184
alpha_mask_abgr32r = object(alpha_mask_u8 )
185
constructor Construct(rbuf : rendering_buffer_ptr );
189
alpha_mask_abgr32g = object(alpha_mask_u8 )
190
constructor Construct(rbuf : rendering_buffer_ptr );
194
alpha_mask_abgr32b = object(alpha_mask_u8 )
195
constructor Construct(rbuf : rendering_buffer_ptr );
199
alpha_mask_abgr32a = object(alpha_mask_u8 )
200
constructor Construct(rbuf : rendering_buffer_ptr );
204
alpha_mask_rgb24gray = object(alpha_mask_u8 )
205
constructor Construct(rbuf : rendering_buffer_ptr );
209
alpha_mask_bgr24gray = object(alpha_mask_u8 )
210
constructor Construct(rbuf : rendering_buffer_ptr );
214
alpha_mask_rgba32gray = object(alpha_mask_u8 )
215
constructor Construct(rbuf : rendering_buffer_ptr );
219
alpha_mask_argb32gray = object(alpha_mask_u8 )
220
constructor Construct(rbuf : rendering_buffer_ptr );
224
alpha_mask_bgra32gray = object(alpha_mask_u8 )
225
constructor Construct(rbuf : rendering_buffer_ptr );
229
alpha_mask_abgr32gray = object(alpha_mask_u8 )
230
constructor Construct(rbuf : rendering_buffer_ptr );
234
//==========================================================amask_no_clip_u8
235
amask_no_clip_u8 = object(alpha_mask )
239
m_rbuf : rendering_buffer_ptr;
240
m_mask_function : func_mask_calculate;
242
constructor Construct(MaskF : func_mask_calculate; Step_ : unsigned = 1; Offset_ : unsigned = 0 ); overload;
243
constructor Construct(rbuf : rendering_buffer_ptr; MaskF : func_mask_calculate; Step_ : unsigned = 1; Offset_ : unsigned = 0 ); overload;
245
procedure attach(rbuf : rendering_buffer_ptr ); virtual;
247
function mask_function : func_mask_calculate; virtual;
249
function pixel (x ,y : int ) : int8u; virtual;
250
function combine_pixel(x ,y : int; val : int8u ) : int8u; virtual;
252
procedure fill_hspan (x ,y : int; dst : int8u_ptr; num_pix : int ); virtual;
253
procedure combine_hspan(x ,y : int; dst : int8u_ptr; num_pix : int ); virtual;
254
procedure fill_vspan (x ,y : int; dst : int8u_ptr; num_pix : int ); virtual;
255
procedure combine_vspan(x ,y : int; dst : int8u_ptr; num_pix : int ); virtual;
259
amask_no_clip_gray8 = object(amask_no_clip_u8 )
260
constructor Construct(rbuf : rendering_buffer_ptr );
264
amask_no_clip_rgb24r = object(amask_no_clip_u8 )
265
constructor Construct(rbuf : rendering_buffer_ptr );
269
amask_no_clip_rgb24g = object(amask_no_clip_u8 )
270
constructor Construct(rbuf : rendering_buffer_ptr );
274
amask_no_clip_rgb24b = object(amask_no_clip_u8 )
275
constructor Construct(rbuf : rendering_buffer_ptr );
279
amask_no_clip_bgr24r = object(amask_no_clip_u8 )
280
constructor Construct(rbuf : rendering_buffer_ptr );
284
amask_no_clip_bgr24g = object(amask_no_clip_u8 )
285
constructor Construct(rbuf : rendering_buffer_ptr );
289
amask_no_clip_bgr24b = object(amask_no_clip_u8 )
290
constructor Construct(rbuf : rendering_buffer_ptr );
294
amask_no_clip_rgba32r = object(amask_no_clip_u8 )
295
constructor Construct(rbuf : rendering_buffer_ptr );
299
amask_no_clip_rgba32g = object(amask_no_clip_u8 )
300
constructor Construct(rbuf : rendering_buffer_ptr );
304
amask_no_clip_rgba32b = object(amask_no_clip_u8 )
305
constructor Construct(rbuf : rendering_buffer_ptr );
309
amask_no_clip_rgba32a = object(amask_no_clip_u8 )
310
constructor Construct(rbuf : rendering_buffer_ptr );
314
amask_no_clip_argb32r = object(amask_no_clip_u8 )
315
constructor Construct(rbuf : rendering_buffer_ptr );
319
amask_no_clip_argb32g = object(amask_no_clip_u8 )
320
constructor Construct(rbuf : rendering_buffer_ptr );
324
amask_no_clip_argb32b = object(amask_no_clip_u8 )
325
constructor Construct(rbuf : rendering_buffer_ptr );
329
amask_no_clip_argb32a = object(amask_no_clip_u8 )
330
constructor Construct(rbuf : rendering_buffer_ptr );
334
amask_no_clip_bgra32r = object(amask_no_clip_u8 )
335
constructor Construct(rbuf : rendering_buffer_ptr );
339
amask_no_clip_bgra32g = object(amask_no_clip_u8 )
340
constructor Construct(rbuf : rendering_buffer_ptr );
344
amask_no_clip_bgra32b = object(amask_no_clip_u8 )
345
constructor Construct(rbuf : rendering_buffer_ptr );
349
amask_no_clip_bgra32a = object(amask_no_clip_u8 )
350
constructor Construct(rbuf : rendering_buffer_ptr );
354
amask_no_clip_abgr32r = object(amask_no_clip_u8 )
355
constructor Construct(rbuf : rendering_buffer_ptr );
359
amask_no_clip_abgr32g = object(amask_no_clip_u8 )
360
constructor Construct(rbuf : rendering_buffer_ptr );
364
amask_no_clip_abgr32b = object(amask_no_clip_u8 )
365
constructor Construct(rbuf : rendering_buffer_ptr );
369
amask_no_clip_abgr32a = object(amask_no_clip_u8 )
370
constructor Construct(rbuf : rendering_buffer_ptr );
374
amask_no_clip_rgb24gray = object(amask_no_clip_u8 )
375
constructor Construct(rbuf : rendering_buffer_ptr );
379
amask_no_clip_bgr24gray = object(amask_no_clip_u8 )
380
constructor Construct(rbuf : rendering_buffer_ptr );
384
amask_no_clip_rgba32gray = object(amask_no_clip_u8 )
385
constructor Construct(rbuf : rendering_buffer_ptr );
389
amask_no_clip_argb32gray = object(amask_no_clip_u8 )
390
constructor Construct(rbuf : rendering_buffer_ptr );
394
amask_no_clip_bgra32gray = object(amask_no_clip_u8 )
395
constructor Construct(rbuf : rendering_buffer_ptr );
399
amask_no_clip_abgr32gray = object(amask_no_clip_u8 )
400
constructor Construct(rbuf : rendering_buffer_ptr );
404
{ GLOBAL PROCEDURES }
405
function one_component_mask_u8 (p : int8u_ptr ) : unsigned;
406
function rgb_to_gray_mask_u8_012(p : int8u_ptr ) : unsigned;
407
function rgb_to_gray_mask_u8_210(p : int8u_ptr ) : unsigned;
411
{ LOCAL VARIABLES & CONSTANTS }
412
{ UNIT IMPLEMENTATION }
413
{ ONE_COMPONENT_MASK_U8 }
414
function one_component_mask_u8;
420
{ RGB_TO_GRAY_MASK_U8_012 }
421
function rgb_to_gray_mask_u8_012;
425
int8u_ptr(ptrcomp(p ) + 0 * sizeof(int8u ) )^ * 77 +
426
int8u_ptr(ptrcomp(p ) + 1 * sizeof(int8u ) )^ * 150 +
427
int8u_ptr(ptrcomp(p ) + 2 * sizeof(int8u ) )^ * 29 shr 8 ) );
431
{ RGB_TO_GRAY_MASK_U8_210 }
432
function rgb_to_gray_mask_u8_210;
436
int8u_ptr(ptrcomp(p ) + 2 * sizeof(int8u ) )^ * 77 +
437
int8u_ptr(ptrcomp(p ) + 1 * sizeof(int8u ) )^ * 150 +
438
int8u_ptr(ptrcomp(p ) + 0 * sizeof(int8u ) )^ * 29 shr 8 ) );
443
constructor alpha_mask_u8.Construct(MaskF : func_mask_calculate; Step_ : unsigned = 1; Offset_ : unsigned = 0 );
449
m_mask_function:=MaskF;
454
constructor alpha_mask_u8.Construct(rbuf : rendering_buffer_ptr; MaskF : func_mask_calculate; Step_ : unsigned = 1; Offset_ : unsigned = 0 );
460
m_mask_function:=MaskF;
465
procedure alpha_mask_u8.attach;
472
function alpha_mask_u8.mask_function;
474
result:=@m_mask_function;
479
function alpha_mask_u8.pixel;
483
(x < m_rbuf._width ) and
484
(y < m_rbuf._height ) then
486
int8u(m_mask_function(
487
int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) ) ) )
494
function alpha_mask_u8.combine_pixel;
498
(x < m_rbuf._width ) and
499
(y < m_rbuf._height ) then
503
int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) ) )
511
procedure alpha_mask_u8.fill_hspan;
513
xmax ,ymax ,count ,rest : int;
515
covers ,mask : int8u_ptr;
518
xmax:=m_rbuf._width - 1;
519
ymax:=m_rbuf._height - 1;
527
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
539
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
545
fillchar(covers^ ,-x * sizeof(int8u ) ,0 );
553
if x + count > xmax then
555
rest:=x + count - xmax - 1;
561
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
567
fillchar(int8u_ptr(ptrcomp(covers ) + count * sizeof(int8u ) )^ ,rest * sizeof(int8u ) ,0 );
571
mask:=int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) );
574
covers^:=int8u(m_mask_function(mask ) );
576
inc(ptrcomp(covers ) ,sizeof(int8u ) );
577
inc(ptrcomp(mask ) ,Step * sizeof(int8u ) );
585
procedure alpha_mask_u8.combine_hspan;
587
xmax ,ymax ,count ,rest : int;
589
covers ,mask : int8u_ptr;
592
xmax:=m_rbuf._width - 1;
593
ymax:=m_rbuf._height - 1;
601
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
613
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
619
fillchar(covers^ ,-x * sizeof(int8u ) ,0 );
621
dec(ptrcomp(covers ) ,x * sizeof(int8u ) );
627
if x + count > xmax then
629
rest:=x + count - xmax - 1;
635
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
641
fillchar(int8u_ptr(ptrcomp(covers ) + count * sizeof(int8u ) )^ ,rest * sizeof(int8u ) ,0 );
645
mask:=int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) );
650
(cover_full + covers^ *
651
m_mask_function(mask ) ) shr cover_shift );
653
inc(ptrcomp(covers ) ,sizeof(int8u ) );
654
inc(mask ,Step * sizeof(int8u ) );
663
procedure alpha_mask_u8.fill_vspan;
665
xmax ,ymax ,count ,rest : int;
667
covers ,mask : int8u_ptr;
670
xmax:=m_rbuf._width - 1;
671
ymax:=m_rbuf._height - 1;
679
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
691
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
697
fillchar(covers^ ,-y * sizeof(int8u ) ,0 );
699
dec(ptrcomp(covers ) ,y * sizeof(int8u ) );
705
if y + count > ymax then
707
rest:=y + count - ymax - 1;
713
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
719
fillchar(int8u_ptr(ptrcomp(covers ) + count * sizeof(int8u ) )^ ,rest * sizeof(int8u ) ,0 );
724
covers^:=int8u(m_mask_function(mask ) );
726
inc(ptrcomp(covers ) ,sizeof(int8u ) );
727
inc(ptrcomp(mask ) ,m_rbuf._stride );
735
procedure alpha_mask_u8.combine_vspan;
737
xmax ,ymax ,count ,rest : int;
739
covers ,mask : int8u_ptr;
742
xmax:=m_rbuf._width - 1;
743
ymax:=m_rbuf._height - 1;
751
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
763
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
769
fillchar(covers^ ,-y * sizeof(int8u ) ,0 );
771
dec(ptrcomp(covers ) ,y * sizeof(int8u ) );
777
if y + count > ymax then
779
rest:=y + count - ymax - 1;
785
fillchar(dst^ ,num_pix * sizeof(int8u ) ,0 );
791
fillchar(int8u_ptr(ptrcomp(covers ) + count * sizeof(int8u ) )^ ,rest * sizeof(int8u ) ,0 );
795
mask:=int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) );
800
(cover_full + covers^ *
801
m_mask_function(mask ) ) shr cover_shift );
803
inc(ptrcomp(covers ) ,sizeof(int8u ) );
804
inc(ptrcomp(mask ) ,m_rbuf._stride );
812
constructor alpha_mask_gray8.Construct;
814
inherited Construct(rbuf ,@one_component_mask_u8 ,1 ,0 );
819
constructor alpha_mask_rgb24r.Construct;
821
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,0 );
826
constructor alpha_mask_rgb24g.Construct;
828
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,1 );
833
constructor alpha_mask_rgb24b.Construct;
835
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,2 );
840
constructor alpha_mask_bgr24r.Construct;
842
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,2 );
847
constructor alpha_mask_bgr24g.Construct;
849
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,1 );
854
constructor alpha_mask_bgr24b.Construct;
856
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,0 );
861
constructor alpha_mask_rgba32r.Construct;
863
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,0 );
868
constructor alpha_mask_rgba32g.Construct;
870
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,1 );
875
constructor alpha_mask_rgba32b.Construct;
877
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,2 );
882
constructor alpha_mask_rgba32a.Construct;
884
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,3 );
889
constructor alpha_mask_argb32r.Construct;
891
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,1 );
896
constructor alpha_mask_argb32g.Construct;
898
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,2 );
903
constructor alpha_mask_argb32b.Construct;
905
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,3 );
910
constructor alpha_mask_argb32a.Construct;
912
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,0 );
917
constructor alpha_mask_bgra32r.Construct;
919
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,2 );
924
constructor alpha_mask_bgra32g.Construct;
926
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,1 );
931
constructor alpha_mask_bgra32b.Construct;
933
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,0 );
938
constructor alpha_mask_bgra32a.Construct;
940
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,3 );
945
constructor alpha_mask_abgr32r.Construct;
947
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,3 );
952
constructor alpha_mask_abgr32g.Construct;
954
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,2 );
959
constructor alpha_mask_abgr32b.Construct;
961
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,1 );
966
constructor alpha_mask_abgr32a.Construct;
968
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,0 );
973
constructor alpha_mask_rgb24gray.Construct;
975
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_012 ,3 ,0 );
980
constructor alpha_mask_bgr24gray.Construct;
982
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_210 ,3 ,0 );
987
constructor alpha_mask_rgba32gray.Construct;
989
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_012 ,4 ,0 );
994
constructor alpha_mask_argb32gray.Construct;
996
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_012 ,4 ,1 );
1001
constructor alpha_mask_bgra32gray.Construct;
1003
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_210 ,4 ,0 );
1008
constructor alpha_mask_abgr32gray.Construct;
1010
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_210 ,4 ,1 );
1015
constructor amask_no_clip_u8.Construct(MaskF : func_mask_calculate; Step_ : unsigned = 1; Offset_ : unsigned = 0 );
1021
m_mask_function:=MaskF;
1026
constructor amask_no_clip_u8.Construct(rbuf : rendering_buffer_ptr; MaskF : func_mask_calculate; Step_ : unsigned = 1; Offset_ : unsigned = 0 );
1032
m_mask_function:=MaskF;
1037
procedure amask_no_clip_u8.attach;
1044
function amask_no_clip_u8.mask_function;
1046
result:=@m_mask_function;
1051
function amask_no_clip_u8.pixel;
1054
int8u(m_mask_function(
1055
int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) ) ) );
1060
function amask_no_clip_u8.combine_pixel;
1065
int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) ) )
1066
) shr cover_shift );
1071
procedure amask_no_clip_u8.fill_hspan;
1076
mask:=int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) );
1079
dst^:=int8u(m_mask_function(mask ) );
1081
inc(ptrcomp(dst ) ,sizeof(int8u ) );
1082
inc(ptrcomp(mask ) ,Step * sizeof(int8u ) );
1090
procedure amask_no_clip_u8.combine_hspan;
1095
mask:=int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) );
1098
dst^:=int8u((cover_full + dst^ * m_mask_function(mask ) ) shr cover_shift );
1100
inc(ptrcomp(dst ) ,sizeof(int8u ) );
1101
inc(ptrcomp(mask ) ,Step * sizeof(int8u ) );
1109
procedure amask_no_clip_u8.fill_vspan;
1114
mask:=int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) );
1117
dst^:=int8u(m_mask_function(mask ) );
1119
inc(ptrcomp(dst ) ,sizeof(int8u ) );
1120
inc(ptrcomp(mask ) ,m_rbuf._stride );
1128
procedure amask_no_clip_u8.combine_vspan;
1133
mask:=int8u_ptr(ptrcomp(m_rbuf.row(y ) ) + (x * Step + Offset ) * sizeof(int8u ) );
1136
dst^:=int8u((cover_full + dst^ * m_mask_function(mask ) ) shr cover_shift );
1138
inc(ptrcomp(dst ) ,sizeof(int8u ) );
1139
inc(ptrcomp(mask ) ,m_rbuf._stride );
1147
constructor amask_no_clip_gray8.Construct;
1149
inherited Construct(rbuf ,@one_component_mask_u8 ,1 ,0 );
1154
constructor amask_no_clip_rgb24r.Construct;
1156
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,0 );
1161
constructor amask_no_clip_rgb24g.Construct;
1163
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,1 );
1168
constructor amask_no_clip_rgb24b.Construct;
1170
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,2 );
1175
constructor amask_no_clip_bgr24r.Construct;
1177
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,2 );
1182
constructor amask_no_clip_bgr24g.Construct;
1184
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,1 );
1189
constructor amask_no_clip_bgr24b.Construct;
1191
inherited Construct(rbuf ,@one_component_mask_u8 ,3 ,0 );
1196
constructor amask_no_clip_rgba32r.Construct;
1198
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,0 );
1203
constructor amask_no_clip_rgba32g.Construct;
1205
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,1 );
1210
constructor amask_no_clip_rgba32b.Construct;
1212
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,2 );
1217
constructor amask_no_clip_rgba32a.Construct;
1219
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,3 );
1224
constructor amask_no_clip_argb32r.Construct;
1226
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,1 );
1231
constructor amask_no_clip_argb32g.Construct;
1233
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,2 );
1238
constructor amask_no_clip_argb32b.Construct;
1240
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,3 );
1245
constructor amask_no_clip_argb32a.Construct;
1247
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,0 );
1252
constructor amask_no_clip_bgra32r.Construct;
1254
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,2 );
1259
constructor amask_no_clip_bgra32g.Construct;
1261
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,1 );
1266
constructor amask_no_clip_bgra32b.Construct;
1268
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,0 );
1273
constructor amask_no_clip_bgra32a.Construct;
1275
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,3 );
1280
constructor amask_no_clip_abgr32r.Construct;
1282
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,3 );
1287
constructor amask_no_clip_abgr32g.Construct;
1289
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,2 );
1294
constructor amask_no_clip_abgr32b.Construct;
1296
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,1 );
1301
constructor amask_no_clip_abgr32a.Construct;
1303
inherited Construct(rbuf ,@one_component_mask_u8 ,4 ,0 );
1308
constructor amask_no_clip_rgb24gray.Construct;
1310
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_012 ,3 ,0 );
1315
constructor amask_no_clip_bgr24gray.Construct;
1317
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_210 ,3 ,0 );
1322
constructor amask_no_clip_rgba32gray.Construct;
1324
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_012 ,4 ,0 );
1329
constructor amask_no_clip_argb32gray.Construct;
1331
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_012 ,4 ,1 );
1336
constructor amask_no_clip_bgra32gray.Construct;
1338
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_210 ,4 ,0 );
1343
constructor amask_no_clip_abgr32gray.Construct;
1345
inherited Construct(rbuf ,@rgb_to_gray_mask_u8_210 ,4 ,1 );