GetVertexShader() public method

Gets VertexShader
public GetVertexShader ( string key = "" ) : ShaderBytecode
key string
return ShaderBytecode
Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="?"></param>
        void Enumerate(Type enumType, Ubershader ubershader, Action <PipelineState, int> enumAction)
        {
            pipelineStates = new Dictionary <int, PipelineState>();

            combinerEnum = enumType;

            //
            //	validate enum :
            //
            if (Enum.GetUnderlyingType(enumType) != typeof(int))
            {
                throw new ArgumentException("Underlying type should be Int32");
            }

            Dictionary <string, int> enumDict = new Dictionary <string, int>();

            foreach (var enumValue in Enum.GetValues(enumType))
            {
                if (!MathUtil.IsPowerOfTwo((int)enumValue) && (int)enumValue != 0)
                {
                    throw new ArgumentException("Each value must be zero or power of two");
                }
                enumDict.Add(enumValue.ToString(), (int)enumValue);
            }



            //
            //	Enumerate :
            //
            var defineList = ubershader.Defines;

            foreach (var defines in defineList)
            {
                int combination = 0;

                if (GetCombinerSet(enumDict, defines, out combination))
                {
                    var ps = new PipelineState(device);

                    ps.PixelShader    = ubershader.GetPixelShader(defines);
                    ps.VertexShader   = ubershader.GetVertexShader(defines);
                    ps.GeometryShader = ubershader.GetGeometryShader(defines);
                    ps.HullShader     = ubershader.GetHullShader(defines);
                    ps.DomainShader   = ubershader.GetDomainShader(defines);
                    ps.ComputeShader  = ubershader.GetComputeShader(defines);

                    enumAction(ps, combination);

                    pipelineStates.Add(combination, ps);
                }
            }
        }
Ejemplo n.º 2
0
		/// <summary>
		/// 
		/// </summary>
		/// <param name="?"></param>
		void Enumerate ( Type enumType, Ubershader ubershader, Action<PipelineState,int> enumAction )
		{
			pipelineStates	=	new Dictionary<int,PipelineState>();

			combinerEnum	=	enumType;

			//
			//	validate enum :
			//
			if (Enum.GetUnderlyingType(enumType)!=typeof(int)) {
				throw new ArgumentException("Underlying type should be Int32");
			}

			Dictionary<string,int> enumDict = new Dictionary<string,int>();

			foreach ( var enumValue in Enum.GetValues( enumType ) ) {
				if ( !MathUtil.IsPowerOfTwo( (int)enumValue ) && (int)enumValue!=0 ) {
					throw new ArgumentException("Each value must be zero or power of two");
				}
				enumDict.Add( enumValue.ToString(), (int)enumValue );
			}



			//
			//	Enumerate :
			//
			var defineList = ubershader.Defines;

			foreach ( var defines in defineList ) {
				
				int combination = 0;

				if ( GetCombinerSet( enumDict, defines, out combination ) ) {
					
					var ps = new PipelineState( device );

					ps.PixelShader		=	ubershader.GetPixelShader		( defines );
					ps.VertexShader		=	ubershader.GetVertexShader		( defines );
					ps.GeometryShader	=	ubershader.GetGeometryShader	( defines );
					ps.HullShader		=	ubershader.GetHullShader		( defines );
					ps.DomainShader		=	ubershader.GetDomainShader		( defines );
					ps.ComputeShader	=	ubershader.GetComputeShader		( defines );
					
					enumAction( ps, combination );

					pipelineStates.Add( combination, ps );
				}	
			}
		}