# BL_Shader(PyObjectPlus)

base class — `PyObjectPlus`

class `bge.types.``BL_Shader`(PyObjectPlus)

  BL_Shader GLSL shaders.

  TODO - Description

  `setUniformfv`(name, fList)

    Set a uniform with a list of float values

    Parameters: | name (string) – the uniform name fList (list[float]) – a list (2, 3 or 4 elements) of float values

  `delSource`()

    Clear the shader. Use this method before the source is changed with `setSource`.

  `getFragmentProg`()

    Returns the fragment program.

    Returns: | The fragment program.
    Return type: | string

  `getVertexProg`()

    Get the vertex program.

    Returns: | The vertex program.
    Return type: | string

  `isValid`()

    Check if the shader is valid.

    Returns: | True if the shader is valid
    Return type: | boolean

  `setAttrib`(enum)

    Set attribute location. (The parameter is ignored a.t.m. and the value of “tangent” is always used.)

    Parameters: | enum (integer) – attribute location value

  `setNumberOfPasses`(max_pass)

    Set the maximum number of passes. Not used a.t.m.

    Parameters: | max_pass (integer) – the maximum number of passes

  `setSampler`(name, index)

    Set uniform texture sample index.

    Parameters: | name (string) – Uniform name index (integer) – Texture sample index.

  `setSource`(vertexProgram, fragmentProgram)

    Set the vertex and fragment programs

    Parameters: | vertexProgram (string) – Vertex program fragmentProgram (string) – Fragment program

  `setUniform1f`(name, fx)

    Set a uniform with 1 float value.

    Parameters: | name (string) – the uniform name fx (float) – Uniform value

  `setUniform1i`(name, ix)

    Set a uniform with an integer value.

    Parameters: | name (string) – the uniform name ix (integer) – the uniform value

  `setUniform2f`(name, fx, fy)

    Set a uniform with 2 float values

    Parameters: | name (string) – the uniform name fx (float) – first float value fy (float) – second float value

  `setUniform2i`(name, ix, iy)

    Set a uniform with 2 integer values

    Parameters: | name (string) – the uniform name ix (integer) – first integer value iy (integer) – second integer value

  `setUniform3f`(name, fx, fy, fz)

    Set a uniform with 3 float values.

    Parameters: | name (string) – the uniform name fx (float) – first float value fy (float) – second float value fz (float) – third float value

  `setUniform3i`(name, ix, iy, iz)

    Set a uniform with 3 integer values

    Parameters: | name (string) – the uniform name ix (integer) – first integer value iy (integer) – second integer value iz (integer) – third integer value

  `setUniform4f`(name, fx, fy, fz, fw)

    Set a uniform with 4 float values.

    Parameters: | name (string) – the uniform name fx (float) – first float value fy (float) – second float value fz (float) – third float value fw (float) – fourth float value

  `setUniform4i`(name, ix, iy, iz, iw)

    Set a uniform with 4 integer values

    Parameters: | name (string) – the uniform name ix (integer) – first integer value iy (integer) – second integer value iz (integer) – third integer value iw (integer) – fourth integer value

  `setUniformDef`(name, type)

    Define a new uniform

    Parameters: | name (string) – the uniform name type (UNI_NONE, UNI_INT, UNI_FLOAT, UNI_INT2, UNI_FLOAT2, UNI_INT3, UNI_FLOAT3, UNI_INT4, UNI_FLOAT4, UNI_MAT3, UNI_MAT4, UNI_MAX) – uniform type

  `setUniformMatrix3`(name, mat, transpose)

    Set a uniform with a 3x3 matrix value

    Parameters: | name (string) – the uniform name mat (3x3 matrix) – A 3x3 matrix [[f, f, f], [f, f, f], [f, f, f]] transpose (boolean) – set to True to transpose the matrix

  `setUniformMatrix4`(name, mat, transpose)

    Set a uniform with a 4x4 matrix value

    Parameters: | name (string) – the uniform name mat (4x4 matrix) – A 4x4 matrix [[f, f, f, f], [f, f, f, f], [f, f, f, f], [f, f, f, f]] transpose (boolean) – set to True to transpose the matrix

  `setUniformiv`(name, iList)

    Set a uniform with a list of integer values

    Parameters: | name (string) – the uniform name iList (list[integer]) – a list (2, 3 or 4 elements) of integer values

  `validate`()

    Validate the shader object.