Files
UnrealEngineUWP/Engine/Documentation/Extras/ConsoleHelpTemplate.html
Marc Audy d3e1006533 Copying //UE4/Dev-Framework to Dev-Main (//UE4/Dev-Main) @ 2926658
#lockdown Nick.Penwarden

==========================
MAJOR FEATURES + CHANGES
==========================

Change 2821607 on 2016/01/08 by Mieszko.Zielinski

	Added a way to limit amount of information logged by vlog by discarding logs from classes from outside of class whitelist #UE4

	This feature was followed by refactoring of functions taking FVisualLogEntry pointers to use references instead.

	#rb Lukasz.Furman
	#codereview John.Abercrombie

Change 2828384 on 2016/01/14 by Mieszko.Zielinski

	Back out of visual log refactor done as part of CL#2821607 #UE4

Change 2910454 on 2016/03/15 by Zak.Middleton

	#ue4 - Properly exclude zero-distance MTD results in ComponentEncroachesBlockingGeometry_WithAdjustment() in the presense of multiple overlaps.

	#rb Jeff.Farris
	#jira UE-24327
	UDN: https://udn.unrealengine.com/questions/270574/jeff-farris-hack-for-physx-mtd.html

Change 2910548 on 2016/03/15 by Zak.Middleton

	#ue4 - Handle MTD computation returning NaN direction when there is a "contact" with zero distance.

Change 2912311 on 2016/03/16 by Marc.Audy

	Properly handle overlaps in C++ in documentation code and UE4 to Unity doc
	#rb Martin.Wilson

Change 2913086 on 2016/03/17 by Marc.Audy

	Adding ability to have 9 parameters to a dynamic delegate

Change 2913101 on 2016/03/17 by Marc.Audy

	Fix some of the loctext error messages

