GlslFunction

A GLSL function with arguments, a GLSL parameter list such as vec2 p, float r, that returns a glslType. code is an expression or a function body with return, it reads its own parameters as p_<name>, which are set on this object and can be dynamic themselves, and can call the functions of libraries. Shade style code calls it as p_<name>(arguments).

Constructors

Link copied to clipboard
constructor(glslType: String, arguments: String, code: String, libraries: List<GlslLibrary> = emptyList())

Properties

Link copied to clipboard
Link copied to clipboard

The GLSL types of the arguments, without their names and precision qualifiers: vec2 p, in highp float r[2] has the types vec2 and in float[2]. With glslType they are the contract of the function, functions with the same contract can replace each other.

Link copied to clipboard
Link copied to clipboard
open override val glslType: String

the GLSL type of the value

Link copied to clipboard
open override val libraries: List<GlslLibrary>

the GLSL libraries the code of the parameter uses

Link copied to clipboard
Link copied to clipboard
open override var parameterValues: MutableMap<String, Any>
Link copied to clipboard
open override var textureBaseIndex: Int

Functions

Link copied to clipboard
fun hasContract(returnType: String, vararg argumentTypes: String): Boolean

does this function return returnType and take arguments of argumentTypes?

Link copied to clipboard
open override fun <R : Any> Parameter(customName: String? = null, initialValue: R? = null): Parameter<R>

Creates a Parameter property with the specified constraints and associates it with a custom name or the property name.

Link copied to clipboard
open override fun parameter(name: String, value: Array<ColorRGBa>)
open override fun parameter(name: String, value: Array<Matrix33>)
open override fun parameter(name: String, value: Array<Matrix44>)
open override fun parameter(name: String, value: Array<Vector2>)
open override fun parameter(name: String, value: Array<Vector3>)
open override fun parameter(name: String, value: Array<Vector4>)
open override fun parameter(name: String, value: Boolean)
open override fun parameter(name: String, value: Double)
open override fun parameter(name: String, value: DoubleArray)
open override fun parameter(name: String, value: Float)
open override fun parameter(name: String, value: Int)
open override fun parameter(name: String, value: IntArray)
open override fun parameter(name: String, value: ColorRGBa)
open override fun parameter(name: String, value: ArrayCubemap)
open override fun parameter(name: String, value: ArrayTexture)
open override fun parameter(name: String, value: BufferTexture)
open override fun parameter(name: String, value: ColorBuffer)
open override fun parameter(name: String, value: Cubemap)
open override fun parameter(name: String, value: DepthBuffer)
open override fun parameter(name: String, value: VolumeTexture)
open override fun parameter(name: String, value: BooleanVector2)
open override fun parameter(name: String, value: BooleanVector3)
open override fun parameter(name: String, value: BooleanVector4)
open override fun parameter(name: String, value: IntVector2)
open override fun parameter(name: String, value: IntVector3)
open override fun parameter(name: String, value: IntVector4)
open override fun parameter(name: String, value: Matrix33)
open override fun parameter(name: String, value: Matrix44)
open override fun parameter(name: String, value: Vector2)
open override fun parameter(name: String, value: Vector3)
open override fun parameter(name: String, value: Vector4)

open override fun parameter(name: String, value: DynamicParameter)

Sets name to a parameter that is resolved in the shader, read from a texture or computed by GLSL code

open override fun parameter(name: String, value: DynamicParameterSource)

Sets name to the dynamic parameter that value provides, it is read from value when the style is used

Link copied to clipboard
inline fun <T : Struct<T>> StyleParameters.parameter(name: String, value: T)
inline fun <T : Struct<T>> StyleParameters.parameter(name: String, value: Array<T>)