DxGetTexturePixels: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
(Created page with "{{Client function}} __NOTOC__ This function fetches the pixels from a texture element. It will work with a standard texture, render target or screen source...")
 
No edit summary
(13 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{Client function}}
{{Client function}}
__NOTOC__
__NOTOC__
This function fetches the [[Texture_pixels|pixels]] from a [[texture]] element. It will work with a standard texture, render target or screen source.
This function fetches the [[Texture_pixels|pixels]] from a [[texture]] element. It can be used with a standard texture, render target or screen source.
{{Important Note|dxGetTexturePixels will not work on a screen source or render target if the player has disabled screen upload.}}
{{Note|
*This function is slow and not something you want to be doing once a frame.
*It is slower when reading pixels from a render target or screen source.
*And is very slow indeed if the texture format is not ''' 'argb' '''.
}}


==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
string dxGetTexturePixels( element texture [, int x, int y, int width, int height ] )
string dxGetTexturePixels ( [ int surfaceIndex = 0, ] element texture [, int x = 0, int y = 0, int width = 0, int height = 0 ] )
</syntaxhighlight>  
</syntaxhighlight>  
 
{{OOP||[[texture]]:getPixels}}
===Required Arguments===
===Required Arguments===
*'''texture :''' The texture element to get the pixels from
*'''texture :''' The texture element to get the pixels from


===Optional Arguments===
===Optional Arguments===
*'''surfaceIndex:''' Desired slice to get if the texture is a volume texture, or desired face to get if the texture is a cube map. <nowiki>(Cube map faces: 0=+X 1=-X 2=+Y 3=-Y 4=+Z 5=-Z)</nowiki>
By default the pixels from the whole texture is returned. To get only a portion of the texture, define a rectangular area using all four of these optional arguments:
By default the pixels from the whole texture is returned. To get only a portion of the texture, define a rectangular area using all four of these optional arguments:
*'''x:''' Rectangle left position
*'''x:''' Rectangle left position
Line 19: Line 26:


==Returns==
==Returns==
Returns a string if successful, ''false'' if invalid arguments were passed to the function.
Returns a ''''plain'''' format pixels string if successful, ''false'' if invalid arguments were passed to the function.


==Example==  
==Example==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
TODO
local mtaLogo = dxCreateTexture("mta-logo.png")
outputChatBox("MTA logo pixels is: "..dxGetTexturePixels(mtaLogo))
</syntaxhighlight>
</syntaxhighlight>
==Requirements==
{{Requirements|n/a|1.3|}}
==Changelog==
{{ChangelogHeader}}
{{ChangelogItem|1.3.0-9.04021|Added surfaceIndex argument}}


==See Also==
==See Also==
{{Drawing_functions}}
{{Drawing_functions}}
[[hu:dxGetTexturePixels]]

Revision as of 10:15, 30 November 2018

This function fetches the pixels from a texture element. It can be used with a standard texture, render target or screen source.

[[{{{image}}}|link=|]] Important Note: dxGetTexturePixels will not work on a screen source or render target if the player has disabled screen upload.
[[{{{image}}}|link=|]] Note:
  • This function is slow and not something you want to be doing once a frame.
  • It is slower when reading pixels from a render target or screen source.
  • And is very slow indeed if the texture format is not 'argb' .

Syntax

string dxGetTexturePixels ( [ int surfaceIndex = 0, ] element texture [, int x = 0, int y = 0, int width = 0, int height = 0 ] )

OOP Syntax Help! I don't understand this!

Method: texture:getPixels(...)


Required Arguments

  • texture : The texture element to get the pixels from

Optional Arguments

  • surfaceIndex: Desired slice to get if the texture is a volume texture, or desired face to get if the texture is a cube map. (Cube map faces: 0=+X 1=-X 2=+Y 3=-Y 4=+Z 5=-Z)

By default the pixels from the whole texture is returned. To get only a portion of the texture, define a rectangular area using all four of these optional arguments:

  • x: Rectangle left position
  • y: Rectangle top position
  • width: Rectangle width
  • height : Rectangle height

Returns

Returns a 'plain' format pixels string if successful, false if invalid arguments were passed to the function.

Example

local mtaLogo = dxCreateTexture("mta-logo.png")
outputChatBox("MTA logo pixels is: "..dxGetTexturePixels(mtaLogo))

Requirements

Minimum server version n/a
Minimum client version 1.3

Note: Using this feature requires the resource to have the above minimum version declared in the meta.xml <min_mta_version> section. e.g. <min_mta_version client="1.3" />

Changelog

Version Description
1.3.0-9.04021 Added surfaceIndex argument

See Also