43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C#
		
	
	
	
|  |  | |||
|  | namespace SRDebugger.Services | |||
|  | { | |||
|  |     using System; | |||
|  |     using Profiler; | |||
|  |     using SRF.Service; | |||
|  | #if UNITY_2018_1_OR_NEWER | |||
|  |     using UnityEngine.Rendering; | |||
|  |     using UnityEngine.Experimental.Rendering; | |||
|  | #endif | |||
|  | 
 | |||
|  |     public static class ProfilerServiceSelector | |||
|  |     { | |||
|  |         [ServiceSelector(typeof(IProfilerService))] | |||
|  |         public static Type GetProfilerServiceType() | |||
|  |         { | |||
|  | #if UNITY_2018_1_OR_NEWER | |||
|  |             if(GraphicsSettings.renderPipelineAsset != null) | |||
|  |             { | |||
|  |                 return typeof(SRPProfilerService); | |||
|  |             } | |||
|  | #endif | |||
|  | 
 | |||
|  |             return typeof(ProfilerServiceImpl); | |||
|  |         } | |||
|  |     } | |||
|  | 
 | |||
|  |     public struct ProfilerFrame | |||
|  |     { | |||
|  |         public double FrameTime; | |||
|  |         public double OtherTime; | |||
|  |         public double RenderTime; | |||
|  |         public double UpdateTime; | |||
|  |     } | |||
|  | 
 | |||
|  |     public interface IProfilerService | |||
|  |     { | |||
|  |         float AverageFrameTime { get; } | |||
|  |         float LastFrameTime { get; } | |||
|  |         CircularBuffer<ProfilerFrame> FrameBuffer { get; } | |||
|  |     } | |||
|  | } |