•  Back 
  •  VDI Raster 
  •  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-Filevr_trnfm()
vrt_cpyfm()
vro_cpyfm()                                                             VDI

Syntax

VOID vro_cpyfm( handle, mode, pxy, src, dest )
WORD handle, mode;
WORD *pxy;
MFDB *src, *dest;

Function      vro_cpyfm() 'blits' a screen or memory block from one
              location to another.

Opcode        109

Availability  Supported by all screen drivers.

Parameters    handle specifies valid workstation handle. mode specifies
              the writing mode as follows:

              Name        Mode   Result

              ALL_WHITE     0    All zeros.

              S_AND_D       1    source AND destination

              S_AND_NOTD    2    source AND (NOT destination)

              S_ONLY        3    source
                                 (* Replace mode *)

              NOTS_AND_D    4    (NOT source) AND destination
                                 (* Erase mode *)

              D_ONLY        5    destination

              S_XOR_D       6    source XOR destination
                                 (* XOR Mode *)

              S_OR_D        7    source OR destination

              NOT_SORD      8    NOT (source OR destination)

              NOT_SXORD     9    NOT (source XOR destination)

              NOT_D        10    NOT destination

              S_OR_NOTD    11    source OR (NOT destination)

              NOT_S        12    NOT source

              NOTS_OR_D    13    (NOT source) OR destination

              NOT_SANDD    14    NOT (source AND destination)

              ALL_BLACK    15    All ones.

              pxy points to an array of eight WORDs.
              pxy[0-3] contains the bounding rectangle of the source block.
              pxy[4-7] contains the bounding rectangle of the dest. block.
              src and dest each point to an MFDB structure which describes
                           the source and destination memory form.
              MFDB is defined as follows:

              typedef struct
              {
               /* Memory address (NULL = current screen). If you specify
                  a value of NULL, the rest of the structure will be
                  filled out for you. */
               VOID *fd_addr;

               /* Form width in pixels */
               WORD fd_width;

               /* Form height in pixels */
               WORD fd_height;

               /* Form width in WORDs (fd_width + 15)/16 */
               WORD fd_wdwidth;

               /* Format (0 = device-specific, 1 = VDI format) */
               WORD fd_stand;

               /* Number of memory planes */
               WORD fd_planes;

               /* Reserved (set to 0) */
               WORD reserved1;
               WORD reserved2;
               WORD reserved3;
              } MFDB;

Binding       contrl[0] = 109;
              contrl[1] = 4;
              contrl[3] = 1;
              contrl[6] = handle;
              contrl[7] = (WORD)((LONG)src >> 16);
              contrl[8] = (WORD)src;
              contrl[9] = (WORD)((LONG)dest >> 16);
              contrl[10] = (WORD)dest;

              intin[0] = mode;

              ptsin[0] = pxy[0];
              ptsin[1] = pxy[1];
              ptsin[2] = pxy[2];
              ptsin[3] = pxy[3];
              ptsin[4] = pxy[4];
              ptsin[5] = pxy[5];
              ptsin[6] = pxy[6];
              ptsin[7] = pxy[7];

              vdi();

Comments      To 'blit' a single-plane form to a multi-plane destination,
              use vrt_cpyfm().

See Also      vr_trnfm(), vrt_cpyfm()

Group         VDI Raster