~ubuntu-branches/ubuntu/dapper/fpc/dapper

« back to all changes in this revision

Viewing changes to packages/extra/amunits/otherlibs/render/units/render.pas

  • Committer: Bazaar Package Importer
  • Author(s): Carlos Laviola
  • Date: 2005-05-30 11:59:10 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20050530115910-x5pbzm4qqta4i94h
Tags: 2.0.0-2
debian/fp-compiler.postinst.in: forgot to reapply the patch that
correctly creates the slave link to pc(1).  (Closes: #310907)

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
**********************************************************************}
18
18
{
19
19
  History:
20
 
  
 
20
 
21
21
  First version of this unit.
22
22
  16 Jan 2003.
23
 
  
 
23
 
24
24
  Changed cardinal > longword.
25
25
  Changed startcode for unit.
26
26
  12 Feb 2003
27
 
  
 
27
 
28
28
  nils.sjoholm@mailbox.swipnet.se Nils Sjoholm
29
29
}
30
30
 
55
55
  const
56
56
     RND_TAGBASE = TAG_USER + $1000;
57
57
  {
58
 
  
59
 
        memhandler
 
58
 
 
59
        memhandler
60
60
 
61
61
                                                                          }
62
62
  { type of memhandler, see below  }
70
70
  { to pass a memhandler as an argument  }
71
71
     RND_RMHandler = RND_TAGBASE + 12;
72
72
  {
73
 
        memhandler types
 
73
        memhandler types
74
74
    }
75
75
  { v39 exec dynamic pool  }
76
76
     RMHTYPE_POOL = 1;
80
80
     RMHTYPE_PUBLIC = 3;
81
81
  {
82
82
 
83
 
        palette
 
83
        palette
84
84
 
85
85
                                                                          }
86
86
  { palette import/export format  }
94
94
  { quantization factors  }
95
95
     RND_RGBWeight = RND_TAGBASE + 11;
96
96
  {
97
 
        palette format types
 
97
        palette format types
98
98
    }
99
99
  { ULONG red,green,blue  }
100
100
     PALFMT_RGB32 = 1;
105
105
  { render.library palette  }
106
106
     PALFMT_PALETTE = 4;
107
107
  {
108
 
        palette sort mode types
109
 
        for the use with SortPalette()
 
108
        palette sort mode types
 
109
        for the use with SortPalette()
110
110
    }
111
111
  { no particular order  }
112
112
     PALMODE_NONE = $0000;
113
113
  { sort palette entries by brightness  }
114
114
     PALMODE_BRIGHTNESS = $0001;
115
115
  { sort palette entries by the number of pixels that they represent.
116
 
           You must supply the RND_Histogram taglist argument.  }
 
116
           You must supply the RND_Histogram taglist argument.  }
117
117
     PALMODE_POPULARITY = $0002;
118
118
  { sort palette entries by the number of histogram entries that they
119
 
           represent. You must supply the RND_Histogram taglist argument.  }
 
119
           represent. You must supply the RND_Histogram taglist argument.  }
120
120
     PALMODE_REPRESENTATION = $0003;
121
121
  { sort palette entries by their optical significance for the human
122
 
           eye. Implementation is unknown to you and may change.
123
 
           You must supply the RND_Histogram taglist argument.  }
 
122
           eye. Implementation is unknown to you and may change.
 
123
           You must supply the RND_Histogram taglist argument.  }
124
124
     PALMODE_SIGNIFICANCE = $0004;
125
125
  { sort palette entries by color intensity  }
126
126
     PALMODE_SATURATION = $0005;
127
127
  { By default, sort direction is descending, i.e. the precedence is
128
 
           more-to-less. Combine with this flag to invert the sort direction.  }
 
128
           more-to-less. Combine with this flag to invert the sort direction.  }
129
129
     PALMODE_ASCENDING = $0008;
130
130
  {
131
 
  
132
 
        histogram related
133
 
  
 
131
 
 
132
        histogram related
 
133
 
134
134
                                                                          }
135
135
  { histogram type, see below  }
136
136
     RND_HSType = RND_TAGBASE + 4;
137
137
  { a histogram as an argument  }
138
138
     RND_Histogram = RND_TAGBASE + 9;
139
139
  {
140
 
        Histogram / Palette types
141
 
        to be specified with RND_HSType
 
140
        Histogram / Palette types
 
141
        to be specified with RND_HSType
142
142
    }
143
143
  { 12bit dynamic histogram  }
144
144
     HSTYPE_12BIT = 4;
157
157
  { 18bit tabular histogram  }
158
158
     HSTYPE_18BIT_TURBO = 22;
159
159
  {
160
 
        tags that can be queried via QueryHistogram()
 
160
        tags that can be queried via QueryHistogram()
161
161
    }
