OGLProgramParamValues.kl

Types

OGLProgramParamValues_param (struct)

Members

UInt32 programParamKey  
UInt8 paramType  
UInt8 storageState  
UInt8 searchedSharedValue  
UInt32 dataOffsetOrInlineValue  
UInt32 storedSize  
UInt32 prevBufferVersion  
OGLTexture texture  
UInt32 textureType  
Boolean shadowTexture  
UInt32 textureUnit  

OGLProgramParamValues (object)

The OGLProgramParamValues stores values required for drawing an OpenGL primitive, for a specific OGLProgram.

The stored values include uniform, textures, attributes and element arrays (contained in the OGLVertexArray “vertexAttribs” member).

Additionally, it supports chaining of shared OGLProgramParamValues. If a value is not stored in this object, it will use the source shared values if it exists (“sharedValues” member). The shared values can even have a distinct OGLProgram, in which case these will be matched by name.

See RTRDrawInstance and material parameters for an example of chained OGLProgramParamValues parameters.

Note: value version = any parameter value change, structure version = different set of stored parameters

Members

Versions version  
OGLProgram program  
OGLProgramParamValues sharedValues  
Ref<OGLProgram> sharedValuesMaterial  
Boolean sharedValuesHasSameProgram  
UInt32 sharedValuesLastVersion  
UInt32 sharedValuesLastStructureVersion  
UInt32 sharedValuesLastSelfStructureVersion  
Boolean usesSharedValues  
OGLVertexArray vertexAttribs  
Boolean vertexAttribsAreShared  
UInt32 sharedVertexAttribsLastVersion  
Boolean usesSharedAttribs  
UInt32[] packedUniformValueData  
UInt32 packedUniformValueDataEnd  
OGLProgramParamValues_param[] paramsData  
UInt32 paramsDataEnd  
StatisticsAutoRegisterMember autoStats  
Boolean tracingParamValues  

Methods

  OGLProgramParamValues ( in OGLProgramParamValues other )
  OGLProgramParamValues ()
  activate ! ( io Ref<OGLContext> context )
OGLProgramParamValues clone ? ()
  completeValuesWithSharedOnes ! ()
Color getColorUniform ? ( in Size programParamKey )
Color getColorUniform ? ( in Size programParamKey, in Size arrayIndex )
Mat22 getMat22Uniform ? ( in Size programParamKey )
Mat22 getMat22Uniform ? ( in Size programParamKey, in Size arrayIndex )
Mat33 getMat33Uniform ? ( in Size programParamKey )
Mat33 getMat33Uniform ? ( in Size programParamKey, in Size arrayIndex )
Mat44 getMat44Uniform ? ( in Size programParamKey )
Mat44 getMat44Uniform ? ( in Size programParamKey, in Size arrayIndex )
Ref<Object> getObjectParamValue ? ( in Size programParamKey )
UInt8 getParamStorage ? ( in Size programParamKey )
UInt8 getParamType ? ( in Size programParamKey )
  getParameterData ? ( in Size programParamKey, in Data outStructData, in UInt64 outStructSize, in UInt32 subIndex )
Ref<OGLProgram> getProgram ? ()
SInt32 getSInt32Uniform ? ( in Size programParamKey )
SInt32 getSInt32Uniform ? ( in Size programParamKey, in Size arrayIndex )
Scalar getScalarUniform ? ( in Size programParamKey )
Scalar getScalarUniform ? ( in Size programParamKey, in Size arrayIndex )
  getStoredParameterData ? ( in Size programParamKey, io Data structData, io UInt64 structSizeOrBufferStride, io Object objectValue )
Vec2 getVec2Uniform ? ( in Size programParamKey )
Vec2 getVec2Uniform ? ( in Size programParamKey, in Size arrayIndex )
Vec3 getVec3Uniform ? ( in Size programParamKey )
Vec3 getVec3Uniform ? ( in Size programParamKey, in Size arrayIndex )
Vec4 getVec4Uniform ? ( in Size programParamKey )
Vec4 getVec4Uniform ? ( in Size programParamKey, in Size arrayIndex )
  initialize ! ( in Ref<OGLProgram> program, in Ref<OGLProgramParamValues> sharedValues )
  reset ! ()
  resetToProgramDefault ! ( in Size programParamKey )
  setSharedValues ! ( in Ref<OGLProgramParamValues> sharedValues )
  setTexture ! ( in Size programParamKey, in Ref<OGLTexture> texture )
  setUniform ! ( in Size programParamKey, in Color value )
  setUniform ! ( in Size programParamKey, in Color value, in Size arrayIndex )
  setUniform ! ( in Size programParamKey, in Color values<> )
  setUniform ! ( in Size programParamKey, in Data valueData, in UInt64 valueDataSize )
  setUniform ! ( in Size programParamKey, in Data valueData, in UInt64 valueDataSize, in Boolean transposeIfRequired )
  setUniform ! ( in Size programParamKey, in Mat22 value )
  setUniform ! ( in Size programParamKey, in Mat22 value, in Size arrayIndex )
  setUniform ! ( in Size programParamKey, in Mat22 values<> )
  setUniform ! ( in Size programParamKey, in Mat33 value )
  setUniform ! ( in Size programParamKey, in Mat33 value, in Size arrayIndex )
  setUniform ! ( in Size programParamKey, in Mat33 values<> )
  setUniform ! ( in Size programParamKey, in Mat44 value )
  setUniform ! ( in Size programParamKey, in Mat44 value, in Size arrayIndex )
  setUniform ! ( in Size programParamKey, in Mat44 values<> )
  setUniform ! ( in Size programParamKey, in SInt32 value )
  setUniform ! ( in Size programParamKey, in SInt32 value, in Size arrayIndex )
  setUniform ! ( in Size programParamKey, in SInt32 values<> )
  setUniform ! ( in Size programParamKey, in Scalar value )
  setUniform ! ( in Size programParamKey, in Scalar value, in Size arrayIndex )
  setUniform ! ( in Size programParamKey, in Scalar values<> )
  setUniform ! ( in Size programParamKey, in Vec2 value )
  setUniform ! ( in Size programParamKey, in Vec2 value, in Size arrayIndex )
  setUniform ! ( in Size programParamKey, in Vec2 values<> )
  setUniform ! ( in Size programParamKey, in Vec3 value )
  setUniform ! ( in Size programParamKey, in Vec3 value, in Size arrayIndex )
  setUniform ! ( in Size programParamKey, in Vec3 values<> )
  setUniform ! ( in Size programParamKey, in Vec4 value )
  setUniform ! ( in Size programParamKey, in Vec4 value, in Size arrayIndex )
  setUniform ! ( in Size programParamKey, in Vec4 values<> )
  setUniformToProgramCurrentValue ! ( in Size programParamKey )
  setVertexAttrib ! ( in Size programParamKey, in Ref<OGLBuffer_> buffer )
  setVertexAttrib ! ( in Size programParamKey, in Ref<OGLBuffer_> buffer, in UInt32 stride )
  synchronizeWithBufferVersions ! ()