dxGetTexturePixels
Cliente
Lee los píxeles de una imagen y los entrega a una función, unos fotogramas después.
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
| Nombre | Tipo | Descripción |
|---|---|---|
| texture | texture|dui | La imagen: textura, render target, screen source o dui. Una textura de txd también sirve. |
| format | string | Formato: plain, png, jpeg o dds.por defecto plain |
| textureFormat | string | Para dds: unknown (el de la imagen), argb, xrgb, rgb, dxt1, dxt2, dxt3, dxt4 o dxt5. Solo puede ir después de format.por defecto unknown |
| mipmaps | bool | Para dds: genera mipmaps. Solo puede ir después de format.por defecto true |
| x, y | int | Esquina superior izquierda del área leída, en píxeles. También acepta un vec2.por defecto 0, 0 |
| width, height | int | Tamaño del área leída. Con alto 0, se lee la imagen entera. También acepta un vec2.por defecto 0, 0 |
| callback | function | Recibe los píxeles como string, o false si la lectura falló. |
Retorno
true si la lectura empezó, false si la imagen aún no tiene contenido.
Un número al principio (el índice de superficie de MTA) se acepta y se ignora. Los píxeles plain son 4 bytes por píxel (azul, verde, rojo, alfa), fila por fila, seguidos del ancho y el alto en 2 bytes cada uno.
Ejemplo
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)Si vienes de MTAEn MTA los píxeles se devuelven al instante. En MYMP llegan a una función, porque leer de la tarjeta gráfica tarda unos fotogramas.