Light | Dark

# docs.GL

GLSL 4
GLSL ES 3

# imageAtomicXor

## Name

imageAtomicXor — atomically compute the logical exclusive OR of a value with an existing value in memory, store that value and return the original value

## Declaration

`uint imageAtomicXor(` | gimage1D image,
| int P,
| uint data`)`;

`uint imageAtomicXor(` | gimage2D image,
| ivec2 P,
| uint data`)`;

`uint imageAtomicXor(` | gimage3D image,
| ivec3 P,
| uint data`)`;

`uint imageAtomicXor(` | gimage2DRect image,
| ivec2 P,
| uint data`)`;

`uint imageAtomicXor(` | gimageCube image,
| ivec3 P,
| uint data`)`;

`uint imageAtomicXor(` | gbufferImage image,
| int P,
| uint data`)`;

`uint imageAtomicXor(` | gimage1DArray image,
| ivec2 P,
| uint data`)`;

`uint imageAtomicXor(` | gimage2DArray image,
| ivec3 P,
| uint data`)`;

`uint imageAtomicXor(` | gimageCubeArray image,
| ivec3 P,
| uint data`)`;

`uint imageAtomicXor(` | gimage2DMS image,
| ivec2 P,
| int sample,
| uint data`)`;

`uint imageAtomicXor(` | gimage2DMSArray image,
| ivec3 P,
| int sample,
| uint data`)`;

`int imageAtomicXor(` | gimage1D image,
| int P,
| int data`)`;

`int imageAtomicXor(` | gimage2D image,
| ivec2 P,
| int data`)`;

`int imageAtomicXor(` | gimage3D image,
| ivec3 P,
| int data`)`;

`int imageAtomicXor(` | gimage2DRect image,
| ivec2 P,
| int data`)`;

`int imageAtomicXor(` | gimageCube image,
| ivec3 P,
| int data`)`;

`int imageAtomicXor(` | gbufferImage image,
| int P,
| int data`)`;

`int imageAtomicXor(` | gimage1DArray image,
| ivec2 P,
| int data`)`;

`int imageAtomicXor(` | gimage2DArray image,
| ivec3 P,
| int data`)`;

`int imageAtomicXor(` | gimageCubeArray image,
| ivec3 P,
| int data`)`;

`int imageAtomicXor(` | gimage2DMS image,
| ivec2 P,
| int sample,
| int data`)`;

`int imageAtomicXor(` | gimage2DMSArray image,
| ivec3 P,
| int sample,
| int data`)`;

## Parameters

`image`

  Specify the image unit into which to store `data`.

`P`

  Specify the coordinate at which to store the data.

`sample`

  When present, specifies the sample within the image to store into.

`data`

  Specifies the data to logically XOR into the image.

## Description

`imageAtomicXor` atomically computes a new value by logically XORing the value of `data` to the contents of the texel at coordinate `P` and `sample` in the image bound to uint `image`, stores that value into the image and returns the original value.

## Version Support

| OpenGL Shading Language Version
--- | ---
Function Name | 1.10 | 1.20 | 1.30 | 1.40 | 1.50 | 3.30 | 4.00 | 4.10 | 4.20 | 4.30 | 4.40 | 4.50
imageAtomicXor | - | - | - | - | - | - | - | - | ✔ | ✔ | ✔ | ✔

## See Also

imageLoad, imageStore, imageAtomicAdd, imageAtomicMin, imageAtomicMax, imageAtomicOr, imageAtomicAnd, imageAtomicExchange, imageAtomicCompSwap

## Copyright

Copyright © 2011-2014 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. https://opencontent.org/openpub/.

Think you can improve this page? Edit this page on GitHub.