Initial commit
This commit is contained in:
80
Torque/SDK/example/common/client/screenshot.cs
Normal file
80
Torque/SDK/example/common/client/screenshot.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// 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");
|
||||
$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);
|
||||
|
||||
Reference in New Issue
Block a user