namespace UnityEngine.AdaptivePerformance
{
///
/// Constants used by Adaptive Performance.
///
public static class Constants
{
///
/// The minimum temperature level.
/// See .
///
/// 0.0
public const float MinTemperatureLevel = 0.0f;
///
/// The maximum temperature level.
/// See .
///
/// 1.0
public const float MaxTemperatureLevel = 1.0f;
///
/// The minimum CPU level.
/// Used by and .
///
/// 0
public const int MinCpuPerformanceLevel = 0;
///
/// The minimum GPU level.
/// Used by and .
///
/// 0
public const int MinGpuPerformanceLevel = 0;
///
/// UnknownPerformanceLevel is the value of , ,
/// , and if the current performance level is unknown.
/// This can happen when AdaptivePerformance is not supported or when the device is in throttling state (see ).
///
/// -1
public const int UnknownPerformanceLevel = -1;
///
/// The number of past frames that are considered to calculate average frame times.
///
/// 100
public const int DefaultAverageFrameCount = 100;
}
///
/// The main interface to access Adaptive Performance.
/// None of the properties in this interface change after startup.
/// This means the references returned by the properties may be cached by the user.
///
public interface IAdaptivePerformance
{
///
/// Returns true if Adaptive Performance was initialized successfully, false otherwise.
/// This means that Adaptive Performance is enabled in StartupSettings and the application runs on a device that supports Adaptive Performance.
///
/// True when Adaptive Performance is available, false otherwise.
bool Active { get; }
///
/// Access thermal status information of the device.
///
/// Interface to access thermal status information of the device.
IThermalStatus ThermalStatus { get; }
///
/// Access performance status information of the device and your application.
///
/// Interface to access performance status information of the device and your application.
IPerformanceStatus PerformanceStatus { get; }
///
/// Control CPU and GPU performance of the device.
///
/// Interface to control CPU and GPU performance levels of the device.
IDevicePerformanceControl DevicePerformanceControl { get; }
///
/// Access to development (logging) settings.
///
/// Interface to control CPU and GPU performance levels of the device.
IDevelopmentSettings DevelopmentSettings { get; }
///
/// Access to the Indexer system. See
///
/// Interface to scalers that are active and their associated settings.
AdaptivePerformanceIndexer Indexer { get; }
///
/// Access to the Settings. See .
///
/// Interface to settings that are loaded from the provider settings object during startup.
IAdaptivePerformanceSettings Settings { get; }
///
/// List of supported Features by the loaded provider. See .
///
/// The feature in question. See .
/// True if the requested feature is supported, false otherwise.
bool SupportedFeature(Provider.Feature feature);
}
///
/// Global access to the default AdaptivePerformance interface.
///
public static class Holder
{
///
/// Global access to the default AdaptivePerformance interface to access the main manager object.
///
static public IAdaptivePerformance Instance { get; internal set; }
}
}