•  Back 
  •  Line-A Function Reference 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  %About 
  •  Show info about hypertext 
  •  View a new file 
Topic       : The ATARI Compendium
Author      : Scott Sanders / JAY Software
Version     : 1.25 (20/6/2003)
Subject     : Documentation
Nodes       : 1117
Index Size  : 32614
HCP-Version : 6
Compiled on : Atari
@charset    : UTF-8
@lang       : en
@default    : 
@help       : %About
@options    : +g -i -t4 +y +z
@width      : 100
View Ref-Filevro_cpyfm()
vrt_cpyfm()
$A00E - Copy Raster                                                  Line-A

Function      Copy a raster form using opaque or transparent mode.

Parameters    INTIN should point to a WORD array whose first entry
              specifies the write mode of the operation. In transparent
              mode, this is a VDI standard mode (0-3), however in opaque
              mode the full range of BitBlt modes (0-15) are available. In
              transparent mode, the second and third array entries of
              INTIN contain the foreground and background color of the
              destination copy respectively. CONTRL should point to
              a memory buffer which is filled in with the source and
              destination MFDB's (Memory Form Definition Block's) at
              offsets 14 and 18 respectively. The structure of an MFDB is
              discussed under vro_cpyfm(). PTSIN should point to an array
              of 8 WORD's containing the pixel offsets for the blit in the
              order sx1, sy1, sx2, sy2, dx1, dy1, dx2, dy2. COPYTRAN
              specifies the write mode. A value of 0 indicates an opaque
              copy while a value of 1 indicates a transparent copy. The
              settings for CLIP, XMINCL, YMINCL, XMAXCL, and YMAXCL are
              utilitized by this call.

Example       ; Copy a 32x32 raster form 'myrast' from a
Binding       ; buffer in memory to the ST medium resolution
              ; screen at ( 100, 100 ) using transparent mode.

                 move.l   #contrl,4(a5)        ; CONTRL
                 move.l   #srcmfdb,contrl+14
                 move.l   #destmfdb,contrl+18

                 move.l   #intin,4(a5)         ; INTIN
                 move.l   #ptsin,4(a5)         ; PTSIN
                 move.w   #1,116(a5)           ; COPYTRAN
                 move.w   #0,54(a5)            ; CLIP

              ; Fill in some info for MFDB's

                 move.l   #myrast,srcmfdb      ; Source raster
                 move.w   #$02,-(sp)           ; Physbase()
                 trap     #14
                 addq.l   #2,sp
                 move.l   d0,destmfdb

                 .dc.w    $A00E

                 .data
              contrl:
                 .dc.w    0, 0, 0, 0, 0, 0, 0, 0, 0, 0
              intin:
                 .dc.w    0, 1, 0
              ptsin:
                 .dc.w    0, 0, 15, 15, 100, 100, 115, 115
              srcmfdb:
                 .dc.w    0, 0, 16, 16, 1, 0, 0, 0, 0, 0
              destmfdb:
                 .dc.w    0, 0, 320, 200, 16, 0, 2, 0, 0, 0
              myrast:
                 .dc.w    $AAAA,$AAAA,$AAAA,$AAAA
                 .dc.w    $5555,$5555,$5555,$5555
                 .dc.w    $AAAA,$AAAA,$AAAA,$AAAA
                 .dc.w    $5555,$5555,$5555,$5555
                 .dc.w    $AAAA,$AAAA,$AAAA,$AAAA
                 .dc.w    $5555,$5555,$5555,$5555
                 .dc.w    $AAAA,$AAAA,$AAAA,$AAAA
                 .dc.w    $5555,$5555,$5555,$5555

Comments      For a more indepth explanation, refer to the VDI calls
              parallel to these, vro_cpyfm() and vrt_cpyfm().

See Also      vro_cpyfm(), vrt_cpyfm()