UNPKG

cesium

Version:

Cesium is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.

59 lines (53 loc) 2.23 kB
/*global define*/ define([ '../../Core/defaultValue', '../../Core/defined', '../../Core/defineProperties', '../../Core/DeveloperError', '../PerformanceWatchdog/PerformanceWatchdog' ], function( defaultValue, defined, defineProperties, DeveloperError, PerformanceWatchdog) { 'use strict'; /** * A mixin which adds the {@link PerformanceWatchdog} widget to the {@link Viewer} widget. * Rather than being called directly, this function is normally passed as * a parameter to {@link Viewer#extend}, as shown in the example below. * @exports viewerPerformanceWatchdogMixin * * @param {Viewer} viewer The viewer instance. * @param {String} [options.lowFrameRateMessage='This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers.'] The * message to display when a low frame rate is detected. The message is interpeted as HTML, so make sure * it comes from a trusted source so that your application is not vulnerable to cross-site scripting attacks. * * @exception {DeveloperError} viewer is required. * * @example * var viewer = new Cesium.Viewer('cesiumContainer'); * viewer.extend(Cesium.viewerPerformanceWatchdogMixin, { * lowFrameRateMessage : 'Why is this going so <em>slowly</em>?' * }); */ function viewerPerformanceWatchdogMixin(viewer, options) { if (!defined(viewer)) { throw new DeveloperError('viewer is required.'); } options = defaultValue(options, defaultValue.EMPTY_OBJECT); var performanceWatchdog = new PerformanceWatchdog({ scene : viewer.scene, container : viewer.bottomContainer, lowFrameRateMessage : options.lowFrameRateMessage }); defineProperties(viewer, { performanceWatchdog : { get : function() { return performanceWatchdog; } } }); } return viewerPerformanceWatchdogMixin; });