Exemple #1
0
 /// Choose the delegate to use
 protected virtual void chooseDelegate()
 {
     this._chosenDelegate = null;
     foreach (var delegateName in this._delegateNames)
     {
         var program = HighLevelGpuProgramManager.Instance[delegateName];
         if (program != null && program.IsSupported)
         {
             this._chosenDelegate = program;
             break;
         }
     }
 }
Exemple #2
0
        /// <summary>
        ///    Creates a new, unloaded HighLevelGpuProgram instance.
        /// </summary>
        /// <remarks>
        ///    This method creates a new program of the type specified as the second and third parameters.
        ///    You will have to call further methods on the returned program in order to
        ///    define the program fully before you can load it.
        /// </remarks>
        /// <param name="name">Name of the program to create.</param>
        /// <param name="language">HLSL language to use.</param>
        /// <param name="type">Type of program, i.e. vertex or fragment.</param>
        /// <returns>An unloaded instance of HighLevelGpuProgram.</returns>
        public HighLevelGpuProgram CreateProgram(string name, string language, GpuProgramType type)
        {
            // lookup the factory for the requested program language
            IHighLevelGpuProgramFactory factory = GetFactory(language);

            if (factory == null)
            {
                throw new Exception(string.Format("Could not find HighLevelGpuProgramManager that can compile programs of type '{0}'", language));
            }

            // create the high level program using the factory
            HighLevelGpuProgram program = factory.Create(name, type);

            Add(program);
            return(program);
        }
		/// <summary>
		/// Remove all delegate programs
		/// </summary>
		public void ClearDelegatePrograms()
		{
			_delegateNames.Clear();
			// Invalidate current selection
			_chosenDelegate = null;
		}
		/// <summary>
		/// Adds a new delegate program to the list.
		/// </summary>
		/// <remarks>
		/// Delegates are tested in order so earlier ones are preferred.
		/// </remarks>
		/// <param name="delegateName"></param>
		public void AddDelegateProgram( string delegateName )
		{
			_delegateNames.Add( delegateName );
			// Invalidate current selection
			_chosenDelegate = null;
		}
		/// Choose the delegate to use
		protected virtual void chooseDelegate()
		{
			_chosenDelegate = null;
			foreach ( string delegateName in _delegateNames )
			{
				HighLevelGpuProgram program = HighLevelGpuProgramManager.Instance[ delegateName ];
				if ( program != null && program.IsSupported )
				{
					_chosenDelegate = program;
					break;
				}
			}
		}
				/// <summary>
				/// /
				/// </summary>
				/// <param name="prof"></param>
				/// <param name="terrain"></param>
				/// <param name="tt"></param>
				/// <param name="prog"></param>
				public virtual void DefaultFpParams( SM2Profile prof, Terrain terrain, TechniqueType tt, HighLevelGpuProgram prog )
				{
					GpuProgramParameters gparams = prog.DefaultParameters;
					gparams.IgnoreMissingParameters = true;
#if true
					gparams.SetNamedAutoConstant( "ambient", GpuProgramParameters.AutoConstantType.AmbientLightColor, 0 );
					gparams.SetNamedAutoConstant( "lightPosObjSpace", GpuProgramParameters.AutoConstantType.LightPositionObjectSpace, 0 );
					gparams.SetNamedAutoConstant( "lightDiffuseColor", GpuProgramParameters.AutoConstantType.LightDiffuseColor, 0 );
					gparams.SetNamedAutoConstant( "lightSpecularColor", GpuProgramParameters.AutoConstantType.LightSpecularColor, 0 );
					gparams.SetNamedAutoConstant( "eyePosObjSpace", GpuProgramParameters.AutoConstantType.CameraPositionObjectSpace, 0 );
#warning missing auto constant type "FogColor"
					//gparams.SetNamedAutoConstant("fogColor", GpuProgramParameters.AutoConstantType.FogParams, 0);
#endif
				}
				/// <summary>
				/// /
				/// </summary>
				/// <param name="prof"></param>
				/// <param name="terrain"></param>
				/// <param name="tt"></param>
				/// <param name="prog"></param>
				public virtual void DefaultVpParams( SM2Profile prof, Terrain terrain, TechniqueType tt, HighLevelGpuProgram prog )
				{
					GpuProgramParameters gparams = prog.DefaultParameters;
					gparams.IgnoreMissingParameters = true;
					gparams.SetNamedAutoConstant( "worldMatrix", GpuProgramParameters.AutoConstantType.WorldMatrix, 0 );
					gparams.SetNamedAutoConstant( "viewProjMatrix", GpuProgramParameters.AutoConstantType.ViewProjMatrix, 0 );
					gparams.SetNamedAutoConstant( "lodMorph", GpuProgramParameters.AutoConstantType.Custom,
					                              Terrain.LOD_MORPH_CUSTOM_PARAM );
					gparams.SetNamedAutoConstant( "fogParams", GpuProgramParameters.AutoConstantType.FogParams, 0 );
				}
Exemple #8
0
 /// <summary>
 /// Remove all delegate programs
 /// </summary>
 public void ClearDelegatePrograms()
 {
     this._delegateNames.Clear();
     // Invalidate current selection
     this._chosenDelegate = null;
 }
Exemple #9
0
 /// <summary>
 /// Adds a new delegate program to the list.
 /// </summary>
 /// <remarks>
 /// Delegates are tested in order so earlier ones are preferred.
 /// </remarks>
 /// <param name="delegateName"></param>
 public void AddDelegateProgram(string delegateName)
 {
     this._delegateNames.Add(delegateName);
     // Invalidate current selection
     this._chosenDelegate = null;
 }
		public override void DestroyInstance( ref HighLevelGpuProgram obj )
		{
			base.DestroyInstance( ref obj );
		}