dxGetTexturePixels
Cliente
Lê os pixels de uma imagem e os entrega a uma função, alguns quadros depois.
bool dxGetTexturePixels(texture|dui texture, function callback [, string format = plain, string textureFormat = unknown, bool mipmaps = true, int x, y = 0, 0, int width, height = 0, 0])
Parâmetros
| Nome | Tipo | Descrição |
|---|---|---|
| texture | texture|dui | A imagem: textura, render target, screen source ou dui. Uma textura de txd também serve. |
| format | string | Formato: plain, png, jpeg ou dds.padrão plain |
| textureFormat | string | Para dds: unknown (o da imagem), argb, xrgb, rgb, dxt1, dxt2, dxt3, dxt4 ou dxt5. Só pode vir depois de format.padrão unknown |
| mipmaps | bool | Para dds: gera mipmaps. Só pode vir depois de format.padrão true |
| x, y | int | Canto superior esquerdo da área lida, em pixels. Aceita também um vec2.padrão 0, 0 |
| width, height | int | Tamanho da área lida. Com altura 0, lê a imagem inteira. Aceita também um vec2.padrão 0, 0 |
| callback | function | Recebe os pixels como string, ou false se a leitura falhou. |
Retorno
true se a leitura começou, false se a imagem ainda não tem conteúdo.
Um número no começo (o índice de superfície do MTA) é aceito e ignorado. Pixels plain são 4 bytes por pixel (azul, verde, vermelho, alfa), linha a linha, seguidos da largura e da altura em 2 bytes cada.
Exemplo
local target = dxCreateRenderTarget(256, 256, true)
dxGetTexturePixels(target, "png", function(pixels)
if not pixels then return end
local file = fileCreate("snapshot.png")
fileWrite(file, pixels)
fileClose(file)
end)Vindo do MTANo MTA os pixels são devolvidos na hora. No MYMP eles chegam numa função, porque a leitura da placa de vídeo leva alguns quadros.