This ResourceManager manages high-level vertex and fragment programs.
High-level vertex and fragment programs can be used instead of assembler programs as managed by GpuProgramManager; however they typically result in a GpuProgram being created as a derivative of the high-level program. High-level programs are easier to write, and can often be API-independent, unlike assembler programs.

This class not only manages the programs themselves, it also manages the factory classes which allow the creation of high-level programs using a variety of high-level syntaxes. Plugins can be created which register themselves as high-level program factories and as such the engine can be extended to accept virtually any kind of program provided a plugin is written.

Inheritance: Axiom.Core.ResourceManager
コード例 #1
0
        /// <summary>
        ///     Called when the engine is shutting down.
        /// </summary>
        /// <summary>
        ///     Called when the engine is shutting down.
        /// </summary>
        protected override void dispose(bool disposeManagedResources)
        {
            if (!IsDisposed)
            {
                if (disposeManagedResources)
                {
                    foreach (var currentFactory in factories)
                    {
                        currentFactory.SafeDispose();
                    }

                    factories.Clear();

                    ResourceGroupManager.Instance.UnregisterResourceManager(ResourceType);
                    _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);
        }
コード例 #2
0
 /// <summary>
 ///     Internal constructor.  This class cannot be instantiated externally.
 /// </summary>
 internal HighLevelGpuProgramManager()
 {
     if (instance == null)
     {
         instance = this;
     }
 }
コード例 #3
0
        /// <summary>
        ///     Internal constructor.  This class cannot be instantiated externally.
        /// </summary>
        internal HighLevelGpuProgramManager()
            : base()
        {
            if (_instance == null)
            {
                _instance    = this;
                LoadingOrder = 50.0f;
                ResourceType = "HighLevelGpuProgram";

                ResourceGroupManager.Instance.RegisterResourceManager(ResourceType, this);
                AddFactory(new NullProgramFactory());
                AddFactory(new UnifiedHighLevelGpuProgramFactory());
            }
        }
コード例 #4
0
		/// <summary>
		///     Internal constructor.  This class cannot be instantiated externally.
		/// </summary>
		internal HighLevelGpuProgramManager()
			: base()
		{
			if ( _instance == null )
			{
				_instance = this;
				LoadingOrder = 50.0f;
				ResourceType = "HighLevelGpuProgram";

				ResourceGroupManager.Instance.RegisterResourceManager( ResourceType, this );
				AddFactory( new NullProgramFactory() );
				AddFactory( new UnifiedHighLevelGpuProgramFactory() );
			}
		}
コード例 #5
0
        /// <summary>
        ///     Called when the engine is shutting down.
        /// </summary>
        public override void Dispose()
        {
            base.Dispose();

            instance = null;
        }
コード例 #6
0
 /// <summary>
 ///     Internal constructor.  This class cannot be instantiated externally.
 /// </summary>
 internal HighLevelGpuProgramManager()
 {
     if (instance == null) {
         instance = this;
     }
 }
コード例 #7
0
        /// <summary>
        ///     Called when the engine is shutting down.
        /// </summary>
        public override void Dispose()
        {
            base.Dispose();

            instance = null;
        }
コード例 #8
0
		/// <summary>
		///     Called when the engine is shutting down.
		/// </summary>
		/// <summary>
		///     Called when the engine is shutting down.
		/// </summary>
		protected override void dispose( bool disposeManagedResources )
		{
			if ( !IsDisposed )
			{
				if ( disposeManagedResources )
				{
                    foreach ( var currentFactory in factories )
                        currentFactory.SafeDispose();

                    factories.Clear();

					ResourceGroupManager.Instance.UnregisterResourceManager( ResourceType );
					_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 );
		}
コード例 #9
0
		/// <summary>
		///     Called when the engine is shutting down.
		/// </summary>
		/// <summary>
		///     Called when the engine is shutting down.
		/// </summary>
		protected override void dispose( bool disposeManagedResources )
		{
			if ( !this.IsDisposed )
			{
				if ( disposeManagedResources )
				{
					ResourceGroupManager.Instance.UnregisterResourceManager( ResourceType );
					_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 );
		}