Pular para o conteúdo

dxCreateRenderTarget

Cliente Texturas, shaders e render targets OOP DxRenderTarget.create(...)DxRenderTarget(...)

Cria uma textura na qual você mesmo desenha.

render-target dxCreateRenderTarget ( number largura, number altura [, bool comAlfa = false ] )
render-target dxCreateRenderTarget ( number largura, number altura, string formatoSuperficie )
NomeTipoPadrãoDescrição
largura, alturanumber—Tamanho em pixels. Precisam ser maiores que zero.
comAlfaboolfalseGuarda também a transparência, para que o alvo possa ser desenhado por cima de outra coisa sem fundo.
formatoSuperficiestring—Na segunda forma, o formato de superfície do Direct3D, pelo nome em minúsculas sem o prefixo D3DFMT_ — por exemplo "a8r8g8b8", "x8r8g8b8", "r5g6b5", "a16b16g16r16f", "r32f".

O elemento de render target. Devolve false se um argumento estiver errado ou o formato de superfície não for reconhecido (com um aviso no console de debug), ou, sem aviso, se o tamanho for menor que 1, faltar memória de vídeo ou o alvo não puder ser criado.

Ciclo de vida

Um render target é criado uma vez, desenhado quando muda e usado como imagem sempre que precisar:

local placa = dxCreateRenderTarget(256, 128, true)
local precisaRedesenhar = true
addEventHandler("onClientRender", root, function()
if not placa then return end
-- 1. desenhar dentro do alvo, só quando o conteúdo mudou
if precisaRedesenhar then
dxSetRenderTarget(placa, true)
dxDrawRectangle(0, 0, 256, 128, tocolor(0, 0, 0, 200))
dxDrawText("MTAX", 0, 0, 256, 128, tocolor(255, 255, 255, 255), 3, "default-bold", "center", "center")
dxSetRenderTarget() -- volta a desenhar na tela
precisaRedesenhar = false
end
-- 2. usar o alvo como qualquer outra imagem
dxDrawImage(60, 60, 256, 128, placa)
end)
addEventHandler("onClientResourceStop", resourceRoot, function()
-- 3. soltar quando não precisar mais
if placa then destroyElement(placa) end
end)
  • dxCreateTexture — Cria uma textura, a partir de um arquivo do resource, de dados de imagem já em memória, ou em branco.
  • dxCreateScreenSource — Cria uma textura que recebe uma cópia do que está na tela.
  • dxUpdateScreenSource — Copia o conteúdo atual da tela para dentro de um screen source.
  • dxSetRenderTarget — Escolhe para onde o desenho vai: para um render target ou de volta para a tela.
  • dxGetMaterialSize — Devolve o tamanho de um material em pixels.
  • dxSetTextureEdge — Muda o que acontece quando a imagem é amostrada fora dos seus limites.