qd-changjing/public/static/Build/Documentation/FrameRateMonitor.html

1605 lines
69 KiB
HTML
Raw Normal View History

2022-07-05 16:56:29 +08:00
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>FrameRateMonitor - Cesium Documentation</title>
<!--[if lt IE 9]>
<script src="javascript/html5.js"></script>
<![endif]-->
<link href="styles/jsdoc-default.css" rel="stylesheet">
<link href="styles/prism.css" rel="stylesheet">
</head>
<body>
<div id="main">
<h1 class="page-title">
<a href="index.html"><img src="Images/CesiumLogo.png" class="cesiumLogo"></a>
FrameRateMonitor
<div class="titleCenterer"></div>
</h1>
<section>
<header>
</header>
<article>
<div class="container-overview">
<div class="nameContainer">
<h4 class="name" id="FrameRateMonitor">
<a href="#FrameRateMonitor" class="doc-link"></a>
new Cesium.FrameRateMonitor<span class="signature">(<span class="optional">options</span>)</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L32">Scene/FrameRateMonitor.js 32</a>
</div>
</h4>
</div>
<div class="description">
Monitors the frame rate (frames per second) in a <a href="Scene.html"><code>Scene</code></a> and raises an event if the frame rate is
lower than a threshold. Later, if the frame rate returns to the required level, a separate event is raised.
To avoid creating multiple FrameRateMonitors for a single <a href="Scene.html"><code>Scene</code></a>, use <a href="FrameRateMonitor.html#.fromScene"><code>FrameRateMonitor.fromScene</code></a>
instead of constructing an instance explicitly.
</div>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last">
<span class="optional">optional</span>
Object with the following properties:
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>scene</code></td>
<td class="type">
<span class="param-type"><a href="Scene.html">Scene</a></span>
</td>
<td class="default">
</td>
<td class="description last">
The Scene instance for which to monitor performance.</td>
</tr>
<tr>
<td class="name"><code>samplingWindow</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
<code class="language-javascript">5.0</code>
</td>
<td class="description last">
<span class="optional">optional</span>
The length of the sliding window over which to compute the average frame rate, in seconds.</td>
</tr>
<tr>
<td class="name"><code>quietPeriod</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
<code class="language-javascript">2.0</code>
</td>
<td class="description last">
<span class="optional">optional</span>
The length of time to wait at startup and each time the page becomes visible (i.e. when the user
switches back to the tab) before starting to measure performance, in seconds.</td>
</tr>
<tr>
<td class="name"><code>warmupPeriod</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
<code class="language-javascript">5.0</code>
</td>
<td class="description last">
<span class="optional">optional</span>
The length of the warmup period, in seconds. During the warmup period, a separate
(usually lower) frame rate is required.</td>
</tr>
<tr>
<td class="name"><code>minimumFrameRateDuringWarmup</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
<code class="language-javascript">4</code>
</td>
<td class="description last">
<span class="optional">optional</span>
The minimum frames-per-second that are required for acceptable performance during
the warmup period. If the frame rate averages less than this during any samplingWindow during the warmupPeriod, the
lowFrameRate event will be raised and the page will redirect to the redirectOnLowFrameRateUrl, if any.</td>
</tr>
<tr>
<td class="name"><code>minimumFrameRateAfterWarmup</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
<code class="language-javascript">8</code>
</td>
<td class="description last">
<span class="optional">optional</span>
The minimum frames-per-second that are required for acceptable performance after
the end of the warmup period. If the frame rate averages less than this during any samplingWindow after the warmupPeriod, the
lowFrameRate event will be raised and the page will redirect to the redirectOnLowFrameRateUrl, if any.</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<dl class="details">
</dl>
</div>
<h3 class="subsection-title">Members</h3>
<div class="nameContainer">
<h4 class="name" id=".defaultSettings">
<a href="#.defaultSettings" class="doc-link"></a>
<span class="type-signature attribute-static">static</span> Cesium.FrameRateMonitor.defaultSettings<span class="type-signature"> : Object</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L162">Scene/FrameRateMonitor.js 162</a>
</div>
</h4>
</div>
<div class="description">
The default frame rate monitoring settings. These settings are used when <a href="FrameRateMonitor.html#.fromScene"><code>FrameRateMonitor.fromScene</code></a>
needs to create a new frame rate monitor, and for any settings that are not passed to the
<a href="FrameRateMonitor.html"><code>FrameRateMonitor</code></a> constructor.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="lastFramesPerSecond">
<a href="#lastFramesPerSecond" class="doc-link"></a>
lastFramesPerSecond<span class="type-signature"> : Number</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L240">Scene/FrameRateMonitor.js 240</a>
</div>
</h4>
</div>
<div class="description">
Gets the most recently computed average frames-per-second over the last <code>samplingWindow</code>.
This property may be undefined if the frame rate has not been computed.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="lowFrameRate">
<a href="#lowFrameRate" class="doc-link"></a>
lowFrameRate<span class="type-signature"> : <a href="Event.html">Event</a></span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L215">Scene/FrameRateMonitor.js 215</a>
</div>
</h4>
</div>
<div class="description">
Gets the event that is raised when a low frame rate is detected. The function will be passed
the <a href="Scene.html"><code>Scene</code></a> instance as its first parameter and the average number of frames per second
over the sampling window as its second parameter.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="minimumFrameRateAfterWarmup">
<a href="#minimumFrameRateAfterWarmup" class="doc-link"></a>
minimumFrameRateAfterWarmup<span class="type-signature"> : Number</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L87">Scene/FrameRateMonitor.js 87</a>
</div>
</h4>
</div>
<div class="description">
Gets or sets the minimum frames-per-second that are required for acceptable performance after
the end of the warmup period. If the frame rate averages less than this during any <code>samplingWindow</code> after the <code>warmupPeriod</code>, the
<code>lowFrameRate</code> event will be raised and the page will redirect to the <code>redirectOnLowFrameRateUrl</code>, if any.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="minimumFrameRateDuringWarmup">
<a href="#minimumFrameRateDuringWarmup" class="doc-link"></a>
minimumFrameRateDuringWarmup<span class="type-signature"> : Number</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L76">Scene/FrameRateMonitor.js 76</a>
</div>
</h4>
</div>
<div class="description">
Gets or sets the minimum frames-per-second that are required for acceptable performance during
the warmup period. If the frame rate averages less than this during any <code>samplingWindow</code> during the <code>warmupPeriod</code>, the
<code>lowFrameRate</code> event will be raised and the page will redirect to the <code>redirectOnLowFrameRateUrl</code>, if any.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="nominalFrameRate">
<a href="#nominalFrameRate" class="doc-link"></a>
nominalFrameRate<span class="type-signature"> : <a href="Event.html">Event</a></span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L228">Scene/FrameRateMonitor.js 228</a>
</div>
</h4>
</div>
<div class="description">
Gets the event that is raised when the frame rate returns to a normal level after having been low.
The function will be passed the <a href="Scene.html"><code>Scene</code></a> instance as its first parameter and the average
number of frames per second over the sampling window as its second parameter.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="quietPeriod">
<a href="#quietPeriod" class="doc-link"></a>
quietPeriod<span class="type-signature"> : Number</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L55">Scene/FrameRateMonitor.js 55</a>
</div>
</h4>
</div>
<div class="description">
Gets or sets the length of time to wait at startup and each time the page becomes visible (i.e. when the user
switches back to the tab) before starting to measure performance, in seconds.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="samplingWindow">
<a href="#samplingWindow" class="doc-link"></a>
samplingWindow<span class="type-signature"> : Number</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L45">Scene/FrameRateMonitor.js 45</a>
</div>
</h4>
</div>
<div class="description">
Gets or sets the length of the sliding window over which to compute the average frame rate, in seconds.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="scene">
<a href="#scene" class="doc-link"></a>
scene<span class="type-signature"> : <a href="Scene.html">Scene</a></span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L202">Scene/FrameRateMonitor.js 202</a>
</div>
</h4>
</div>
<div class="description">
Gets the <a href="Scene.html"><code>Scene</code></a> instance for which to monitor performance.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="warmupPeriod">
<a href="#warmupPeriod" class="doc-link"></a>
warmupPeriod<span class="type-signature"> : Number</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L65">Scene/FrameRateMonitor.js 65</a>
</div>
</h4>
</div>
<div class="description">
Gets or sets the length of the warmup period, in seconds. During the warmup period, a separate
(usually lower) frame rate is required.
</div>
<dl class="details">
</dl>
<h3 class="subsection-title">Methods</h3>
<div class="nameContainer">
<h4 class="name" id=".fromScene">
<a href="#.fromScene" class="doc-link"></a>
<span class="type-signature attribute-static">static</span> Cesium.FrameRateMonitor.fromScene<span class="signature">(scene)</span> &rarr; <span class="type-signature returnType"><a href="FrameRateMonitor.html">FrameRateMonitor</a></span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L177">Scene/FrameRateMonitor.js 177</a>
</div>
</h4>
</div>
<div class="description">
Gets the <a href="FrameRateMonitor.html"><code>FrameRateMonitor</code></a> for a given scene. If the scene does not yet have
a <a href="FrameRateMonitor.html"><code>FrameRateMonitor</code></a>, one is created with the <a href="FrameRateMonitor.html#.defaultSettings"><code>FrameRateMonitor.defaultSettings</code></a>.
</div>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>scene</code></td>
<td class="type">
<span class="param-type"><a href="Scene.html">Scene</a></span>
</td>
<td class="description last">
The scene for which to get the <a href="FrameRateMonitor.html"><code>FrameRateMonitor</code></a>.</td>
</tr>
</tbody>
</table>
<h5>Returns:</h5>
<div class="param-desc">
The scene's <a href="FrameRateMonitor.html"><code>FrameRateMonitor</code></a>.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="destroy">
<a href="#destroy" class="doc-link"></a>
destroy<span class="signature">()</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L302">Scene/FrameRateMonitor.js 302</a>
</div>
</h4>
</div>
<div class="description">
Unsubscribes this instance from all events it is listening to.
Once an object is destroyed, it should not be used; calling any function other than
<code>isDestroyed</code> will result in a <a href="DeveloperError.html"><code>DeveloperError</code></a> exception. Therefore,
assign the return value (<code>undefined</code>) to the object as done in the example.
</div>
<h5>Throws:</h5>
<ul>
<li>
<div class="param-desc">
<span class="param-type"><a href="DeveloperError.html">DeveloperError</a></span>
: This object was destroyed, i.e., destroy() was called.
</div>
</li>
</ul>
<dl class="details">
<h5>See:</h5>
<ul class="see-list">
<li><a href="FrameRateMonitor.html#isDestroyed">FrameRateMonitor#isDestroyed</a></li>
</ul>
</dl>
<div class="nameContainer">
<h4 class="name" id="isDestroyed">
<a href="#isDestroyed" class="doc-link"></a>
isDestroyed<span class="signature">()</span> &rarr; <span class="type-signature returnType">Boolean</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L286">Scene/FrameRateMonitor.js 286</a>
</div>
</h4>
</div>
<div class="description">
Returns true if this object was destroyed; otherwise, false.
<br /><br />
If this object was destroyed, it should not be used; calling any function other than
<code>isDestroyed</code> will result in a <a href="DeveloperError.html"><code>DeveloperError</code></a> exception.
</div>
<h5>Returns:</h5>
<div class="param-desc">
True if this object was destroyed; otherwise, false.
</div>
<dl class="details">
<h5>See:</h5>
<ul class="see-list">
<li><a href="FrameRateMonitor.html#destroy">FrameRateMonitor#destroy</a></li>
</ul>
</dl>
<div class="nameContainer">
<h4 class="name" id="pause">
<a href="#pause" class="doc-link"></a>
pause<span class="signature">()</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L252">Scene/FrameRateMonitor.js 252</a>
</div>
</h4>
</div>
<div class="description">
Pauses monitoring of the frame rate. To resume monitoring, <a href="FrameRateMonitor.html#unpause"><code>FrameRateMonitor#unpause</code></a>
must be called once for each time this function is called.
</div>
<dl class="details">
</dl>
<div class="nameContainer">
<h4 class="name" id="unpause">
<a href="#unpause" class="doc-link"></a>
unpause<span class="signature">()</span>
<div class="source-link rightLinks">
<a href="https://github.com/CesiumGS/cesium/blob/1.91/Source/Scene/FrameRateMonitor.js#L266">Scene/FrameRateMonitor.js 266</a>
</div>
</h4>
</div>
<div class="description">
Resumes monitoring of the frame rate. If <a href="FrameRateMonitor.html#pause"><code>FrameRateMonitor#pause</code></a> was called
multiple times, this function must be called the same number of times in order to
actually resume monitoring.
</div>
<dl class="details">
</dl>
</article>
</section>
<footer>
Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a>
</footer>
</div>
<div class="nav">
<div class="menu">
<input type="text" class="classFilter" id="ClassFilter" placeholder="Search">
<ul id="ClassList"><li data-name="Animation"><a href="Animation.html">Animation</a></li><li data-name="AnimationViewModel"><a href="AnimationViewModel.html">AnimationViewModel</a></li><li data-name="Appearance"><a href="Appearance.html">Appearance</a></li><li data-name="ArcGisMapServerImageryProvider"><a href="ArcGisMapServerImageryProvider.html">ArcGisMapServerImageryProvider</a></li><li data-name="ArcGISTiledElevationTerrainProvider"><a href="ArcGISTiledElevationTerrainProvider.html">ArcGISTiledElevationTerrainProvider</a></li><li data-name="ArcType"><a href="global.html#ArcType">ArcType</a></li><li data-name="AssociativeArray"><a href="AssociativeArray.html">AssociativeArray</a></li><li data-name="Axis"><a href="global.html#Axis">Axis</a></li><li data-name="AxisAlignedBoundingBox"><a href="AxisAlignedBoundingBox.html">AxisAlignedBoundingBox</a></li><li data-name="backFaceCulling"><a href="global.html#backFaceCulling">backFaceCulling</a></li><li data-name="barycentricCoordinates"><a href="global.html#barycentricCoordinates">barycentricCoordinates</a></li><li data-name="BaseLayerPicker"><a href="BaseLayerPicker.html">BaseLayerPicker</a></li><li data-name="BaseLayerPickerViewModel"><a href="BaseLayerPickerViewModel.html">BaseLayerPickerViewModel</a></li><li data-name="Billboard"><a href="Billboard.html">Billboard</a></li><li data-name="BillboardCollection"><a href="BillboardCollection.html">BillboardCollection</a></li><li data-name="BillboardGraphics"><a href="BillboardGraphics.html">BillboardGraphics</a></li><li data-name="BillboardVisualizer"><a href="BillboardVisualizer.html">BillboardVisualizer</a></li><li data-name="binarySearch"><a href="global.html#binarySearch">binarySearch</a></li><li data-name="binarySearchComparator"><a href="global.html#binarySearchComparator">binarySearchComparator</a></li><li data-name="BingMapsGeocoderService"><a href="BingMapsGeocoderService.html">BingMapsGeocoderService</a></li><li data-name="BingMapsImageryProvider"><a href="BingMapsImageryProvider.html">BingMapsImageryProvider</a></li><li data-name="BingMapsStyle"><a href="global.html#BingMapsStyle">BingMapsStyle</a></li><li data-name="BlendEquation"><a href="global.html#BlendEquation">BlendEquation</a></li><li data-name="BlendFunction"><a href="global.html#BlendFunction">BlendFunction</a></li><li data-name="BlendingState"><a href="BlendingState.html">BlendingState</a></li><li data-name="BlendOption"><a href="global.html#BlendOption">BlendOption</a></li><li data-name="BoundingRectangle"><a href="BoundingRectangle.html">BoundingRectangle</a></li><li data-name="BoundingSphere"><a href="BoundingSphere.html">BoundingSphere</a></li><li data-name="boundingSphere"><a href="global.html#boundingSphere">boundingSphere</a></li><li data-name="BoxEmitter"><a href="BoxEmitter.html">BoxEmitter</a></li><li data-name="BoxGeometry"><a href="BoxGeometry.html">BoxGeometry</a></li><li data-name="BoxGeometryUpdater"><a href="BoxGeometryUpdater.html">BoxGeometryUpdater</a></li><li data-name="BoxGraphics"><a href="BoxGraphics.html">BoxGraphics</a></li><li data-name="BoxOutlineGeometry"><a href="BoxOutlineGeometry.html">BoxOutlineGeometry</a></li><li data-name="buildModuleUrl"><a href="global.html#buildModuleUrl">buildModuleUrl</a></li><li data-name="CallbackProperty"><a href="CallbackProperty.html">CallbackProperty</a></li><li data-name="Camera"><a href="Camera.html">Camera</a></li><li data-name="CameraEventAggregator"><a href="CameraEventAggregator.html">CameraEventAggregator</a></li><li data-name="CameraEventType"><a href="global.html#CameraEventType">CameraEventType</a></li><li data-name="cancelAnimationFrame"><a href="global.html#cancelAnimationFrame">cancelAnimationFrame</a></li><li data-name="Cartesian2"><a href="Cartesian2.html">Cartesian2</a></li><li data-name="Cartesian3"><a href="Cartesian3.html">Cartesian3</a></li><li data-name="Cartesian4"><a href="Cartesian4.html">Cartesian4</a></li><li data-name="Cartographic"><a href="Cartographic.html">Cartographic</a></li><li data-name="CartographicGeocoderService"><a href="CartographicGeocoderServic
</div>
</div>
<script>
if (window.frameElement) {
document.body.className = 'embedded';
var ele = document.createElement('a');
ele.className = 'popout';
ele.target = '_blank';
ele.href = window.location.href;
ele.title = 'Pop out';
document.getElementById('main').appendChild(ele);
}
// Set targets on external links. Sandcastle and GitHub shouldn't be embedded in any iframe.
Array.prototype.forEach.call(document.getElementsByTagName('a'), function(a) {
if (/^https?:/i.test(a.getAttribute('href'))) {
a.target='_blank';
}
});
</script>
<script src="javascript/prism.js"></script>
<script src="javascript/cesiumDoc.js"></script>
</body>
</html>