DxSetShaderValue: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
 
(One intermediate revision by one other user not shown)
Line 23: Line 23:
myShader = dxCreateShader( "hello.fx" )
myShader = dxCreateShader( "hello.fx" )
myTexture = dxCreateTexture( "man.png" )
myTexture = dxCreateTexture( "man.png" )
dxSetShaderValue( myShader, "texure0", myTexture )                -- Set a texture
dxSetShaderValue( myShader, "texture0", myTexture )                -- Set a texture
dxSetShaderValue( myShader, "bShowThing", true )                  -- Set a bool                   
dxSetShaderValue( myShader, "bShowThing", true )                  -- Set a bool                   
dxSetShaderValue( myShader, "speed", 2.4 )                        -- Set a float
dxSetShaderValue( myShader, "speed", 2.4 )                        -- Set a float
dxSetShaderValue( myShader, "positionOfCheese", 100, 200, 300 )  -- Set a list of numbers, with max 16 numbers. Btw, this is a float: 3.4
dxSetShaderValue( myShader, "positionOfCheese", 100, 200, 300 )  -- Set a list of numbers, with max 16 numbers. Btw, this is a float: 3.4. This can be used to fill an array in HLSL.
</syntaxhighlight>
</syntaxhighlight>



Latest revision as of 14:00, 4 February 2021

This sets a named parameter for a shader element


[[{{{image}}}|link=|]] Important Note: It's enough to set the texture only once if it's a render target

Syntax

bool dxSetShaderValue ( element theShader, string parameterName, mixed value )

OOP Syntax Help! I don't understand this!

Method: shader:setValue(...)


Required Arguments

  • theShader: The shader element whose parameter is to be changed
  • parameterName: The name of parameter
  • value: The value to set, which can be a texture, a bool, a number or a list of numbers(max 16 floats(numbers))

Returns

Returns true if the shader element's parameter was successfully changed, false otherwise.

Example

myShader = dxCreateShader( "hello.fx" )
myTexture = dxCreateTexture( "man.png" )
dxSetShaderValue( myShader, "texture0", myTexture )                -- Set a texture
dxSetShaderValue( myShader, "bShowThing", true )                  -- Set a bool                  
dxSetShaderValue( myShader, "speed", 2.4 )                        -- Set a float
dxSetShaderValue( myShader, "positionOfCheese", 100, 200, 300 )   -- Set a list of numbers, with max 16 numbers. Btw, this is a float: 3.4. This can be used to fill an array in HLSL.

See Also