/// <summary> /// Internal constructor. This class cannot be instantiated externally. /// </summary> /// <remarks> /// Protected internal because this singleton will actually hold the instance of a subclass /// created by a render system plugin. /// </remarks> protected internal GpuProgramManager() : base() { if ( _instance == null ) { _instance = this; // Loading order LoadingOrder = 50.0f; // Resource type ResourceType = "GpuProgram"; } else throw new AxiomException( "Cannot create another instance of {0}. Use Instance property instead", this.GetType().Name ); // subclasses should register with resource group manager }
/// <summary> /// Internal constructor. This class cannot be instantiated externally. /// </summary> /// <remarks> /// Protected internal because this singleton will actually hold the instance of a subclass /// created by a render system plugin. /// </remarks> protected internal GpuProgramManager() { if (instance == null) { instance = this; } }
/// <summary> /// Called when the engine is shutting down. /// </summary> public override void Dispose() { base.Dispose(); instance = null; }
/// <summary> /// Called when the engine is shutting down. /// </summary> protected override void dispose( bool disposeManagedResources ) { if ( !this.IsDisposed ) { if ( disposeManagedResources ) { _instance = null; } // There are no unmanaged resources to release, but // if we add them, they need to be released here. } // If it is available, make the call to the // base class's Dispose(Boolean) method base.dispose( disposeManagedResources ); }