IMAGEATOMICEXCHANGE(3G)

    .SH "NAME" imageAtomicExchange - atomically store supplied data into memory and return the original value from memory
    .SH "DECLARATION"

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

    .SH "PARAMETERS"

        .PP image

                    Specify the image unit into which to store data.

            .RE
            .PP P

                        Specify the coordinate at which to store the data.

                .RE
                .PP sample

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

                    .RE
                    .PP data

                                Specifies the data to exchange with that stored in the image.

                        .RE

                    .SH "DESCRIPTION"
                        .PP 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.

                    .SH "VERSION SUPPORT"
                        .TS allbox tab(:); lB cB s s s s s s s s s s s lB cB cB cB cB cB cB cB cB cB cB cB cB. T{ T}:T{ OpenGL Shading Language Version T} T{ Function Name T}:T{ 1.10 T}:T{ 1.20 T}:T{ 1.30 T}:T{ 1.40 T}:T{ 1.50 T}:T{ 3.30 T}:T{ 4.00 T}:T{ 4.10 T}:T{ 4.20 T}:T{ 4.30 T}:T{ 4.40 T}:T{ 4.50 T} l c c c c c c c c c c c c l c c c c c c c c c c c c. T{ imageAtomicExchange (uint and int data) T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T}:T{ ✔ T} T{ imageAtomicExchange (float data) T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ - T}:T{ ✔ T}

                    .SH "SEE ALSO"
                        .PP imageLoad(), imageStore(), imageAtomicAdd(), imageAtomicMin(), imageAtomicMax(), imageAtomicXor(), imageAtomicOr(), imageAtomicAnd(), imageAtomicCompSwap()

                    .SH "COPYRIGHT"
                        .PP 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/.

COPYRIGHT
Copyright © 2011-2014 Khronos Group