162
162
  { # pixels in a histogram  }
163
163
     RND_NumPixels = RND_TAGBASE + 5;
164
164
  { # colors in a histogram  }
165
165
     RND_NumColors = RND_TAGBASE + 6;
166
166
  {
167
 
  
168
 
        rendering and conversions
169
 
  
 
167
 
 
168
        rendering and conversions
 
169
 
170
170
                                                                          }
171
171
  { color mode, see below  }
172
172
     RND_ColorMode = RND_TAGBASE + 7;
177
177
  { first color index to be output  }
178
178
     RND_OffsetColorZero = RND_TAGBASE + 10;
179
179
  {
180
 
        color mode types
181
 
        to be specified with RND_ColorMode
 
180
        color mode types
 
181
        to be specified with RND_ColorMode
182
182
    }
183
183
  { normal palette lookup  }
184
184
     COLORMODE_CLUT = $0000;
189
189
  { mask to determine COLORMODE  }
190
190
     COLORMODE_MASK = $0003;
191
191
  {
192
 
        dither mode types
193
 
        to be specified with RND_DitherMode
 
192
        dither mode types
 
193
        to be specified with RND_DitherMode
194
194
    }
195
195
  { no dither  }
196
196
     DITHERMODE_NONE = $0000;
200
200
     DITHERMODE_RANDOM = $0002;
201
201
  { EDD dither  }
202
202
     DITHERMODE_EDD = $0003;
203
 
  {                                                                       
 
203
  {
204
204
 
205
 
        miscellaneous
 
205
        miscellaneous
206
206
 
207
207
                                                                          }
208
208
  { progress callback hook  }
234
234
  { backpen for filling  }
235
235
     RND_BGPen = RND_TAGBASE + 44;
236
236
  {
237
 
  
238
 
        alpha-channel and masking
239
 
  
 
237
 
 
238
        alpha-channel and masking
 
239
 
240
240
                                                                          }
241
241
  { custom alpha-channel  }
242
242
     RND_AlphaChannel = RND_TAGBASE + 32;
258
258
     RND_AlphaModulo2 = RND_TAGBASE + 40;
259
259
  { width of a second alpha-channel array  }
260
260
     RND_AlphaWidth2 = RND_TAGBASE + 41;
261
 
  {                                                                       
 
261
  {
262
262
 
263
 
        PixelFormat
 
263
        PixelFormat
264
264
 
265
265
                                                                          }
266
266
  { pixel format, see below  }
271
271
     PIXFMT_CHUNKY_CLUT = (1 shl PIXFMTB_CHUNKY) + COLORMODE_CLUT;
272
272
     PIXFMT_0RGB_32 = (1 shl PIXFMTB_RGB) + 0;
273
273
  {
274
 
        these types are currently not used by render.library, but
275
 
        some of them are applicable for guigfx.library functions:
 
274
        these types are currently not used by render.library, but
 
275
        some of them are applicable for guigfx.library functions:
276
276
    }
277
277
     PIXFMT_CHUNKY_HAM8 = (1 shl PIXFMTB_CHUNKY) + COLORMODE_HAM8;
278
278
     PIXFMT_CHUNKY_HAM6 = (1 shl PIXFMTB_CHUNKY) + COLORMODE_HAM6;
281
281
     PIXFMT_BITMAP_HAM6 = (1 shl PIXFMTB_BITMAP) + COLORMODE_HAM6;
282
282
     PIXFMT_RGB_24 = (1 shl PIXFMTB_RGB) + 1;
283
283
  {
284
 
        strictly internal:
 
284
        strictly internal:
285
285
    }
286
286
     PIXFMT_BITMAP_RGB = (1 shl PIXFMTB_BITMAP) + (1 shl PIXFMTB_RGB);
287
287
  {
288
 
  
289
 
        ExtractPalette return codes
290
 
  
291
 
        You must at least check for EXTP_SUCCESS.
292
 
        EXTP_NO_DATA indicates that there were no colors
293
 
        in the histogram.
 
288
 
 
289
        ExtractPalette return codes
 
290
 
 
291
        You must at least check for EXTP_SUCCESS.
 
292
        EXTP_NO_DATA indicates that there were no colors
 
293
        in the histogram.
294
294
 
295
295
                                                                          }
296
296
     EXTP_SUCCESS = 0;
298
298
     EXTP_CALLBACK_ABORTED = 2;
299
299
     EXTP_NO_DATA = 3;
300
300
  {
301
 
  
302
 
        AddRGB, AddRGBImage and AddChunkyImage return codes
303
 
  
304
 
        You must at least check for ADDH_SUCCESS.
305
 
        If not delivered, the histogram might be
306
 
        inaccurate.
307
 
  
 
301
 
 
302
        AddRGB, AddRGBImage and AddChunkyImage return codes
 
303
 
 
304
        You must at least check for ADDH_SUCCESS.
 
305
        If not delivered, the histogram might be
 
306
        inaccurate.
 
307
 
308
308
                                                                          }
309
309
     ADDH_SUCCESS = 0;
310
310
     ADDH_NOT_ENOUGH_MEMORY = 1;
311
311
     ADDH_CALLBACK_ABORTED = 2;
312
312
     ADDH_NO_DATA = 3;
313
 
  {                                                                       
314
 
 
315
 
        Render return codes
316
 
 
317
 
        You must at least check for REND_SUCCESS.
318
 
        If not delivered, the image has not been
319
 
        rendered completely.
 
313
  {
 
314
 
 
315
        Render return codes
 
316
 
 
317
        You must at least check for REND_SUCCESS.
 
318
        If not delivered, the image has not been
 
319
        rendered completely.
320
320
 
321
321
                                                                          }
322
322
     REND_SUCCESS = 0;
324
324
     REND_CALLBACK_ABORTED = 2;
325
325
     REND_NO_VALID_PALETTE = 3;
326
326
     REND_NO_DATA = 3;
327
 
  {                                                                       
328
 
 
329
 
        SortPalette return codes
330
 
 
331
 
        You must at least check for SORTP_SUCCESS.
332
 
        SORTP_NO_DATA indicates that there were data missing,
333
 
        e.g. you specified no histogram or the histogram was empty.
 
327
  {
 
328
 
 
329
        SortPalette return codes
 
330
 
 
331
        You must at least check for SORTP_SUCCESS.
 
332
        SORTP_NO_DATA indicates that there were data missing,
 
333
        e.g. you specified no histogram or the histogram was empty.
334
334
 
335
335
                                                                          }
336
336
     SORTP_SUCCESS = 0;
338
338
     SORTP_NOT_ENOUGH_MEMORY = 2;
339
339
     SORTP_NOT_IMPLEMENTED = 3;
340
340
  {
341
 
  
342
 
        conversion return codes
343
 
  
344
 
        These return codes apply to conversion functions
345
 
        such as Chunky2RGB and ConvertChunky.
 
341
 
 
342
        conversion return codes
 
343
 
 
344
        These return codes apply to conversion functions
 
345
        such as Chunky2RGB and ConvertChunky.
346
346
 
347
347
                                                                          }
348
348
     CONV_SUCCESS = 0;
351
351
     CONV_NO_DATA = 3;
352
352
 
353
353
 
354
 
    
 
354
 
355
355
 
356
356
 
357
357
FUNCTION AddChunkyImageA(histogram : POINTER; chunky : pByte; width : WORD; height : WORD; palette : POINTER; taglist : pTagItem) : longword;
455
455
FUNCTION AddChunkyImageA(histogram : POINTER; chunky : pByte; width : WORD; height : WORD; palette : POINTER; taglist : pTagItem) : longword;
456
456
BEGIN
457
457
  ASM
458
 
        MOVE.L  A6,-(A7)
459
 
        MOVEA.L histogram,A0
460
 
        MOVEA.L chunky,A1
461
 
        MOVE.L  width,D0
462
 
        MOVE.L  height,D1
463
 
        MOVEA.L palette,A2
464
 
        MOVEA.L taglist,A3
465
 
        MOVEA.L RenderBase,A6
466
 
        JSR     -108(A6)
467
 
        MOVEA.L (A7)+,A6
468
 
        MOVE.L  D0,@RESULT
 
458
        MOVE.L  A6,-(A7)
 
459
        MOVEA.L histogram,A0
 
460
        MOVEA.L chunky,A1
 
461
        MOVE.L  width,D0
 
462
        MOVE.L  height,D1
 
463
        MOVEA.L palette,A2
 
464
        MOVEA.L taglist,A3
 
465
        MOVEA.L RenderBase,A6
 
466
        JSR     -108(A6)
 
467
        MOVEA.L (A7)+,A6
 
468
        MOVE.L  D0,@RESULT
469
469
  END;
470
470
END;
471
471
 
472
472
FUNCTION AddHistogramA(histogram1 : POINTER; histogram2 : POINTER; taglist : pTagItem) : longword;
473
473
BEGIN
474
474
  ASM
475
 
        MOVE.L  A6,-(A7)
476
 
        MOVEA.L histogram1,A0
477
 
        MOVEA.L histogram2,A1
478
 
        MOVEA.L taglist,A2
479
 
        MOVEA.L RenderBase,A6
480
 
        JSR     -222(A6)
481
 
        MOVEA.L (A7)+,A6
482
 
        MOVE.L  D0,@RESULT
 
475
        MOVE.L  A6,-(A7)
 
476
        MOVEA.L histogram1,A0
 
477
        MOVEA.L histogram2,A1
 
478
        MOVEA.L taglist,A2
 
479
        MOVEA.L RenderBase,A6
 
480
        JSR     -222(A6)
 
481
        MOVEA.L (A7)+,A6
 
482
        MOVE.L  D0,@RESULT
483
483
  END;
484
484
END;
485
485
 
486
486
FUNCTION AddRGB(histogram : POINTER; RGB : longword; count : longword) : longword;
487
487
BEGIN
488
488
  ASM
489
 
        MOVE.L  A6,-(A7)
490
 
        MOVEA.L histogram,A0
491
 
        MOVE.L  RGB,D0
492
 
        MOVE.L  count,D1
493
 
        MOVEA.L RenderBase,A6
494
 
        JSR     -096(A6)
495
 
        MOVEA.L (A7)+,A6
496
 
        MOVE.L  D0,@RESULT
 
489
        MOVE.L  A6,-(A7)
 
490
        MOVEA.L histogram,A0
 
491
        MOVE.L  RGB,D0
 
492
        MOVE.L  count,D1
 
493
        MOVEA.L RenderBase,A6
 
494
        JSR     -096(A6)
 
495
        MOVEA.L (A7)+,A6
 
496
        MOVE.L  D0,@RESULT
497
497
  END;
498
498
END;
499
499
 
500
500
FUNCTION AddRGBImageA(histogram : POINTER; rgb : pULONG; width : WORD; height : WORD; taglist : pTagItem) : longword;
501
501
BEGIN
502
502
  ASM
503
 
        MOVE.L  A6,-(A7)
504
 
        MOVEA.L histogram,A0
505
 
        MOVEA.L rgb,A1
506
 
        MOVE.L  width,D0
507
 
        MOVE.L  height,D1
508
 
        MOVEA.L taglist,A2
509
 
        MOVEA.L RenderBase,A6
510
 
        JSR     -102(A6)
511
 
        MOVEA.L (A7)+,A6
512
 
        MOVE.L  D0,@RESULT
 
503
        MOVE.L  A6,-(A7)
 
504
        MOVEA.L histogram,A0
 
505
        MOVEA.L rgb,A1
 
506
        MOVE.L  width,D0
 
507
        MOVE.L  height,D1
 
508
        MOVEA.L taglist,A2
 
509
        MOVEA.L RenderBase,A6
 
510
        JSR     -102(A6)
 
511
        MOVEA.L (A7)+,A6
 
512
        MOVE.L  D0,@RESULT
513
513
  END;
514
514
END;
515
515
 
516
516
FUNCTION AllocRenderMem(rendermemhandler : POINTER; size : longword) : POINTER;
517
517
BEGIN
518
518
  ASM
519
 
        MOVE.L  A6,-(A7)
520
 
        MOVEA.L rendermemhandler,A0
521
 
        MOVE.L  size,D0
522
 
        MOVEA.L RenderBase,A6
523
 
        JSR     -054(A6)
524
 
        MOVEA.L (A7)+,A6
525
 
        MOVE.L  D0,@RESULT
 
519
        MOVE.L  A6,-(A7)
 
520
        MOVEA.L rendermemhandler,A0
 
521
        MOVE.L  size,D0
 
522
        MOVEA.L RenderBase,A6
 
523
        JSR     -054(A6)
 
524
        MOVEA.L (A7)+,A6
 
525
        MOVE.L  D0,@RESULT
526
526
  END;
527
527
END;
528
528
 
529
529
FUNCTION AllocRenderVec(rendermemhandler : POINTER; size : longword) : POINTER;
530
530
BEGIN
531
531
  ASM
532
 
        MOVE.L  A6,-(A7)
533
 
        MOVEA.L rendermemhandler,A0
534
 
        MOVE.L  size,D0
535
 
        MOVEA.L RenderBase,A6
536
 
        JSR     -066(A6)
537
 
        MOVEA.L (A7)+,A6
538
 
        MOVE.L  D0,@RESULT
 
532
        MOVE.L  A6,-(A7)
 
533
        MOVEA.L rendermemhandler,A0
 
534
        MOVE.L  size,D0
 
535
        MOVEA.L RenderBase,A6
 
536
        JSR     -066(A6)
 
537
        MOVEA.L (A7)+,A6
 
538
        MOVE.L  D0,@RESULT
539
539
  END;
540
540
END;
541
541
 
542
542
FUNCTION AllocRenderVecClear(rendermemhandler : POINTER; size : longword) : POINTER;
543
543
BEGIN
544
544
  ASM
545
 
        MOVE.L  A6,-(A7)
546
 
        MOVEA.L rendermemhandler,A0
547
 
        MOVE.L  size,D0
548
 
        MOVEA.L RenderBase,A6
549
 
        JSR     -306(A6)
550
 
        MOVEA.L (A7)+,A6
551
 
        MOVE.L  D0,@RESULT
 
545
        MOVE.L  A6,-(A7)
 
546
        MOVEA.L rendermemhandler,A0
 
547
        MOVE.L  size,D0
 
548
        MOVEA.L RenderBase,A6
 
549
        JSR     -306(A6)
 
550
        MOVEA.L (A7)+,A6
 
551
        MOVE.L  D0,@RESULT
552
552
  END;
553
553
END;
554
554
 
555
555
PROCEDURE ApplyAlphaChannelA(sourcearray : pULONG; width : WORD; height : WORD; destarray : pULONG; taglist : pTagItem);
556
556
BEGIN
557
557
  ASM
558
 
        MOVE.L  A6,-(A7)
559
 
        MOVEA.L sourcearray,A0
560
 
        MOVE.L  width,D0
561
 
        MOVE.L  height,D1
562
 
        MOVEA.L destarray,A1
563
 
        MOVEA.L taglist,A2
564
 
        MOVEA.L RenderBase,A6
565
 
        JSR     -294(A6)
566
 
        MOVEA.L (A7)+,A6
 
558
        MOVE.L  A6,-(A7)
 
559
        MOVEA.L sourcearray,A0
 
560
        MOVE.L  width,D0
 
561
        MOVE.L  height,D1
 
562
        MOVEA.L destarray,A1
 
563
        MOVEA.L taglist,A2
 
564
        MOVEA.L RenderBase,A6
 
565
        JSR     -294(A6)
 
566
        MOVEA.L (A7)+,A6
567
567
  END;
568
568
END;
569
569
 
570
570
FUNCTION BestPen(palette : POINTER; rgb : longword) : LONGINT;
571
571
BEGIN
572
572
  ASM
573
 
        MOVE.L  A6,-(A7)
574
 
        MOVEA.L palette,A0
575
 
        MOVE.L  rgb,D0
576
 
        MOVEA.L RenderBase,A6
577
 
        JSR     -204(A6)
578
 
        MOVEA.L (A7)+,A6
579
 
        MOVE.L  D0,@RESULT
 
573
        MOVE.L  A6,-(A7)
 
574
        MOVEA.L palette,A0
 
575
        MOVE.L  rgb,D0
 
576
        MOVEA.L RenderBase,A6
 
577
        JSR     -204(A6)
 
578
        MOVEA.L (A7)+,A6
 
579
        MOVE.L  D0,@RESULT
580
580
  END;
581
581
END;
582
582
 
583
583
PROCEDURE Chunky2BitMapA(chunky : pByte; sx : WORD; sy : WORD; width : WORD; height : WORD; bitmap : pBitMap; dx : WORD; dy : WORD; taglist : pTagItem);
584
584
BEGIN
585
585
  ASM
586
 
        MOVE.L  A6,-(A7)
587
 
        MOVEA.L chunky,A0
588
 
        MOVE.L  sx,D0
589
 
        MOVE.L  sy,D1
590
 
        MOVE.L  width,D2
591
 
        MOVE.L  height,D3
592
 
        MOVEA.L bitmap,A1
593
 
        MOVE.L  dx,D4
594
 
        MOVE.L  dy,D5
595
 
        MOVEA.L taglist,A2
596
 
        MOVEA.L RenderBase,A6
597
 
        JSR     -138(A6)
598
 
        MOVEA.L (A7)+,A6
 
586
        MOVE.L  A6,-(A7)
 
587
        MOVEA.L chunky,A0
 
588
        MOVE.L  sx,D0
 
589
        MOVE.L  sy,D1
 
590
        MOVE.L  width,D2
 
591
        MOVE.L  height,D3
 
592
        MOVEA.L bitmap,A1
 
593
        MOVE.L  dx,D4
 
594
        MOVE.L  dy,D5
 
595
        MOVEA.L taglist,A2
 
596
        MOVEA.L RenderBase,A6
 
597
        JSR     -138(A6)
 
598
        MOVEA.L (A7)+,A6
599
599
  END;
600
600
END;
601
601
 
602
602
FUNCTION Chunky2RGBA(chunky : pByte; width : WORD; height : WORD; rgb : pULONG; palette : POINTER; taglist : pTagItem) : longword;
603
603
BEGIN
604
604
  ASM
605
 
        MOVE.L  A6,-(A7)
606
 
        MOVEA.L chunky,A0
607
 
        MOVE.L  width,D0
608
 
        MOVE.L  height,D1
609
 
        MOVEA.L rgb,A1
610
 
        MOVEA.L palette,A2
611
 
        MOVEA.L taglist,A3
612
 
        MOVEA.L RenderBase,A6
613
 
        JSR     -132(A6)
614
 
        MOVEA.L (A7)+,A6
615
 
        MOVE.L  D0,@RESULT
 
605
        MOVE.L  A6,-(A7)
 
606
        MOVEA.L chunky,A0
 
607
        MOVE.L  width,D0
 
608
        MOVE.L  height,D1
 
609
        MOVEA.L rgb,A1
 
610
        MOVEA.L palette,A2
 
611
        MOVEA.L taglist,A3
 
612
        MOVEA.L RenderBase,A6
 
613
        JSR     -132(A6)
 
614
        MOVEA.L (A7)+,A6
 
615
        MOVE.L  D0,@RESULT
616
616
  END;
617
617
END;
618
618
 
619
619
FUNCTION ChunkyArrayDiversityA(chunky : pByte; palette : POINTER; width : WORD; height : WORD; taglist : pTagItem) : LONGINT;
620
620
BEGIN
621
621
  ASM
622
 
        MOVE.L  A6,-(A7)
623
 
        MOVEA.L chunky,A0
624
 
        MOVEA.L palette,A1
625
 
        MOVE.L  width,D0
626
 
        MOVE.L  height,D1
627
 
        MOVEA.L taglist,A2
628
 
        MOVEA.L RenderBase,A6
629
 
        JSR     -270(A6)
630
 
        MOVEA.L (A7)+,A6
631
 
        MOVE.L  D0,@RESULT
 
622
        MOVE.L  A6,-(A7)
 
623
        MOVEA.L chunky,A0
 
624
        MOVEA.L palette,A1
 
625
        MOVE.L  width,D0
 
626
        MOVE.L  height,D1
 
627
        MOVEA.L taglist,A2
 
628
        MOVEA.L RenderBase,A6
 
629
        JSR     -270(A6)
 
630
        MOVEA.L (A7)+,A6
 
631
        MOVE.L  D0,@RESULT
632
632
  END;
633
633
END;
634
634
 
635
635
FUNCTION ConvertChunkyA(source : pByte; oldpalette : POINTER; width : WORD; height : WORD; dest : pByte; newpalette : POINTER; taglist : pTagItem) : longword;
636
636
BEGIN
637
637
  ASM
638
 
        MOVE.L  A6,-(A7)
639
 
        MOVEA.L source,A0
640
 
        MOVEA.L oldpalette,A1
641
 
        MOVE.L  width,D0
642
 
        MOVE.L  height,D1
643
 
        MOVEA.L dest,A2
644
 
        MOVEA.L newpalette,A3
645
 
        MOVEA.L taglist,A4
646
 
        MOVEA.L RenderBase,A6
647
 
        JSR     -162(A6)
648
 
        MOVEA.L (A7)+,A6
649
 
        MOVE.L  D0,@RESULT
 
638
        MOVE.L  A6,-(A7)
 
639
        MOVEA.L source,A0
 
640
        MOVEA.L oldpalette,A1
 
641
        MOVE.L  width,D0
 
642
        MOVE.L  height,D1
 
643
        MOVEA.L dest,A2
 
644
        MOVEA.L newpalette,A3
 
645
        MOVEA.L taglist,A4
 
646
        MOVEA.L RenderBase,A6
 
647
        JSR     -162(A6)
 
648
        MOVEA.L (A7)+,A6
 
649
        MOVE.L  D0,@RESULT
650
650
  END;
651
651
END;
652
652
 
653
653
FUNCTION CountRGB(histogram : POINTER; rgb : longword) : longword;
654
654
BEGIN
655
655
  ASM
656
 
        MOVE.L  A6,-(A7)
657
 
        MOVEA.L histogram,A0
658
 
        MOVE.L  rgb,D0
659
 
        MOVEA.L RenderBase,A6
660
 
        JSR     -198(A6)
661
 
        MOVEA.L (A7)+,A6
662
 
        MOVE.L  D0,@RESULT
 
656
        MOVE.L  A6,-(A7)
 
657
        MOVEA.L histogram,A0
 
658
        MOVE.L  rgb,D0
 
659
        MOVEA.L RenderBase,A6
 
660
        JSR     -198(A6)
 
661
        MOVEA.L (A7)+,A6
 
662
        MOVE.L  D0,@RESULT
663
663
  END;
664
664
END;
665
665
 
666
666
PROCEDURE CreateAlphaArrayA(rgbarray : pULONG; width : WORD; height : WORD; taglist : pTagItem);
667
667
BEGIN
668
668
  ASM
669
 
        MOVE.L  A6,-(A7)
670
 
        MOVEA.L rgbarray,A0
671
 
        MOVE.L  width,D0
672
 
        MOVE.L  height,D1
673
 
        MOVEA.L taglist,A1
674
 
        MOVEA.L RenderBase,A6
675
 
        JSR     -312(A6)
676
 
        MOVEA.L (A7)+,A6
 
669
        MOVE.L  A6,-(A7)
 
670
        MOVEA.L rgbarray,A0
 
671
        MOVE.L  width,D0
 
672
        MOVE.L  height,D1
 
673
        MOVEA.L taglist,A1
 
674
        MOVEA.L RenderBase,A6
 
675
        JSR     -312(A6)
 
676
        MOVEA.L (A7)+,A6
677
677
  END;
678
678
END;
679
679
 
680
680
FUNCTION CreateHistogramA(taglist : pTagItem) : POINTER;
681
681
BEGIN
682
682
  ASM
683
 
        MOVE.L  A6,-(A7)
684
 
        MOVEA.L taglist,A1
685
 
        MOVEA.L RenderBase,A6
686
 
        JSR     -078(A6)
687
 
        MOVEA.L (A7)+,A6
688
 
        MOVE.L  D0,@RESULT
 
683
        MOVE.L  A6,-(A7)
 
684
        MOVEA.L taglist,A1
 
685
        MOVEA.L RenderBase,A6
 
686
        JSR     -078(A6)
 
687
        MOVEA.L (A7)+,A6
 
688
        MOVE.L  D0,@RESULT
689
689
  END;
690
690
END;
691
691
 
692
692
FUNCTION CreateMapEngineA(palette : POINTER; taglist : pTagItem) : POINTER;
693
693
BEGIN
694
694
  ASM
695
 
        MOVE.L  A6,-(A7)
696
 
        MOVEA.L palette,A0
697
 
        MOVEA.L taglist,A1
698
 
        MOVEA.L RenderBase,A6
699
 
        JSR     -246(A6)
700
 
        MOVEA.L (A7)+,A6
701
 
        MOVE.L  D0,@RESULT
 
695
        MOVE.L  A6,-(A7)
 
696
        MOVEA.L palette,A0
 
697
        MOVEA.L taglist,A1
 
698
        MOVEA.L RenderBase,A6
 
699
        JSR     -246(A6)
 
700
        MOVEA.L (A7)+,A6
 
701
        MOVE.L  D0,@RESULT
702
702
  END;
703
703
END;
704
704
 
705
705
FUNCTION CreatePaletteA(taglist : pTagItem) : POINTER;
706
706
BEGIN
707
707
  ASM
708
 
        MOVE.L  A6,-(A7)
709
 
        MOVEA.L taglist,A1
710
 
        MOVEA.L RenderBase,A6
711
 
        JSR     -174(A6)
712
 
        MOVEA.L (A7)+,A6
713
 
        MOVE.L  D0,@RESULT
 
708
        MOVE.L  A6,-(A7)
 
709
        MOVEA.L taglist,A1
 
710
        MOVEA.L RenderBase,A6
 
711
        JSR     -174(A6)
 
712
        MOVEA.L (A7)+,A6
 
713
        MOVE.L  D0,@RESULT
714
714
  END;
715
715
END;
716
716
 
717
717
PROCEDURE CreatePenTableA(chunky : pByte; oldpalette : POINTER; width : WORD; height : WORD; newpalette : POINTER; convtab : pByte; taglist : pTagItem);
718
718
BEGIN
719
719
  ASM
720
 
        MOVE.L  A6,-(A7)
721
 
        MOVEA.L chunky,A0
722
 
        MOVEA.L oldpalette,A1
723
 
        MOVE.L  width,D0
724
 
        MOVE.L  height,D1
725
 
        MOVEA.L newpalette,A2
726
 
        MOVEA.L convtab,A3
727
 
        MOVEA.L taglist,A4
728
 
        MOVEA.L RenderBase,A6
729
 
        JSR     -168(A6)
730
 
        MOVEA.L (A7)+,A6
 
720
        MOVE.L  A6,-(A7)
 
721
        MOVEA.L chunky,A0
 
722
        MOVEA.L oldpalette,A1
 
723
        MOVE.L  width,D0
 
724
        MOVE.L  height,D1
 
725
        MOVEA.L newpalette,A2
 
726
        MOVEA.L convtab,A3
 
727
        MOVEA.L taglist,A4
 
728
        MOVEA.L RenderBase,A6
 
729
        JSR     -168(A6)
 
730
        MOVEA.L (A7)+,A6
731
731
  END;
732
732
END;
733
733
 
734
734
FUNCTION CreateRMHandlerA(taglist : pTagItem) : POINTER;
735
735
BEGIN
736
736
  ASM
737
 
        MOVE.L  A6,-(A7)
738
 
        MOVEA.L taglist,A1
739
 
        MOVEA.L RenderBase,A6
740
 
        JSR     -042(A6)
741
 
        MOVEA.L (A7)+,A6
742
 
        MOVE.L  D0,@RESULT
 
737
        MOVE.L  A6,-(A7)
 
738
        MOVEA.L taglist,A1
 
739
        MOVEA.L RenderBase,A6
 
740
        JSR     -042(A6)
 
741
        MOVEA.L (A7)+,A6
 
742
        MOVE.L  D0,@RESULT
743
743
  END;
744
744
END;
745
745
 
746
746
FUNCTION CreateScaleEngineA(sourcewidth : WORD; sourceheight : WORD; destwidth : WORD; destheight : WORD; taglist : pTagItem) : POINTER;
747
747
BEGIN
748
748
  ASM
749
 
        MOVE.L  A6,-(A7)
750
 
        MOVE.L  sourcewidth,D0
751
 
        MOVE.L  sourceheight,D1
752
 
        MOVE.L  destwidth,D2
753
 
        MOVE.L  destheight,D3
754
 
        MOVEA.L taglist,A1
755
 
        MOVEA.L RenderBase,A6
756
 
        JSR     -144(A6)
757
 
        MOVEA.L (A7)+,A6
758
 
        MOVE.L  D0,@RESULT
 
749
        MOVE.L  A6,-(A7)
 
750
        MOVE.L  sourcewidth,D0
 
751
        MOVE.L  sourceheight,D1
 
752
        MOVE.L  destwidth,D2
 
753
        MOVE.L  destheight,D3
 
754
        MOVEA.L taglist,A1
 
755
        MOVEA.L RenderBase,A6
 
756
        JSR     -144(A6)
 
757
        MOVEA.L (A7)+,A6
 
758
        MOVE.L  D0,@RESULT
759
759
  END;
760
760
END;
761
761
 
762
762
PROCEDURE DeleteHistogram(histogram : POINTER);
763
763
BEGIN
764
764
  ASM
765
 
        MOVE.L  A6,-(A7)
766
 
        MOVEA.L histogram,A0
767
 
        MOVEA.L RenderBase,A6
768
 
        JSR     -084(A6)
769
 
        MOVEA.L (A7)+,A6
 
765
        MOVE.L  A6,-(A7)
 
766
        MOVEA.L histogram,A0
 
767
        MOVEA.L RenderBase,A6
 
768
        JSR     -084(A6)
 
769
        MOVEA.L (A7)+,A6
770
770
  END;
771
771
END;
772
772
 
773
773
PROCEDURE DeleteMapEngine(engine : POINTER);
774
774
BEGIN
775
775
  ASM
776
 
        MOVE.L  A6,-(A7)
777
 
        MOVEA.L engine,A0
778
 
        MOVEA.L RenderBase,A6
779
 
        JSR     -252(A6)
780
 
        MOVEA.L (A7)+,A6
 
776
        MOVE.L  A6,-(A7)
 
777
        MOVEA.L engine,A0
 
778
        MOVEA.L RenderBase,A6
 
779
        JSR     -252(A6)
 
780
        MOVEA.L (A7)+,A6
781
781
  END;
782
782
END;
783
783
 
784
784
PROCEDURE DeletePalette(palette : POINTER);
785
785
BEGIN
786
786
  ASM
787
 
        MOVE.L  A6,-(A7)
788
 
        MOVEA.L palette,A0
789
 
        MOVEA.L RenderBase,A6
790
 
        JSR     -180(A6)
791
 
        MOVEA.L (A7)+,A6
 
787
        MOVE.L  A6,-(A7)
 
788
        MOVEA.L palette,A0
 
789
        MOVEA.L RenderBase,A6
 
790
        JSR     -180(A6)
 
791
        MOVEA.L (A7)+,A6
792
792
  END;
793
793
END;
794
794
 
795
795
PROCEDURE DeleteRMHandler(rmh : POINTER);
796
796
BEGIN
797
797
  ASM
798
 
        MOVE.L  A6,-(A7)
799
 
        MOVEA.L rmh,A0
800
 
        MOVEA.L RenderBase,A6
801
 
        JSR     -048(A6)
802
 
        MOVEA.L (A7)+,A6
 
798
        MOVE.L  A6,-(A7)
 
799
        MOVEA.L rmh,A0
 
800
        MOVEA.L RenderBase,A6
 
801
        JSR     -048(A6)
 
802
        MOVEA.L (A7)+,A6
803
803
  END;
804
804
END;
805
805
 
806
806
PROCEDURE DeleteScaleEngine(engine : POINTER);
807
807
BEGIN
808
808
  ASM
809
 
        MOVE.L  A6,-(A7)
810
 
        MOVEA.L engine,A0
811
 
        MOVEA.L RenderBase,A6
812
 
        JSR     -150(A6)
813
 
        MOVEA.L (A7)+,A6
 
809
        MOVE.L  A6,-(A7)
 
810
        MOVEA.L engine,A0
 
811
        MOVEA.L RenderBase,A6
 
812
        JSR     -150(A6)
 
813
        MOVEA.L (A7)+,A6
814
814
  END;
815
815
END;
816
816
 
817
817
PROCEDURE ExportPaletteA(palette : POINTER; coltab : POINTER; taglist : pTagItem);
818
818
BEGIN
819
819
  ASM
820
 
        MOVE.L  A6,-(A7)
821
 
        MOVEA.L palette,A0
822
 
        MOVEA.L coltab,A1
823
 
        MOVEA.L taglist,A2
824
 
        MOVEA.L RenderBase,A6
825
 
        JSR     -192(A6)
826
 
        MOVEA.L (A7)+,A6
 
820
        MOVE.L  A6,-(A7)
 
821
        MOVEA.L palette,A0
 
822
        MOVEA.L coltab,A1
 
823
        MOVEA.L taglist,A2
 
824
        MOVEA.L RenderBase,A6
 
825
        JSR     -192(A6)
 
826
        MOVEA.L (A7)+,A6
827
827
  END;
828
828
END;
829
829
 
830
830
PROCEDURE ExtractAlphaChannelA(rgbarray : pULONG; width : WORD; height : WORD; chunkyarray : pByte; taglist : pTagItem);
831
831
BEGIN
832
832
  ASM
833
 
        MOVE.L  A6,-(A7)
834
 
        MOVEA.L rgbarray,A0
835
 
        MOVE.L  width,D0
836
 
        MOVE.L  height,D1
837
 
        MOVEA.L chunkyarray,A1
838
 
        MOVEA.L taglist,A2
839
 
        MOVEA.L RenderBase,A6
840
 
        JSR     -288(A6)
841
 
        MOVEA.L (A7)+,A6
 
833
        MOVE.L  A6,-(A7)
 
834
        MOVEA.L rgbarray,A0
 
835
        MOVE.L  width,D0
 
836
        MOVE.L  height,D1
 
837
        MOVEA.L chunkyarray,A1
 
838
        MOVEA.L taglist,A2
 
839
        MOVEA.L RenderBase,A6
 
840
        JSR     -288(A6)
 
841
        MOVEA.L (A7)+,A6
842
842
  END;
843
843
END;
844
844
 
845
845
FUNCTION ExtractPaletteA(histogram : POINTER; palette : pULONG; numcolors : WORD; taglist : pTagItem) : longword;
846
846
BEGIN
847
847
  ASM
848
 
        MOVE.L  A6,-(A7)
849
 
        MOVEA.L histogram,A0
850
 
        MOVEA.L palette,A1
851
 
        MOVE.L  numcolors,D0
852
 
        MOVEA.L taglist,A2
853
 
        MOVEA.L RenderBase,A6
854
 
        JSR     -114(A6)
855
 
        MOVEA.L (A7)+,A6
856
 
        MOVE.L  D0,@RESULT
 
848
        MOVE.L  A6,-(A7)
 
849
        MOVEA.L histogram,A0
 
850
        MOVEA.L palette,A1
 
851
        MOVE.L  numcolors,D0
 
852
        MOVEA.L taglist,A2
 
853
        MOVEA.L RenderBase,A6
 
854
        JSR     -114(A6)
 
855
        MOVEA.L (A7)+,A6
 
856
        MOVE.L  D0,@RESULT
857
857
  END;
858
858
END;
859
859
 
860
860
PROCEDURE FlushPalette(palette : POINTER);
861
861
BEGIN
862
862
  ASM
863
 
        MOVE.L  A6,-(A7)
864
 
        MOVEA.L palette,A0
865
 
        MOVEA.L RenderBase,A6
866
 
        JSR     -210(A6)
867
 
        MOVEA.L (A7)+,A6
 
863
        MOVE.L  A6,-(A7)
 
864
        MOVEA.L palette,A0
 
865
        MOVEA.L RenderBase,A6
 
866
        JSR     -210(A6)
 
867
        MOVEA.L (A7)+,A6
868
868
  END;
869
869
END;
870
870
 
871
871
PROCEDURE FreeRenderMem(rendermemhandler : POINTER; mem : POINTER; size : longword);
872
872
BEGIN
873
873
  ASM
874
 
        MOVE.L  A6,-(A7)
875
 
        MOVEA.L rendermemhandler,A0
876
 
        MOVEA.L mem,A1
877
 
        MOVE.L  size,D0
878
 
        MOVEA.L RenderBase,A6
879
 
        JSR     -060(A6)
880
 
        MOVEA.L (A7)+,A6
 
874
        MOVE.L  A6,-(A7)
 
875
        MOVEA.L rendermemhandler,A0
 
876
        MOVEA.L mem,A1
 
877
        MOVE.L  size,D0
 
878
        MOVEA.L RenderBase,A6
 
879
        JSR     -060(A6)
 
880
        MOVEA.L (A7)+,A6
881
881
  END;
882
882
END;
883
883
 
884
884
PROCEDURE FreeRenderVec(mem : POINTER);
885
885
BEGIN
886
886
  ASM
887
 
        MOVE.L  A6,-(A7)
888
 
        MOVEA.L mem,A0
889
 
        MOVEA.L RenderBase,A6
890
 
        JSR     -072(A6)
891
 
        MOVEA.L (A7)+,A6
 
887
        MOVE.L  A6,-(A7)
 
888
        MOVEA.L mem,A0
 
889
        MOVEA.L RenderBase,A6
 
890
        JSR     -072(A6)
 
891
        MOVEA.L (A7)+,A6
892
892
  END;
893
893
END;
894
894
 
895
895
PROCEDURE ImportPaletteA(palette : POINTER; coltab : POINTER; numcols : WORD; taglist : pTagItem);
896
896
BEGIN
897
897
  ASM
898
 
        MOVE.L  A6,-(A7)
899
 
        MOVEA.L palette,A0
900
 
        MOVEA.L coltab,A1
901
 
        MOVE.L  numcols,D0
902
 
        MOVEA.L taglist,A2
903
 
        MOVEA.L RenderBase,A6
904
 
        JSR     -186(A6)
905
 
        MOVEA.L (A7)+,A6
 
898
        MOVE.L  A6,-(A7)
 
899
        MOVEA.L palette,A0
 
900
        MOVEA.L coltab,A1
 
901
        MOVE.L  numcols,D0
 
902
        MOVEA.L taglist,A2
 
903
        MOVEA.L RenderBase,A6
 
904
        JSR     -186(A6)
 
905
        MOVEA.L (A7)+,A6
906
906
  END;
907
907
END;
908
908
 
909
909
PROCEDURE InsertAlphaChannelA(maskarray : pByte; width : WORD; height : WORD; rgbarray : pULONG; taglist : pTagItem);
910
910
BEGIN
911
911
  ASM
912
 
        MOVE.L  A6,-(A7)
913
 
        MOVEA.L maskarray,A0
914
 
        MOVE.L  width,D0
915
 
        MOVE.L  height,D1
916
 
        MOVEA.L rgbarray,A1
917
 
        MOVEA.L taglist,A2
918
 
        MOVEA.L RenderBase,A6
919
 
        JSR     -282(A6)
920
 
        MOVEA.L (A7)+,A6
 
912
        MOVE.L  A6,-(A7)
 
913
        MOVEA.L maskarray,A0
 
914
        MOVE.L  width,D0
 
915
        MOVE.L  height,D1
 
916
        MOVEA.L rgbarray,A1
 
917
        MOVEA.L taglist,A2
 
918
        MOVEA.L RenderBase,A6
 
919
        JSR     -282(A6)
 
920
        MOVEA.L (A7)+,A6
921
921
  END;
922
922
END;
923
923
 
924
924
FUNCTION MapChunkyArrayA(engine : POINTER; source : pByte; palette : POINTER; width : WORD; height : WORD; dest : pByte; taglist : pTagItem) : longword;
925
925
BEGIN
926
926
  ASM
927
 
        MOVE.L  A6,-(A7)
928
 
        MOVEA.L engine,A0
929
 
        MOVEA.L source,A1
930
 
        MOVEA.L palette,A2
931
 
        MOVE.L  width,D0
932
 
        MOVE.L  height,D1
933
 
        MOVEA.L dest,A3
934
 
        MOVEA.L taglist,A4
935
 
        MOVEA.L RenderBase,A6
936
 
        JSR     -276(A6)
937
 
        MOVEA.L (A7)+,A6
938
 
        MOVE.L  D0,@RESULT
 
927
        MOVE.L  A6,-(A7)
 
928
        MOVEA.L engine,A0
 
929
        MOVEA.L source,A1
 
930
        MOVEA.L palette,A2
 
931
        MOVE.L  width,D0
 
932
        MOVE.L  height,D1
 
933
        MOVEA.L dest,A3
 
934
        MOVEA.L taglist,A4
 
935
        MOVEA.L RenderBase,A6
 
936
        JSR     -276(A6)
 
937
        MOVEA.L (A7)+,A6
 
938
        MOVE.L  D0,@RESULT
939
939
  END;
940
940
END;
941
941
 
942
942
FUNCTION MapRGBArrayA(engine : POINTER; rgb : pULONG; width : WORD; height : WORD; chunky : pByte; taglist : pTagItem) : longword;
943
943
BEGIN
944
944
  ASM
945
 
        MOVE.L  A6,-(A7)
946
 
        MOVEA.L engine,A0
947
 
        MOVEA.L rgb,A1
948
 
        MOVE.L  width,D0
949
 
        MOVE.L  height,D1
950
 
        MOVEA.L chunky,A2
951
 
        MOVEA.L taglist,A3
952
 
        MOVEA.L RenderBase,A6
953
 
        JSR     -258(A6)
954
 
        MOVEA.L (A7)+,A6
955
 
        MOVE.L  D0,@RESULT
 
945
        MOVE.L  A6,-(A7)
 
946
        MOVEA.L engine,A0
 
947
        MOVEA.L rgb,A1
 
948
        MOVE.L  width,D0
 
949
        MOVE.L  height,D1
 
950
        MOVEA.L chunky,A2
 
951
        MOVEA.L taglist,A3
 
952
        MOVEA.L RenderBase,A6
 
953
        JSR     -258(A6)
 
954
        MOVEA.L (A7)+,A6
 
955
        MOVE.L  D0,@RESULT
956
956
  END;
957
957
END;
958
958
 
959
959
PROCEDURE MixAlphaChannelA(source1 : pULONG; source2 : pULONG; width : WORD; height : WORD; dest : pULONG; taglist : pTagItem);
960
960
BEGIN
961
961
  ASM
962
 
        MOVE.L  A6,-(A7)
963
 
        MOVEA.L source1,A0
964
 
        MOVEA.L source2,A1
965
 
        MOVE.L  width,D0
966
 
        MOVE.L  height,D1
967
 
        MOVEA.L dest,A2
968
 
        MOVEA.L taglist,A3
969
 
        MOVEA.L RenderBase,A6
970
 
        JSR     -318(A6)
971
 
        MOVEA.L (A7)+,A6
 
962
        MOVE.L  A6,-(A7)
 
963
        MOVEA.L source1,A0
 
964
        MOVEA.L source2,A1
 
965
        MOVE.L  width,D0
 
966
        MOVE.L  height,D1
 
967
        MOVEA.L dest,A2
 
968
        MOVEA.L taglist,A3
 
969
        MOVEA.L RenderBase,A6
 
970
        JSR     -318(A6)
 
971
        MOVEA.L (A7)+,A6
972
972
  END;
973
973
END;
974
974
 
975
975
PROCEDURE MixRGBArrayA(sourcearray : pULONG; width : WORD; height : WORD; destarray : pULONG; ratio : WORD; taglist : pTagItem);
976
976
BEGIN
977
977
  ASM
978
 
        MOVE.L  A6,-(A7)
979
 
        MOVEA.L sourcearray,A0
980
 
        MOVE.L  width,D0
981
 
        MOVE.L  height,D1
982
 
        MOVEA.L destarray,A1
983
 
        MOVE.L  ratio,D2
984
 
        MOVEA.L taglist,A2
985
 
        MOVEA.L RenderBase,A6
986
 
        JSR     -300(A6)
987
 
        MOVEA.L (A7)+,A6
 
978
        MOVE.L  A6,-(A7)
 
979
        MOVEA.L sourcearray,A0
 
980
        MOVE.L  width,D0
 
981
        MOVE.L  height,D1
 
982
        MOVEA.L destarray,A1
 
983
        MOVE.L  ratio,D2
 
984
        MOVEA.L taglist,A2
 
985
        MOVEA.L RenderBase,A6
 
986
        JSR     -300(A6)
 
987
        MOVEA.L (A7)+,A6
988
988
  END;
989
989
END;
990
990
 
991
991
PROCEDURE Planar2ChunkyA(planetab : pPLANEPTR; bytewidth : WORD; height : WORD; depth : WORD; bytesperrow : WORD; chunky : pByte; taglist : pTagItem);
992
992
BEGIN
993
993
  ASM
994
 
        MOVE.L  A6,-(A7)
995
 
        MOVEA.L planetab,A0
996
 
        MOVE.L  bytewidth,D0
997
 
        MOVE.L  height,D1
998
 
        MOVE.L  depth,D2
999
 
        MOVE.L  bytesperrow,D3
1000
 
        MOVEA.L chunky,A1
1001
 
        MOVEA.L taglist,A2
1002
 
        MOVEA.L RenderBase,A6
1003
 
        JSR     -126(A6)
1004
 
        MOVEA.L (A7)+,A6
 
994
        MOVE.L  A6,-(A7)
 
995
        MOVEA.L planetab,A0
 
996
        MOVE.L  bytewidth,D0
 
997
        MOVE.L  height,D1
 
998
        MOVE.L  depth,D2
 
999
        MOVE.L  bytesperrow,D3
 
1000
        MOVEA.L chunky,A1
 
1001
        MOVEA.L taglist,A2
 
1002
        MOVEA.L RenderBase,A6
 
1003
        JSR     -126(A6)
 
1004
        MOVEA.L (A7)+,A6
1005
1005
  END;
1006
1006
END;
1007
1007
 
1008
1008
FUNCTION QueryHistogram(histogram : POINTER; d0arg : longword) : longword;
1009
1009
BEGIN
1010
1010
  ASM
1011
 
        MOVE.L  A6,-(A7)
1012
 
        MOVEA.L histogram,A0
1013
 
        MOVE.L  d0arg,D0
1014
 
        MOVEA.L RenderBase,A6
1015
 
        JSR     -090(A6)
1016
 
        MOVEA.L (A7)+,A6
1017
 
        MOVE.L  D0,@RESULT
 
1011
        MOVE.L  A6,-(A7)
 
1012
        MOVEA.L histogram,A0
 
1013
        MOVE.L  d0arg,D0
 
1014
        MOVEA.L RenderBase,A6
 
1015
        JSR     -090(A6)
 
1016
        MOVEA.L (A7)+,A6
 
1017
        MOVE.L  D0,@RESULT
1018
1018
  END;
1019
1019
END;
1020
1020
 
1021
1021
FUNCTION RenderA(rgb : pULONG; width : WORD; height : WORD; chunky : pByte; palette : POINTER; taglist : pTagItem) : longword;
1022
1022
BEGIN
1023
1023
  ASM
1024
 
        MOVE.L  A6,-(A7)
1025
 
        MOVEA.L rgb,A0
1026
 
        MOVE.L  width,D0
1027
 
        MOVE.L  height,D1
1028
 
        MOVEA.L chunky,A1
1029
 
        MOVEA.L palette,A2
1030
 
        MOVEA.L taglist,A3
1031
 
        MOVEA.L RenderBase,A6
1032
 
        JSR     -120(A6)
1033
 
        MOVEA.L (A7)+,A6
1034
 
        MOVE.L  D0,@RESULT
 
1024
        MOVE.L  A6,-(A7)
 
1025
        MOVEA.L rgb,A0
 
1026
        MOVE.L  width,D0
 
1027
        MOVE.L  height,D1
 
1028
        MOVEA.L chunky,A1
 
1029
        MOVEA.L palette,A2
 
1030
        MOVEA.L taglist,A3
 
1031
        MOVEA.L RenderBase,A6
 
1032
        JSR     -120(A6)
 
1033
        MOVEA.L (A7)+,A6
 
1034
        MOVE.L  D0,@RESULT
1035
1035
  END;
1036
1036
END;
1037
1037
 
1038
1038
FUNCTION RGBArrayDiversityA(rgb : pULONG; width : WORD; height : WORD; taglist : pTagItem) : LONGINT;
1039
1039
BEGIN
1040
1040
  ASM
1041
 
        MOVE.L  A6,-(A7)
1042
 
        MOVEA.L rgb,A0
1043
 
        MOVE.L  width,D0
1044
 
        MOVE.L  height,D1
1045
 
        MOVEA.L taglist,A1
1046
 
        MOVEA.L RenderBase,A6
1047
 
        JSR     -264(A6)
1048
 
        MOVEA.L (A7)+,A6
1049
 
        MOVE.L  D0,@RESULT
 
1041
        MOVE.L  A6,-(A7)
 
1042
        MOVEA.L rgb,A0
 
1043
        MOVE.L  width,D0
 
1044
        MOVE.L  height,D1
 
1045
        MOVEA.L taglist,A1
 
1046
        MOVEA.L RenderBase,A6
 
1047
        JSR     -264(A6)
 
1048
        MOVEA.L (A7)+,A6
 
1049
        MOVE.L  D0,@RESULT
1050
1050
  END;
1051
1051
END;
1052
1052
 
1053
1053
FUNCTION ScaleA(engine : POINTER; source : POINTER; dest : POINTER; taglist : pTagItem) : longword;
1054
1054
BEGIN
1055
1055
  ASM
1056
 
        MOVE.L  A6,-(A7)
1057
 
        MOVEA.L engine,A0
1058
 
        MOVEA.L source,A1
1059
 
        MOVEA.L dest,A2
1060
 
        MOVEA.L taglist,A3
1061
 
        MOVEA.L RenderBase,A6
1062
 
        JSR     -156(A6)
1063
 
        MOVEA.L (A7)+,A6
1064
 
        MOVE.L  D0,@RESULT
 
1056
        MOVE.L  A6,-(A7)
 
1057
        MOVEA.L engine,A0
 
1058
        MOVEA.L source,A1
 
1059
        MOVEA.L dest,A2
 
1060
        MOVEA.L taglist,A3
 
1061
        MOVEA.L RenderBase,A6
 
1062
        JSR     -156(A6)
 
1063
        MOVEA.L (A7)+,A6
 
1064
        MOVE.L  D0,@RESULT
1065
1065
  END;
1066
1066
END;
1067
1067
 
1068
1068
FUNCTION ScaleOrdinate(source : WORD; dest : WORD; ordinate : WORD) : WORD;
1069
1069
BEGIN
1070
1070
  ASM
1071
 
        MOVE.L  A6,-(A7)
1072
 
        MOVE.L  source,D0
1073
 
        MOVE.L  dest,D1
1074
 
        MOVE.L  ordinate,D2
1075
 
        MOVEA.L RenderBase,A6
1076
 
        JSR     -228(A6)
1077
 
        MOVEA.L (A7)+,A6
1078
 
        MOVE.L  D0,@RESULT
 
1071
        MOVE.L  A6,-(A7)
 
1072
        MOVE.L  source,D0
 
1073
        MOVE.L  dest,D1
 
1074
        MOVE.L  ordinate,D2
 
1075
        MOVEA.L RenderBase,A6
 
1076
        JSR     -228(A6)
 
1077
        MOVEA.L (A7)+,A6
 
1078
        MOVE.L  D0,@RESULT
1079
1079
  END;
1080
1080
END;
1081
1081
 
1082
1082
FUNCTION SortPaletteA(palette : POINTER; mode : longword; taglist : pTagItem) : longword;
1083
1083
BEGIN
1084
1084
  ASM
1085
 
        MOVE.L  A6,-(A7)
1086
 
        MOVEA.L palette,A0
1087
 
        MOVE.L  mode,D0
1088
 
        MOVEA.L taglist,A1
1089
 
        MOVEA.L RenderBase,A6
1090
 
        JSR     -216(A6)
1091
 
        MOVEA.L (A7)+,A6
1092
 
        MOVE.L  D0,@RESULT
 
1085
        MOVE.L  A6,-(A7)
 
1086
        MOVEA.L palette,A0
 
1087
        MOVE.L  mode,D0
 
1088
        MOVEA.L taglist,A1
 
1089
        MOVEA.L RenderBase,A6
 
1090
        JSR     -216(A6)
 
1091
        MOVEA.L (A7)+,A6
 
1092
        MOVE.L  D0,@RESULT
1093
1093
  END;
1094
1094
END;
1095
1095
 
1096
1096
PROCEDURE TintRGBArrayA(source : pULONG; width : WORD; height : WORD; RGB : longword; ratio : WORD; dest : pULONG; taglist : pTagItem);
1097
1097
BEGIN
1098
1098
  ASM
1099
 
        MOVE.L  A6,-(A7)
1100
 
        MOVEA.L source,A0
1101
 
        MOVE.L  width,D0
1102
 
        MOVE.L  height,D1
1103
 
        MOVE.L  RGB,D2
1104
 
        MOVE.L  ratio,D3
1105
 
        MOVEA.L dest,A1
1106
 
        MOVEA.L taglist,A2
1107
 
        MOVEA.L RenderBase,A6
1108
 
        JSR     -324(A6)
1109
 
        MOVEA.L (A7)+,A6
 
1099
        MOVE.L  A6,-(A7)
 
1100
        MOVEA.L source,A0
 
1101
        MOVE.L  width,D0
 
1102
        MOVE.L  height,D1
 
1103
        MOVE.L  RGB,D2
 
1104
        MOVE.L  ratio,D3
 
1105
        MOVEA.L dest,A1
 
1106
        MOVEA.L taglist,A2
 
1107
        MOVEA.L RenderBase,A6
 
1108
        JSR     -324(A6)
 
1109
        MOVEA.L (A7)+,A6
1110
1110
  END;
1111
1111
END;
1112
1112