DxCreateTexture: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 4: Line 4:


[[Image:Screenshot_27.png|frame|A speedtest showing the performance of a texture created with various settings of textureFormat.[Mipmaps = true][textureEdge = "wrap"]]]
[[Image:Screenshot_27.png|frame|A speedtest showing the performance of a texture created with various settings of textureFormat.[Mipmaps = true][textureEdge = "wrap"]]]
[[Image:DxCreateTexture_mipmaps_false.png |frame|A speedtest showing the performance of a texture created with various settings of textureFormat.[Mipmaps = false][textureEdge = "wrap"]]]


It is possible to use dxCreateTexture to load cubemaps and volume textures, but these will only be useable as inputs for a shader. The Microsoft utility [http://nightly.mtasa.com/files/shaders/DxTex.zip DxTex] can view and change cubemaps and volume textures. DxTex can also convert standard textures into DXT1/3/5 compressed .dds which should reduce file sizes.
It is possible to use dxCreateTexture to load cubemaps and volume textures, but these will only be useable as inputs for a shader. The Microsoft utility [http://nightly.mtasa.com/files/shaders/DxTex.zip DxTex] can view and change cubemaps and volume textures. DxTex can also convert standard textures into DXT1/3/5 compressed .dds which should reduce file sizes.

Revision as of 21:34, 27 March 2018

This function creates a texture element that can be used in the dxDraw functions.

A speedtest showing the performance of a texture created with various settings of textureFormat.[Mipmaps = true][textureEdge = "wrap"]
A speedtest showing the performance of a texture created with various settings of textureFormat.[Mipmaps = false][textureEdge = "wrap"]

It is possible to use dxCreateTexture to load cubemaps and volume textures, but these will only be useable as inputs for a shader. The Microsoft utility DxTex can view and change cubemaps and volume textures. DxTex can also convert standard textures into DXT1/3/5 compressed .dds which should reduce file sizes.

Syntax

element dxCreateTexture ( string filepath [, string textureFormat = "argb", bool mipmaps = true, string textureEdge = "wrap" ] )
element dxCreateTexture ( string pixels [, string textureFormat = "argb", bool mipmaps = true, string textureEdge = "wrap" ] )
element dxCreateTexture ( int width, int height [, string textureFormat = "argb", string textureEdge = "wrap", string textureType = "2d", int depth = 1 ] )

OOP Syntax Help! I don't understand this!

Method: DxTexture(...)


Required Arguments

  • filepath: The filepath of the image. (.bmp, .dds, .jpg, .png, and .tga images are supported). Image files should ideally have dimensions that are a power of two, to prevent possible blurring.

or

  • pixels: Pixels containing image data. ('plain', 'jpeg' or 'png' pixels can be used here)

or

  • width: Desired width (Must be a power of two. e.g. 128, 256)
  • height : Desired height (Must be a power of two. e.g. 128, 256)

Optional Arguments

NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use. For more information on optional arguments, see optional arguments.

  • textureFormat : A string representing the desired texture format, which can be one of:
    • "argb" : ARGB uncompressed 32 bit color can speed up drawing (default).
    • "dxt1" : DXT1 compressed - Can take a fraction of a second longer to load (unless the file is already a DXT1 .dds). Uses 8 times less video memory than ARGB and CANT speed up drawing. Quality not as good as ARGB and does not support alpha blending.
    • "dxt3" : DXT3 compressed - Can take a fraction of a second longer to load (unless the file is already a DXT3 .dds). Uses 4 times less video memory than ARGB and can CANT speed up drawing. Quality slightly better than DXT1 and supports crisp alpha blending.
    • "dxt5" : DXT5 compressed - Can take a fraction of a second longer to load (unless the file is already a DXT5 .dds). Uses 4 times less video memory than ARGB and can CANT speed up drawing. Quality slightly better than DXT1 and supports smooth alpha blending.
  • mipmaps : True to create a mip-map chain so the texture looks good when drawn at various sizes.
  • textureEdge : A string representing the desired texture edge handling, which can be one of:
    • "wrap" : Wrap the texture at the edges (default)
    • "clamp" : Clamp the texture at the edges. This may help avoid edge artifacts.
  • textureType : A string representing the desired texture type, which can be one of:
    • "2d" : Standard texture (default)
    • "3d" : Volume texture
    • "cube" : Cube map
  • depth: Desired number of slices when creating a volume texture

Returns

Returns a texture if successful, false if invalid arguments were passed to the function.

Example

addEventHandler( "onClientRender", root,
    function()
        if myImage then
            dxDrawImage( 100, 350, 300, 350, myImage  )
        end
    end
)

-- Use 'toggle' command to switch image on and off
addCommandHandler( "toggle",
    function()
        if not myImage then
            myImage = dxCreateTexture( "moonpig.png" )  -- Create texture
        else        
            destroyElement( myImage )                 -- Destroy texture
            myImage = nil
        end
    end
)

Changelog

Version Description
1.3.0-9.04021 Added textureType and depth argument
1.3.0-9.04035 Added textureEdge argument

See Also