From OpenGL Reference
Jump to navigation Jump to search

Atomically store supplied data into memory and return the original value from memory.


uint imageAtomicExchange( gimage1D image, int P, uint data );
uint imageAtomicExchange( gimage2D image, ivec2 P, uint data );
uint imageAtomicExchange( gimage3D image, ivec3 P, uint data );
uint imageAtomicExchange( gimage2DRect image, ivec2 P, uint data );
uint imageAtomicExchange( gimageCube image, ivec3 P, uint data );
uint imageAtomicExchange( gbufferImage image, int P, uint data );
uint imageAtomicExchange( gimage1DArray image, ivec2 P, uint data );
uint imageAtomicExchange( gimage2DArray image, ivec3 P, uint data );
uint imageAtomicExchange( gimageCubeArray image, ivec3 P, uint data );
uint imageAtomicExchange( gimage2DMS image, ivec2 P, int sample, uint data );
uint imageAtomicExchange( gimage2DMSArray image, ivec3 P, int sample, uint data );
int imageAtomicExchange( gimage1D image, int P, int data );
int imageAtomicExchange( gimage2D image, ivec2 P, int data );
int imageAtomicExchange( gimage3D image, ivec3 P, int data );
int imageAtomicExchange( gimage2DRect image, ivec2 P, int data );
int imageAtomicExchange( gimageCube image, ivec3 P, int data );
int imageAtomicExchange( gbufferImage image, int P, int data );
int imageAtomicExchange( gimage1DArray image, ivec2 P, int data );
int imageAtomicExchange( gimage2DArray image, ivec3 P, int data );
int imageAtomicExchange( gimageCubeArray image, ivec3 P, int data );
int imageAtomicExchange( gimage2DMS image, ivec2 P, int sample, int data );
int imageAtomicExchange( gimage2DMSArray image, ivec3 P, int sample, int data );
int imageAtomicExchange( gimage1D image, int P, float data );
int imageAtomicExchange( gimage2D image, ivec2 P, float data );
int imageAtomicExchange( gimage3D image, ivec3 P, float data );
int imageAtomicExchange( gimage2DRect image, ivec2 P, float data );
int imageAtomicExchange( gimageCube image, ivec3 P, float data );
int imageAtomicExchange( gbufferImage image, int P, float data );
int imageAtomicExchange( gimage1DArray image, ivec2 P, float data );
int imageAtomicExchange( gimage2DArray image, ivec3 P, float data );
int imageAtomicExchange( gimageCubeArray image, ivec3 P, float data );
int imageAtomicExchange( gimage2DMS image, ivec2 P, int sample, float data );
int imageAtomicExchange( gimage2DMSArray image, ivec3 P, int sample, float data );


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 exchange with that stored in the image.


 imageAtomicExchange atomically stores the value of data into the texel at coordinate P and sample in the image bound to unit image , and returns the original value of the texel.

Version Support[edit]

imageAtomicExchange (uint and intdata) 4.2+
imageAtomicExchange (floatdata) 4.5+

See Also[edit]

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


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.