Blender V5.0
gpu_shader_cxx_image.hh File Reference

Go to the source code of this file.

Classes

struct  ImageBase< T, Dimensions, Array, Atomic >

Macros

#define RET

Image Types

#define IMG_TEMPLATE
#define imageLoadFast   imageLoad
#define imageStoreFast   imageStore
using image1D = ImageBase<float, 1>
using image2D = ImageBase<float, 2>
using image3D = ImageBase<float, 3>
using iimage1D = ImageBase<int, 1>
using iimage2D = ImageBase<int, 2>
using iimage3D = ImageBase<int, 3>
using uimage1D = ImageBase<uint, 1>
using uimage2D = ImageBase<uint, 2>
using uimage3D = ImageBase<uint, 3>
using image1DArray = ImageBase<float, 1, true>
using image2DArray = ImageBase<float, 2, true>
using iimage1DArray = ImageBase<int, 1, true>
using iimage2DArray = ImageBase<int, 2, true>
using uimage1DArray = ImageBase<uint, 1, true>
using uimage2DArray = ImageBase<uint, 2, true>
using iimage2DAtomic = ImageBase<int, 2, false, true>
using iimage3DAtomic = ImageBase<int, 3, false, true>
using uimage2DAtomic = ImageBase<uint, 2, false, true>
using uimage3DAtomic = ImageBase<uint, 3, false, true>
using iimage2DArrayAtomic = ImageBase<int, 2, true, true>
using uimage2DArrayAtomic = ImageBase<uint, 2, true, true>
IMG_TEMPLATE SizeVec imageSize (const T &) RET
IMG_TEMPLATE DataVec imageLoad (const T &, IntCoord) RET
IMG_TEMPLATE void imageStore (T &, IntCoord, DataVec)
IMG_TEMPLATE void imageFence (T &)
IMG_TEMPLATE void imageStore (const T &, IntCoord, DataVec)=delete
IMG_TEMPLATE void imageFence (const T &)=delete
IMG_TEMPLATE uint imageAtomicAdd (T &, IntCoord, uint) RET
IMG_TEMPLATE uint imageAtomicMin (T &, IntCoord, uint) RET
IMG_TEMPLATE uint imageAtomicMax (T &, IntCoord, uint) RET
IMG_TEMPLATE uint imageAtomicAnd (T &, IntCoord, uint) RET
IMG_TEMPLATE uint imageAtomicXor (T &, IntCoord, uint) RET
IMG_TEMPLATE uint imageAtomicOr (T &, IntCoord, uint) RET
IMG_TEMPLATE uint imageAtomicExchange (T &, IntCoord, uint) RET
IMG_TEMPLATE uint imageAtomicCompSwap (T &, IntCoord, uint, uint) RET
IMG_TEMPLATE uint imageAtomicAdd (const T &, IntCoord, uint)=delete
IMG_TEMPLATE uint imageAtomicMin (const T &, IntCoord, uint)=delete
IMG_TEMPLATE uint imageAtomicMax (const T &, IntCoord, uint)=delete
IMG_TEMPLATE uint imageAtomicAnd (const T &, IntCoord, uint)=delete
IMG_TEMPLATE uint imageAtomicXor (const T &, IntCoord, uint)=delete
IMG_TEMPLATE uint imageAtomicOr (const T &, IntCoord, uint)=delete
IMG_TEMPLATE uint imageAtomicExchange (const T &, IntCoord, uint)=delete
IMG_TEMPLATE uint imageAtomicCompSwap (const T &, IntCoord, uint, uint)=delete

Macro Definition Documentation

◆ imageLoadFast

#define imageLoadFast   imageLoad

Definition at line 47 of file gpu_shader_cxx_image.hh.

◆ imageStoreFast

#define imageStoreFast   imageStore

Definition at line 48 of file gpu_shader_cxx_image.hh.

◆ IMG_TEMPLATE

#define IMG_TEMPLATE
Value:
template<typename T, \
typename IntCoord = typename T::int_coord_type, \
typename DataVec = typename T::data_vec_type, \
typename SizeVec = typename T::size_vec_type>
#define T

