commonMain.dsl.functions.IntRImage3DFunctions.kt Maven / Gradle / Ivy
package org.openrndr.orsl.shadergenerator.dsl.functions
import org.openrndr.orsl.shadergenerator.dsl.*
import org.openrndr.math.IntVector3
import kotlin.jvm.JvmName
@Suppress("INAPPLICABLE_JVM_NAME")
interface IntRImage3DFunctions : Generator{
@JvmName("loadSiri3Siv3")
fun Symbol.load(uvw: Symbol): Symbol =
functionSymbol(this, uvw, "imageLoad($0, $1).x")
@JvmName("storeSiri3Siv3i")
fun Symbol.store(uvw: Symbol, data: Symbol) {
functionCall(this, uvw, data, "imageStore($0, $1, ivec4($2))")
}
@JvmName("sizeSiri3")
fun Symbol.size(): Symbol =
functionSymbol(this, "imageSize($0)")
@JvmName("atomicExchangeSiri3Siv3Si")
fun Symbol.atomicExchange(uv: Symbol, data: Symbol): Symbol =
functionSymbol(this, uv, data,"atomicExchange($0, $1, $2)")
@JvmName("atomicCompSwapSiri3Siv3Si")
fun Symbol.atomicCompSwap(uv: Symbol, compare: Symbol, data: Symbol): Symbol =
functionSymbol(this, uv, compare, data,"atomicExchange($0, $1, $2, $3)")
@JvmName("atomicAddSiri3Siv3Si")
fun Symbol.atomicAdd(uv: Symbol, data: Symbol): Symbol =
functionSymbol(this, uv, data,"atomicAdd($0, $1, $2)")
@JvmName("atomicAddSiri3Siv3Vi")
fun Symbol.atomicAdd(uv: Symbol, data: Int): Symbol =
functionSymbolSSV(this, uv, data, "imageAtomicAdd($0, $1, $2)")
@JvmName("atomicSubSiri3Siv3Si")
fun Symbol.atomicSub(uv: Symbol, data: Symbol): Symbol =
functionSymbol(this, uv, data,"atomicAdd($0, $1, -($2))")
@JvmName("atomicAndSiri3Siv3Si")
fun Symbol.atomicAnd(uv: Symbol, data: Symbol): Symbol =
functionSymbol(this, uv, data,"atomicAnd($0, $1, $2)")
@JvmName("atomicOrSiri3Siv3Si")
fun Symbol.atomicOr(uv: Symbol, data: Symbol): Symbol =
functionSymbol(this, uv, data,"atomicOr($0, $1, $2)")
@JvmName("atomicXorSiri3Siv3Si")
fun Symbol.atomicXor(uv: Symbol, data: Symbol): Symbol =
functionSymbol(this, uv, data,"atomicXor($0, $1, $2)")
@JvmName("atomicMinSiri3Siv3Si")
fun Symbol.atomicMin(uv: Symbol, data: Symbol): Symbol =
functionSymbol(this, uv, data,"atomicMin($0, $1, $2)")
@JvmName("atomicMaxSiri3Siv3Si")
fun Symbol.atomicMax(uv: Symbol, data: Symbol): Symbol =
functionSymbol(this, uv, data,"atomicMax($0, $1, $2)")
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy