// SPDX-FileCopyrightText: 2023 Unity Technologies and the glTFast authors // SPDX-License-Identifier: Apache-2.0 using UnityEngine; #if USING_URP || USING_HDRP using UnityEngine.Rendering; #endif #if USING_URP using UnityEngine.Rendering.Universal; #endif #if USING_HDRP using UnityEngine.Rendering.HighDefinition; #endif namespace GLTFast { /// /// Render Pipeline /// public enum RenderPipeline { /// /// Unknown Render Pipeline /// Unknown, /// /// Built-in Render Pipeline /// Unity's built-in render pipeline /// BuiltIn, /// /// Universal Render Pipeline /// Universal, /// /// High Definition Render Pipeline /// HighDefinition } /// /// Render Pipeline Utilities /// public static class RenderPipelineUtils { static RenderPipeline s_RenderPipeline = RenderPipeline.Unknown; /// /// Currently used render pipeline /// public static RenderPipeline RenderPipeline { get { if (s_RenderPipeline == RenderPipeline.Unknown) { s_RenderPipeline = DetectRenderPipeline(); } return s_RenderPipeline; } } static RenderPipeline DetectRenderPipeline() { #if USING_URP || USING_HDRP // ReSharper disable once Unity.PerformanceCriticalCodeNullComparison var rpAsset = QualitySettings.renderPipeline ? QualitySettings.renderPipeline : GraphicsSettings.defaultRenderPipeline; if (rpAsset != null) { #if USING_URP if (rpAsset is UniversalRenderPipelineAsset) { return RenderPipeline.Universal; } #endif #if USING_HDRP if (rpAsset is HDRenderPipelineAsset) { return RenderPipeline.HighDefinition; } #endif throw new System.Exception("glTFast: Unknown Render Pipeline"); } #endif return RenderPipeline.BuiltIn; } } }