Definition at line 33 of file gpu_shader_cxx_image.hh.

Referenced by imageAtomicAdd(), imageAtomicAdd(), imageAtomicAnd(), imageAtomicAnd(), imageAtomicCompSwap(), imageAtomicCompSwap(), imageAtomicExchange(), imageAtomicExchange(), imageAtomicMax(), imageAtomicMax(), imageAtomicMin(), imageAtomicMin(), imageAtomicOr(), imageAtomicOr(), imageAtomicXor(), imageAtomicXor(), imageFence(), imageFence(), imageLoad(), imageSize(), imageStore(), and imageStore().

◆ RET

#define RET
Value:
{ \
return {}; \
}

C++ stubs for shading language.

IMPORTANT: Please ask the module team if you need some feature that are not listed in this file.

Definition at line 16 of file gpu_shader_cxx_image.hh.

Typedef Documentation

◆ iimage1D

using iimage1D = ImageBase<int, 1>

Definition at line 73 of file gpu_shader_cxx_image.hh.

◆ iimage1DArray

using iimage1DArray = ImageBase<int, 1, true>

Definition at line 82 of file gpu_shader_cxx_image.hh.

◆ iimage2D

using iimage2D = ImageBase<int, 2>

Definition at line 74 of file gpu_shader_cxx_image.hh.

◆ iimage2DArray

using iimage2DArray = ImageBase<int, 2, true>

Definition at line 83 of file gpu_shader_cxx_image.hh.

◆ iimage2DArrayAtomic

Definition at line 92 of file gpu_shader_cxx_image.hh.

◆ iimage2DAtomic

using iimage2DAtomic = ImageBase<int, 2, false, true>

Definition at line 87 of file gpu_shader_cxx_image.hh.

◆ iimage3D

using iimage3D = ImageBase<int, 3>

Definition at line 75 of file gpu_shader_cxx_image.hh.

◆ iimage3DAtomic

using iimage3DAtomic = ImageBase<int, 3, false, true>

Definition at line 88 of file gpu_shader_cxx_image.hh.

◆ image1D

using image1D = ImageBase<float, 1>

Definition at line 70 of file gpu_shader_cxx_image.hh.

◆ image1DArray

Definition at line 80 of file gpu_shader_cxx_image.hh.

◆ image2D

using image2D = ImageBase<float, 2>

Definition at line 71 of file gpu_shader_cxx_image.hh.

◆ image2DArray

Definition at line 81 of file gpu_shader_cxx_image.hh.

◆ image3D

using image3D = ImageBase<float, 3>

Definition at line 72 of file gpu_shader_cxx_image.hh.

◆ uimage1D

using uimage1D = ImageBase<uint, 1>

Definition at line 76 of file gpu_shader_cxx_image.hh.

◆ uimage1DArray

Definition at line 84 of file gpu_shader_cxx_image.hh.

◆ uimage2D

using uimage2D = ImageBase<uint, 2>

Definition at line 77 of file gpu_shader_cxx_image.hh.

◆ uimage2DArray

Definition at line 85 of file gpu_shader_cxx_image.hh.

◆ uimage2DArrayAtomic

Definition at line 93 of file gpu_shader_cxx_image.hh.

◆ uimage2DAtomic

Definition at line 89 of file gpu_shader_cxx_image.hh.

◆ uimage3D

using uimage3D = ImageBase<uint, 3>

Definition at line 78 of file gpu_shader_cxx_image.hh.

◆ uimage3DAtomic

Definition at line 90 of file gpu_shader_cxx_image.hh.

Function Documentation

◆ imageAtomicAdd() [1/2]

IMG_TEMPLATE uint imageAtomicAdd ( const T & ,
IntCoord ,
uint  )
delete

References IMG_TEMPLATE, and T.

◆ imageAtomicAdd() [2/2]

IMG_TEMPLATE uint imageAtomicAdd ( T & ,
IntCoord ,
uint  )

