Example #1
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>
 ///    Add a new factory object for high-level programs of a given language.
 /// </summary>
 /// <param name="factory">
 ///    The factory instance to register.
 /// </param>
 public void AddFactory(IHighLevelGpuProgramFactory factory)
 {
     factories.Add(factory.Language, factory);
 }
Example #3
0
 /// <summary>
 ///    Add a new factory object for high-level programs of a given language.
 /// </summary>
 /// <param name="factory">
 ///    The factory instance to register.
 /// </param>
 public void AddFactory(IHighLevelGpuProgramFactory factory)
 {
     factories.Add(factory.Language, factory);
 }