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; }
 | |
|     }
 | |
| }
 |