tge/example/common/client/screenshot.cs
2017-04-17 06:17:10 -06:00

81 lines
2.1 KiB
C#
Executable File

//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
function formatImageNumber(%number)
{
if(%number < 10)
%number = "0" @ %number;
if(%number < 100)
%number = "0" @ %number;
if(%number < 1000)
%number = "0" @ %number;
if(%number < 10000)
%number = "0" @ %number;
return %number;
}
function formatSessionNumber(%number)
{
if(%number < 10)
%number = "0" @ %number;
if(%number < 100)
%number = "0" @ %number;
return %number;
}
//----------------------------------------
function recordMovie(%movieName, %fps)
{
$timeAdvance = 1000 / %fps;
$screenGrabThread = schedule($timeAdvance,0,movieGrabScreen,%movieName,0);
}
function movieGrabScreen(%movieName, %frameNumber)
{
screenshot(%movieName @ formatImageNumber(%frameNumber) @ ".png", "PNG");
$screenGrabThread = schedule($timeAdvance, 0, movieGrabScreen, %movieName, %frameNumber + 1);
}
function stopMovie()
{
$timeAdvance = 0;
cancel($screenGrabThread);
}
//----------------------------------------
$screenshotNumber = 0;
function doScreenShot( %val )
{
if (%val)
{
if ($pref::Video::screenShotSession $= "")
$pref::Video::screenShotSession = 0;
if ($screenshotNumber == 0)
$pref::Video::screenShotSession++;
if ($pref::Video::screenShotSession > 999)
$pref::Video::screenShotSession = 1;
$pref::interior::showdetailmaps = false;
$name = "screenshot_" @ formatSessionNumber($pref::Video::screenShotSession) @ "-" @ formatImageNumber($screenshotNumber++);
if($pref::Video::screenShotFormat $= "JPEG")
screenShot($name @ ".jpg", "JPEG");
else
if($pref::Video::screenShotFormat $= "PNG")
screenShot($name @ ".png", "PNG");
else
screenShot($name @ ".png", "PNG");
}
}
// bind key to take screenshots
GlobalActionMap.bind(keyboard, "ctrl p", doScreenShot);