Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ logicop(3G) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought



logicop(3G)                                                        logicop(3G)



NAME
     logicop - specifies a logical operation for pixel writes

C SPECIFICATION
     void logicop(opcode)
     long opcode;

PARAMETERS
     opcode   expects one of the 16 possible logical operations.

              Symbol      Operation

              LOZERO     0
              LOAND      src AND dst
              LOANDR     src AND (NOT dst)
              LOSRC      src
              LOANDI     (NOT src) AND dst
              LODST      dst
              LOXOR      src XOR dst
              LOOR       src OR dst
              LONOR      NOT (src OR dst)
              LOXNOR     NOT (src XOR dst)
              LONDST     NOT dst
              LOORR      src OR (NOT dst)
              LONSRC     NOT src
              LOORI      (NOT src) OR dst
              LONAND     NOT (src AND dst)
              LOONE      1

              Only the lower 4 bits of opcode are used.

              The values of LO_SRC and LO_DST have been chosen so that
              expressing an operation as the equivalent combination of them
              and the C bitwise operators generates an acceptable opcode
              value; e.g., LO_NAND can be written as ~(LO_SRC & LO_DST) .

DESCRIPTION
     logicop specifies the bit-wise logical operation for pixel writes.  The
     logical operation is applied between the source pixel value (incoming
     value) and existing destination value (previous value) to generate the
     final pixel value.  In colorindex mode all of the (up to 12) writemask
     enabled index bits are changed.  In RGB mode all of the (up to 32)
     enabled component bits are changed.

     logicop defaults to LO_SRC, meaning that the incoming source value simply
     replaces the current (destination) value.

     It is not possible to do logical operations and blend simultaneously.
     When opcode is set to any value other than LO_SRC, the blendfunction
     sfactr and dfactr values are forced to BF_ONE and BF_ZERO repectively
     (their default values). Likewise, calling blendfunction with arguments
     other than BF_ONE and BF_ZERO forces the logical opcode to LO_SRC,



                                                                        Page 1





logicop(3G)                                                        logicop(3G)



     Unlike blendfunction, logicop is valid in all drawing modes (NORMALDRAW,
     UNDERDRAW, OVERDRAW, PUPDRAW, CURSORDRAW) and in both colorindex and RGB
     modes.  Like the blendfunction, it affects all drawing operations,
     including points, lines, polygons, and pixel area transfers.

     When multiple destination buffers are specified (using frontbuffer,
     backbuffer, and zdraw ) only a single location is read and used during
     the logical operation.  By default, the destination value is read from
     the front buffer in single buffer mode and from the back buffer in double
     buffer mode.  If the front buffer is not enabled in single buffer mode,
     the value is taken from the z-buffer.  If the back buffer is not enabled
     in double buffer mode, the value is taken from the front buffer (if
     possible) or from the z-buffer.

SEE ALSO
     blendfunction, gversion, getgdesc

NOTES
     The numeric assignments of the 16 operation names were chosen to be
     identical to those defined by the X Window System.  They will not be
     changed in future software releases.

     This routine does not function on IRIS-4D B and G models, nor does it
     function on early serial numbers of the Personal Iris.  Use gversion to
     determine which type you have.

     Some IRIS-4D GT and GTX models do support this routine.  Use getgdesc to
     determine if logicop is supported.

BUGS
     Personal Iris models do not support logical operations in combination
     with non-solid patterns nor with zoomed pixel writes or copies.  When
     either of these features is selected, the default logical operation,
     LO_SRC, will be used regardless of the value passed to logicop.





















                                                                        Page 2



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026