HU/dxCreateRenderTarget: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:


Használja a [[dxGetStatus]]-t a hibák megtalálásához. (Ha a '''VideoMemoryFreeForMTA''' nulla, akkor a  hiba garantált.)
Használja a [[dxGetStatus]]-t a hibák megtalálásához. (Ha a '''VideoMemoryFreeForMTA''' nulla, akkor a  hiba garantált.)
{{Tip_hu|Használja a [[dxSetBlendMode]] hogy jobb minőséget kapjon}}
{{Tip_hu|Használja a [[dxSetBlendMode]], hogy jobb minőséget kapjon}}
{{Tip_hu|Nagyon ajánlott a [[dxSetTestMode]] használata, amikor a dxCreateRenderTarget-t használva írunk és tesztelünk scripteket.}}
{{Tip_hu|Nagyon ajánlott a [[dxSetTestMode]] használata, amikor a dxCreateRenderTarget-t használva írunk és tesztelünk scripteket.}}
{{Note_hu|Render target á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.}}
{{Note_hu|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==  
==Szintaxis==  
Line 24: Line 24:


==Magyarázat==
==Magyarázat==
What is a rendertarget?
Mi az a rendertarget?
A rendertarget is like a big, white paper(or if you set alpha to true, it will be a transparent paper) that you can draw on,  
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,  
after you drawn on it, you can draw it as many times as you like, without impacting performance. It could be used for
miután rajzolt rajta, annyiszor rajzolhat még, amennyiszer csak szeretne, teljesítmény befolyásolás nélkül. Használhatja
dashboard, where a few hundred dxDraw* functions are called, so, instead of calling these every frame, you can just
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.
draw it on a render target, and draw the render target, instead of every information one by one.
 


==Példa==
==Példa==

Latest revision as of 18:05, 17 October 2018

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.)

[[{{{image}}}|link=|]] Tipp: Használja a dxSetBlendMode, hogy jobb minőséget kapjon
[[{{{image}}}|link=|]] Tipp: Nagyon ajánlott a dxSetTestMode használata, amikor a dxCreateRenderTarget-t használva írunk és tesztelünk scripteket.
[[{{{image}}}|link=|]] 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

Fordította