M MY Multiplayer: Wiki
Lado
Tipo

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

NombreTipoDescripción
texturetexture|duiLa imagen: textura, render target, screen source o dui. Una textura de txd también sirve.
formatstringFormato: plain, png, jpeg o dds.por defecto plain
textureFormatstringPara 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
mipmapsboolPara dds: genera mipmaps. Solo puede ir después de format.por defecto true
x, yintEsquina superior izquierda del área leída, en píxeles. También acepta un vec2.por defecto 0, 0
width, heightintTamaño del área leída. Con alto 0, se lee la imagen entera. También acepta un vec2.por defecto 0, 0
callbackfunctionRecibe 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.

Ver también