render.GetRenderTarget

From Garry's Mod
Revision as of 22:41, 5 April 2016 by NeatNit (Talk | contribs)
Jump to: navigation, search
 render.GetRenderTarget( )

Contents

Description

Returns the currently active render target.

Instead of saving the current render target using this function and restoring to it later, it is generally better practice to use render.PushRenderTarget and render.PopRenderTarget.

Returns

ITexture

The currently active Render Target

Examples

Example

Render something to a different render target, then restore the old render target

local oldRt = render.GetRenderTarget() -- we'll save the old screen and draw on a new one!
local w, h = ScrW(), ScrH()
local customRt = GetRenderTarget( "some_unique_render_target_nameeeee", w, h, true )

render.SetRenderTarget( customRt )
render.Clear( 0, 0, 255, 255, true ) -- fill the background with blue!

-- draw all props on the blue background!
for key, prop in pairs(ents.FindByClass( "prop_physics" )) do
    prop:DrawModel()
end

-- save the picture to the garrysmod/data folder.  ~format="jpg" will not work.
local data = render.Capture({ format = "jpeg", quality = 70, x = 0, y = 0, h = h, w = w })	
local pictureFile = file.Open( "RenderTargetsAreAwesome.jpg", "wb", "DATA" )	
pictureFile:Write( data )
pictureFile:Close()

render.SetRenderTarget( oldRt )


Examples

Example

Same as above, but using render.PushRenderTarget and render.PopRenderTarget instead of render.GetRenderTarget and render.SetRenderTarget

local w, h = ScrW(), ScrH()
local customRt = GetRenderTarget( "some_unique_render_target_nameeeee", w, h, true )

render.PushRenderTarget( customRt )
    render.Clear( 0, 0, 255, 255, true ) -- fill the background with blue!

    -- draw all props on the blue background!
    for key, prop in pairs(ents.FindByClass( "prop_physics" )) do
        prop:DrawModel()
    end

    -- save the picture to the garrysmod/data folder.  ~format="jpg" will not work.
    local data = render.Capture({ format = "jpeg", quality = 70, x = 0, y = 0, h = h, w = w })	
    local pictureFile = file.Open( "RenderTargetsAreAwesome.jpg", "wb", "DATA" )	
    pictureFile:Write( data )
    pictureFile:Close()
render.PopRenderTarget()


Personal tools
Navigation