Change 2913102 on 2016/03/17 by Thomas.Sarkanen

	Console usability improvements

	Display console autocompletion commands from the lexicographically first element up to either the total number of commands or MAX_AUTOCOMPLETION_LINES, whichever is least. The previous behaviour started the list "in the middle" and hid the first elements if there were too many matches. Thus "[ab ac ad]" with "aa" hidden now becomes "[aa ab ac]" with "ad" hidden.
	To make scrolling work as expected, the input handling of the up and down arrow keys has been reversed so that the cursor iterates forward starting from the top with the down arrow key, and goes back up with the up arrow key. Command history is still accessed with the up arrow key.
	This commit also undoes one of the most evil uses of operator overloading I've ever seen, on par with "#define true false" but more subtle

	Color console autocomplete entries to denote their type: command, CVar or other (manual autocompletion entries). CVars are further divided into writeable and read-only variables.
	Assume that manual console autocompletion entries are commands. This makes the autocompletion list colors more consistent and less noisy

	Automatically select (but don't complete) a command on console character input. To prevent the autocomplete from becoming too trigger happy, no longer automatically complete commands for arbitrary key inputs that we happen to have a match for

	Allow cycling through console commands with the tab key
	Discriminate between first time and repeated tab presses and only scroll through autocomplete entries on the latter

	Fix off-by-one error in console: "x more matches" line was being shown when the number of autocomplete elements was equal to MAX_AUTOCOMPLETION_LINES
	Fix an off-by-one error that was causing the topmost console command to not be shown if there was an autocomplete scroll region

	Show the currently selected autocomplete entry faded out behind the user's typed input
	Slightly increase brightness of the normal input text colour to better distinguish between the typed and autocompleted parts of the input line

	Left-justify command descriptions in the console autocompletion box
	Detect overflow of console autocomplete lines on low resolutions and decrease the space used for description justification to compensate

	Make the console input, history and autocomplete colours user configurable

	Add console background transparency. Configurable, set to 15% by default

	Add missing closing quote to the console dump HTML template

	#github #2061: Console usability improvements from Mattiwatti

Change 2913104 on 2016/03/17 by Thomas.Sarkanen

	Added indicator displayed on animation nodes when they use the 'fast path'

	Added checkbox that can be used to audit Blueprint fast-path usage.
	Switched almost all animation node widgets to derive from new SAnimationGraphNode. This creates the overlay widget that indicates whether this node is using a more optimal path.

	#doc Also added documentation tooltips and UDN doc files/images for the fast path systems.
	#jira UE-24698 - Add icon to pins in anim graph to indicate 'fast mode' access
	#rb Martin.Wilson

Change 2913306 on 2016/03/17 by Marc.Audy

	Cleaning up GetResourceSize
	- Made many call Super::GetResourceSize
	- Removed trivial implementations
	- Fixed HierarchicalInstanceStaticMeshComponent double counting an array

Change 2913535 on 2016/03/17 by Lukasz.Furman

	fixed broken behavior tree graph data after subnode undo
	#ue4 UE-28198

Change 2913608 on 2016/03/17 by Lukasz.Furman

	fixed behavior tree execution indices after undoing move in editor
	#ue4 UE-26705

Change 2913847 on 2016/03/17 by Lukasz.Furman

	added new automation test for UE-28309
	#ue4

Change 2913849 on 2016/03/17 by Lukasz.Furman

	fixed behavior tree skipping over branch when restart request comes during AbortCurrentTask call
	#ue4 UE-28309

Change 2913895 on 2016/03/17 by Marc.Audy

	Added 'self' argument to Actor and PrimitiveComponent delegates that didn't already supply one
	Fixed up all C++ uses of these delegates
	#jira UE-23122
	#rb Zak.Middleton

Change 2914743 on 2016/03/18 by Thomas.Sarkanen

	Editing of primitive data in PhAT

[CL 2926677 by Marc Audy in Main branch]
2016-03-29 16:33:59 -04:00

371 lines
8.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<title>%s</title>
<body>
<h1>%s</h1>
<br>
<div style="padding:0px; margin:40px; min-width:450px; max-width:1250px;">
<div style="padding:0px; margin:20px" >
<form class="iform" onsubmit="return false" autocomplete="off">
<!-- onchange is when focus lost or enter, oninput is on each change -->
<input id='input1' type="search" name='input1' style="font-size:30px; padding:5px" oninput="OnInputChange()" />
</form>
<div style="margin-left:20px; line-height: 190%;">
<p id="prefixdemo"></p>
</div>
<div style="margin-left:20px;">
<p>
Type:<br>
<input type="checkbox" id="Var" onchange="OnInputChange()" name="ConsoleVariables" value="ConsoleVariables" checked />Console Variables<br>
<input type="checkbox" id="Cmd" onchange="OnInputChange()" name="ConsoleCommands" value="ConsoleCommands" checked />Console Commands<br>
<input type="checkbox" id="Exec" onchange="OnInputChange()" name="Exec" value="Exec" checked />Exec Commands
</p>
<p>
<input type="checkbox" id="SearchInHelpId" onchange="OnInputChange()" name="SearchInHelpName" value="SearchInHelpValue" />Search in help as well
</p>
</div>
</div>
<div style="margin:40px" >
<table id="tabledemo" width="100%">
</table>
</div>
<p id="demo"></p>
<br>
<br>
<b>Generated by:</b> %s<br>
<b>Version:</b> %s<br>
<b>Last Update:</b> %s<br>
</div>
<style type="text/css">
//body { background-color:#000000; color:#E0E0E0 }
* {
font-family: Times New Roman, Times, serif;
// font-weight: bold;
}
h1 { color:#555555; font-size:32px; border-bottom:solid thin black; }
table {
border:0px solid #ffffff; color:#000000; padding:16px; border-spacing:0px;
border-collapse:collapse;
}
td,th {
border:0px solid #bbbbbb;
vertical-align:top;
overflow:hidden;
padding:6px;
}
th {
background-color:#E0E0E0;
color: #000000;
text-align: left;
border: 1px solid #c0c0c0;
}
a.prefix {
border: 0px solid;
padding: 3px;
padding-left: 5px;
padding-right: 5px;
font-weight: bold;
text-decoration:none;
margin:4px;
white-space: nowrap;
}
a.prefix:link {
border:1px solid #7777FF;
background-color:#ddddff;
color: #7777FF;
}
a.prefix:hover {
background-color:#7777FF;
color: #ddddff;
}
td {
font-family:"Lucida Console", Monaco, monospace;
padding:7px;
border:1px solid #cccccc;
}
</style>
<script>
// document.write('>' + "TYets".slice(-1).localeCompare("*") == 0 + '<');
// document.write('>' + "TYets*".slice(-1).localeCompare("*") == 0 + '<');
// document.write('>' + ("TYets".slice(-1).localeCompare("*") == 0) + '<');
// document.write('>' + ("TYets*".slice(-1).localeCompare("*") == 0) + '<');
function EscapeReg(str)
{
return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
// .replace(/[^\w\s]/g, "\\$&")
}
var ReBuildIncremental_prefixstr;
var ReBuildIncremental_index;
var ReBuildIncremental_bSearchInHelp;
var ReBuildIncremental_bSearchInVar;
var ReBuildIncremental_bSearchInCmd;
var ReBuildIncremental_bSearchInExec;
// @param prefixstr needs to be no regular expression
function IsValid(prefixstr, cvar, bDoFilter)
{
var name = cvar.name;
var help = cvar.help;
var type = cvar.type;
var bDo = true;
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
var re;
if(prefixstr != "\\*")
{
// "Test*" means we search for a string starting with "Test"
// "Test" means we search for a string that has "Test" somewhere
var bStartsWith = prefixstr.slice(-2) == "\\*";
if(bStartsWith)
{
var PrefixWithoutStar = prefixstr.slice(0, prefixstr.length - 2);
re = new RegExp("^" + PrefixWithoutStar, "gi");
}
else
{
re = new RegExp(prefixstr, "gi");
}
bDo = re.test(name);
if(bDoFilter)
{
if(!bDo)
{
if(ReBuildIncremental_bSearchInHelp)
{
bDo = re.test(help);
}
}
}
}
if(bDoFilter)
{
if(bDo)
{
if(type == "Var")
{
if(!ReBuildIncremental_bSearchInVar) bDo = false;
}
else if(type == "Cmd")
{
if(!ReBuildIncremental_bSearchInCmd) bDo = false;
}
else if(type == "Exec")
{
if(!ReBuildIncremental_bSearchInExec) bDo = false;
}
}
}
return bDo;
}
function Rebuild(prefixstr)
{
prefixstr = EscapeReg(prefixstr);
ReBuildIncremental_prefixstr = prefixstr;
ReBuildIncremental_index = 0;
ReBuildIncremental_bSearchInHelp = document.getElementById("SearchInHelpId").checked;
ReBuildIncremental_bSearchInVar = document.getElementById("Var").checked;
ReBuildIncremental_bSearchInCmd = document.getElementById("Cmd").checked;
ReBuildIncremental_bSearchInExec = document.getElementById("Exec").checked;
var aa = document.getElementById("prefixdemo");
aa.innerHTML = "";
for(index = 0; index < cvars_prefix.length; index++)
{
aa.innerHTML += '<a href="a" id="' + cvars_prefix[index].prefix +'" onclick="return OnLinkClick(this.id);" class=\"prefix"\>'
+ cvars_prefix[index].name + "&nbsp;(" + cvars_prefix[index].count + ")" + "</a> ";
}
// -----------------
aa = document.getElementById("tabledemo");
aa.innerHTML = "<tr><th><b>Name</b></th><th><b>Help</b></th></tr>";
}
function RebuildIncremental(UpdateCount)
{
aa = document.getElementById("tabledemo");
for(Update = 0; Update < UpdateCount; Update++)
{
if(ReBuildIncremental_index >= cvars.length)
break;
if(IsValid(ReBuildIncremental_prefixstr, cvars[ReBuildIncremental_index], true))
{
var help = cvars[ReBuildIncremental_index].help;
help = help.replace(/\n/g, "<br>");
aa.innerHTML += "<tr><td style='color: #ff8844;' >" + cvars[ReBuildIncremental_index].name + "</td><td>" + help + "</td></tr>";
}
++ReBuildIncremental_index;
}
}
function OnTick()
{
// larger number means faster search but more hitching
RebuildIncremental(25);
}
function BuildCounts()
{
aa = document.getElementById("demo");
for(i = 0; i < cvars_prefix.length; i++)
{
var prefixstr = cvars_prefix[i].prefix + "*";
var count = 0;
prefixstr = EscapeReg(prefixstr);
for(e = 0; e < cvars.length; e++)
{
if(IsValid(prefixstr, cvars[e], false))
{
++count;
}
}
cvars_prefix[i].count = count;
}
}
function OnInputChange()
{
var value = document.forms[0]["input1"].value;
Rebuild(value);
}
function OnLinkClick(value)
{
value += "*";
document.forms[0]["input1"].value = value;
document.getElementById("SearchInHelpId").checked = false;
Rebuild(value);
return false;
}
function changeText(id) {
id.innerHTML = "Ooops!";
}
var cvars_prefix = [
{prefix: "", name:"All", count:0 },
{prefix: "r.", name:"Renderer", count:0},
{prefix: "s.", name:"Sound", count:0},
{prefix: "t.", name:"Timer", count:0},
{prefix: "rhi.", name:"RHI", count:0},
{prefix: "net.", name:"Network", count:0},
{prefix: "opengl.", name:"OpenGL", count:0},
{prefix: "g.", name:"Game", count:0},
{prefix: "sg.", name:"ScalabilityGroups", count:0},
{prefix: "slate.", name:"Slate", count:0},
{prefix: "p.", name:"Physics", count:0},
{prefix: "showflag.", name:"Showflags", count:0},
{prefix: "FX.", name:"Particle FX system", count:0},
// {prefix: ".", name:"Remaining", count:0},
];
var cvars = [
// all cvars and command in this form:
// {name: "a.ParallelAnimEvaluation", help:"If 1, animation evaluation will be run across the task graph system. If 0, evaluation will run purely on the game thread"},
%s
];
// -------------------------------------------
// call OnTick every x ms
setInterval(function () {OnTick()}, 20);
//setInterval(function(){alert('Hello')},3000);
BuildCounts();
// by default we show rendering variables
document.forms[0]["input1"].value = "r.*";
// initiate search
OnInputChange();
</script>
</body>
</html>