dxCreateRenderTarget
This function was partially migrated from the old wiki. Please review manually:
- Missing section: Explanation
Manual Review Required
Please finish this page using the corresponding Old Wiki article. Go to Contribution guidelines for more information.
This function creates a render target element, which is a special type of texture that can be drawn on with the dx functions. Successful render target creation is not guaranteed, and may fail due to hardware or memory limitations.
Render targets are usually cleared when the player minimizes MTA (i.e. alt-tab). See onClientRestore for details on when to restore any fixed content.
Use dxSetBlendMode to get better quality
It is highly recommended that dxSetTestMode is used when writing and testing scripts using dxCreateRenderTarget.
OOP Syntax Help! I don't understand this!
- Constructor: DxRenderTarget (...)
Syntax
element dxCreateRenderTarget ( int width, int height, [ bool withAlpha = false ] )Required Arguments
- width: MISSING_PARAM_DESC
- height: MISSING_PARAM_DESC
Optional Arguments
NOTE: When using optional arguments, you might need to supply all arguments before the one you wish to use.
- withAlpha (default: false): The render target will be created with an alpha channel. 'false' will turn images' alpha channels to black color
Returns
- element: value
Returns a texture element if successful, false if the system is unable to create a render target.
Code Examples
local myRenderTarget
addEventHandler("onClientResourceStart", resourceRoot, function() myRenderTarget = dxCreateRenderTarget(250, 100, true) -- Create a render target
if (myRenderTarget) then updateRenderTarget() -- Our function to draw to the render target (see below) end end)
addEventHandler( "onClientRender", root, function() if myRenderTarget then -- Draw the render target lots of times in different positions on the screen dxDrawImage(350, 50, 250, 100, myRenderTarget) dxDrawImage(450, 380, 250, 100, myRenderTarget) dxDrawImage(550, 250, 250, 100, myRenderTarget) dxDrawImage(650, 70, 250, 100, myRenderTarget) end end)
function updateRenderTarget() dxSetRenderTarget(myRenderTarget, true) dxSetBlendMode("modulate_add") -- Set 'modulate_add' when drawing stuff on the render target
dxDrawText("Hello " .. getTickCount(), 10, 10, 0, 0, tocolor(255, 255, 255, 255), 2, "clear") -- Draw a message dxDrawRectangle(10, 50, 40, 40, tocolor(math.random(255), math.random(255), math.random(255))) -- Draw a square with random color
-- ... etc, imagine you have a lot of dxDraw* calls to make, this is where render targets come in handy!
dxSetBlendMode("blend") -- Restore default blending dxSetRenderTarget() -- Restore default render targetend
-- We can even update the render target on the fly, by binding it to a keybindKey("r", "down", updateRenderTarget)See Also
Drawing Functions
- dxConvertPixels
- dxCreateFont
- dxCreateRenderTarget
- dxCreateScreenSource
- dxCreateShader
- dxCreateTexture
- dxDrawCircle
- dxDrawImage
- dxDrawImageSection
- dxDrawLine
- dxDrawLine3D
- dxDrawMaterialLine3D
- dxDrawMaterialPrimitive
- dxDrawMaterialPrimitive3D
- dxDrawMaterialSectionLine3D
- dxDrawModel3D
- dxDrawPrimitive
- dxDrawPrimitive3D
- dxDrawRectangle
- dxDrawText
- dxDrawWiredSphere
- dxGetBlendMode
- dxGetFontHeight
- dxGetMaterialSize
- dxGetPixelColor
- dxGetPixelsFormat
- dxGetPixelsSize
- dxGetStatus
- dxGetTextSize
- dxGetTexturePixels
- dxGetTextWidth
- dxIsAspectRatioAdjustmentEnabled
- dxSetAspectRatioAdjustmentEnabled
- dxSetBlendMode
- dxSetPixelColor
- dxSetRenderTarget
- dxSetShaderTessellation
- dxSetShaderTransform
- dxSetShaderValue
- dxSetTestMode
- dxSetTextureEdge
- dxSetTexturePixels
- dxUpdateScreenSource