logicop(3G) logicop(3G)
logicop - specifies a logical operation for pixel writes
void logicop(opcode)
long opcode;
opcode expects one of the 16 possible logical operations.
Symbol Operation
LO_ZERO 0
LO_AND src AND dst
LO_ANDR src AND (NOT dst)
LO_SRC src
LO_ANDI (NOT src) AND dst
LO_DST dst
LO_XOR src XOR dst
LO_OR src OR dst
LO_NOR NOT (src OR dst)
LO_XNOR NOT (src XOR dst)
LO_NDST NOT dst
LO_ORR src OR (NOT dst)
LO_NSRC NOT src
LO_ORI (NOT src) OR dst
LO_NAND NOT (src AND dst)
LO_ONE 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) .
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.
blendfunction, gversion, getgdesc
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.
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.
PPPPaaaaggggeeee 2222 [ Back ]
|