/// 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; } } }
/// <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 ); }
/// <summary> /// Remove all delegate programs /// </summary> public void ClearDelegatePrograms() { this._delegateNames.Clear(); // Invalidate current selection this._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) { this._delegateNames.Add(delegateName); // Invalidate current selection this._chosenDelegate = null; }
public override void DestroyInstance( ref HighLevelGpuProgram obj ) { base.DestroyInstance( ref obj ); }