HU/dxCreateRenderTarget
Ez a function létrehoz egy render target elemet, amely egy speciális típusú textúra, amely a dx függvényekkel rajzolható le. A sikeres render target létrehozása nem garantált, a hardver vagy a memória korlátai miatt hibák lehetnek.
Használja a dxGetStatus-t a hibák megtalálásához. (Ha a VideoMemoryFreeForMTA nulla, akkor a hiba garantált.)
Tipp: Használja a dxSetBlendMode, hogy jobb minőséget kapjon |
Tipp: Nagyon ajánlott a dxSetTestMode használata, amikor a dxCreateRenderTarget-t használva írunk és tesztelünk scripteket. |
Megjegyzés: Render target-ek általában törlődnek, amikor a játékos minimalizálja az MTA-t (alt-tab). Lásd a onClientRestore-t a rögzített tartalmak visszaállításának részleteiről. |
Szintaxis
element dxCreateRenderTarget ( int width, int height [, bool withAlpha = false ] )
OOP Syntax Help! I don't understand this!
- Method: DxRenderTarget(...)
Kötelező paraméterek
- width : A textúra szélessége pixelben.
- height : A textúra magassága pixelben.
- withAlpha: The render target will be created with an alpha channel. 'false' will turn images' alpha channels to black color
Visszatérési érték
Visszaad egy textúra elemet, ha sikeres, false, ha a rendszernek nem sikerül létrehoznia a render target-et.
Mindig ellenőrizze, hogy ez a function false értéked ad-e vissza.
Magyarázat
Mi az a rendertarget? A rendertarget olyan, mint egy nagy, fehér papír (vagy, ha az alpha-t true-ra állítja, egy átlátszó papír lesz) amire rajzolhat, miután rajzolt rajta, annyiszor rajzolhat még, amennyiszer csak szeretne, teljesítmény befolyásolás nélkül. Használhatja dashboard-hoz is, ahol több száz dxDraw* functions van meghívva, szóval, ahelyett hogy az összes frame-t meghívná, lerajzolhatja egy render target-en, és minden egyes információ helyett csak lerajzolja a render target-et.
Példa
addEventHandler("onClientResourceStart", resourceRoot, function() myRenderTarget = dxCreateRenderTarget( 80, 100 ) -- Create a render target texture which is 80 x 100 pixels end ) addEventHandler( "onClientRender", root, function() if myRenderTarget then dxSetRenderTarget( myRenderTarget ) -- Start drawing on myRenderTarget dxDrawText ( "Hello", 10, 20 ) -- Draw a message dxSetRenderTarget() -- Stop drawing on myRenderTarget dxDrawImage( 50, 50, 100, 100, myRenderTarget ) -- Now use myRenderTarget as a material and draw it lots of times dxDrawImage( 150, 350, 150, 100, myRenderTarget ) dxDrawImage( 250, 250, 100, 150, myRenderTarget ) dxDrawImage( 350, 30, 150, 150, myRenderTarget ) end end ) local myRenderTarget = dxCreateRenderTarget(500, 500, true) -- -- Function to draw text to our render target with '''modulate_add''' blend mode when the 'r' key is pressed -- function updateRenderTarget() dxSetRenderTarget(myRenderTarget, true) dxSetBlendMode("modulate_add") -- Set 'modulate_add' when drawing stuff on the render target dxDrawText("Testing "..getTickCount(), 0, 0, 0, 0, tocolor(255, 255, 255, 255), 2, "clear") dxSetBlendMode("blend") -- Restore default blending dxSetRenderTarget() -- Restore default render target end bindKey("r", "down", updateRenderTarget )
Lásd még
- HU/dxConvertPixels
- HU/dxCreateFont
- HU/dxCreateRenderTarget
- HU/dxCreateScreenSource
- HU/dxCreateShader
- HU/dxCreateTexture
- HU/dxDrawCircle
- HU/dxDrawImage
- HU/dxDrawImageSection
- HU/dxDrawLine
- HU/dxDrawLine3D
- HU/dxDrawMaterialLine3D
- HU/dxDrawMaterialPrimitive
- HU/dxDrawPrimitive
- HU/dxDrawMaterialSectionLine3D
- HU/dxDrawRectangle
- HU/dxDrawText
- HU/dxGetBlendMode
- HU/dxGetFontHeight
- HU/dxGetMaterialSize
- HU/dxGetPixelColor
- HU/dxGetPixelsSize
- HU/dxGetPixelsFormat
- HU/dxGetStatus
- HU/dxGetTextWidth
- HU/dxGetTexturePixels
- HU/dxSetAspectRatioAdjustmentEnabled
- HU/dxSetBlendMode
- HU/dxSetPixelColor
- HU/dxSetRenderTarget
- HU/dxSetShaderValue
- HU/dxSetShaderTessellation
- HU/dxSetShaderTransform
- HU/dxSetTestMode
- HU/dxSetTextureEdge
- HU/dxSetTexturePixels
- HU/dxUpdateScreenSource