References IMG_TEMPLATE, RET, and T.

◆ imageAtomicAnd() [1/2]

IMG_TEMPLATE uint imageAtomicAnd ( const T & ,
IntCoord ,
uint  )
delete

References IMG_TEMPLATE, and T.

◆ imageAtomicAnd() [2/2]

IMG_TEMPLATE uint imageAtomicAnd ( T & ,
IntCoord ,
uint  )

References IMG_TEMPLATE, RET, and T.

◆ imageAtomicCompSwap() [1/2]

IMG_TEMPLATE uint imageAtomicCompSwap ( const T & ,
IntCoord ,
uint ,
uint  )
delete

References IMG_TEMPLATE, and T.

◆ imageAtomicCompSwap() [2/2]

IMG_TEMPLATE uint imageAtomicCompSwap ( T & ,
IntCoord ,
uint ,
uint  )

References IMG_TEMPLATE, RET, and T.

◆ imageAtomicExchange() [1/2]

IMG_TEMPLATE uint imageAtomicExchange ( const T & ,
IntCoord ,
uint  )
delete

References IMG_TEMPLATE, and T.

◆ imageAtomicExchange() [2/2]

IMG_TEMPLATE uint imageAtomicExchange ( T & ,
IntCoord ,
uint  )

References IMG_TEMPLATE, RET, and T.

◆ imageAtomicMax() [1/2]

IMG_TEMPLATE uint imageAtomicMax ( const T & ,
IntCoord ,
uint  )
delete

References IMG_TEMPLATE, and T.

◆ imageAtomicMax() [2/2]

IMG_TEMPLATE uint imageAtomicMax ( T & ,
IntCoord ,
uint  )

References IMG_TEMPLATE, RET, and T.

◆ imageAtomicMin() [1/2]

IMG_TEMPLATE uint imageAtomicMin ( const T & ,
IntCoord ,
uint  )
delete

References IMG_TEMPLATE, and T.

◆ imageAtomicMin() [2/2]

IMG_TEMPLATE uint imageAtomicMin ( T & ,
IntCoord ,
uint  )

References IMG_TEMPLATE, RET, and T.

◆ imageAtomicOr() [1/2]

IMG_TEMPLATE uint imageAtomicOr ( const T & ,
IntCoord ,
uint  )
delete

References IMG_TEMPLATE, and T.

◆ imageAtomicOr() [2/2]

IMG_TEMPLATE uint imageAtomicOr ( T & ,
IntCoord ,
uint  )

References IMG_TEMPLATE, RET, and T.

◆ imageAtomicXor() [1/2]

IMG_TEMPLATE uint imageAtomicXor ( const T & ,
IntCoord ,
uint  )
delete

References IMG_TEMPLATE, and T.

◆ imageAtomicXor() [2/2]

IMG_TEMPLATE uint imageAtomicXor ( T & ,
IntCoord ,
uint  )

References IMG_TEMPLATE, RET, and T.

◆ imageFence() [1/2]

IMG_TEMPLATE void imageFence ( const T & )
delete

References IMG_TEMPLATE, and T.

◆ imageFence() [2/2]

IMG_TEMPLATE void imageFence ( T & )

Definition at line 42 of file gpu_shader_cxx_image.hh.

References IMG_TEMPLATE, and T.

◆ imageLoad()

IMG_TEMPLATE DataVec imageLoad ( const T & ,
IntCoord  )

References IMG_TEMPLATE, RET, and T.

◆ imageSize()

IMG_TEMPLATE SizeVec imageSize ( const T & )

References IMG_TEMPLATE, RET, and T.

Referenced by NSImageToImBuf().

◆ imageStore() [1/2]

IMG_TEMPLATE void imageStore ( const T & ,
IntCoord ,
DataVec  )
delete

References IMG_TEMPLATE, and T.

◆ imageStore() [2/2]

IMG_TEMPLATE void imageStore ( T & ,
IntCoord ,
DataVec  )

Definition at line 41 of file gpu_shader_cxx_image.hh.

References IMG_TEMPLATE, and T.