SneakySquid icon

Overengineered Screengrab

SneakySquid | PRO | 07/17/24 12:39:24 PM UTC (Edited) | 0 ⭐ | 1218 👁️ | Never ⏰ | []
Lua |

1.1 KB

|

None

|

0 👍

/

0 👎

local ScreenMat = CreateMaterial("ScreenMat", "Fillrate", {})
 
local function screengrab(open_menu)
    file.CreateDir("screengrabs")
 
    hook.Add("PostRender", "Screengrab", function()
        local frame_count = FrameNumber()
 
        render.UpdateScreenEffectTexture(1)
        ScreenMat:SetTexture("$basetexture", render.GetScreenEffectTexture(1):GetName())
 
        cam.Start2D()
            surface.SetMaterial(ScreenMat)
            surface.SetDrawColor(255, 255, 255, 255)
            surface.DrawTexturedRect(0, 0, ScrW(), ScrH())
 
            surface.SetDrawColor(0, 255, 0, 255)
            surface.DrawRect(0, 0, 10, 10)
 
            file.Write(string.format("screengrabs/%i.jpg", os.time()), render.Capture{
                format = "jpg",
                quality = 100,
                x = 0, y = 0,
                w = ScrW(), h = ScrH(),
            })
        cam.End2D()
 
        if frame_count ~= FrameNumber() then
            while true do end
        end
 
        if open_menu then
            gui.ActivateGameUI()
        end
 
        hook.Remove("PostRender", "Screengrab")
    end)
end
 
concommand.Add("screengrab", function()
    local escape_menu = gui.IsGameUIVisible()
 
    if escape_menu then
        gui.HideGameUI()
    end
 
    screengrab(escape_menu)
end)
 

Comments