Beispiel #1
0
        public static object GetValue(this EffectParameter parameter)
        {
            if (parameter.ParameterClass == EffectParameterClass.Object)
            {
                if (parameter.ParameterType == EffectParameterType.Texture2D)
                {
                    return(parameter.GetValueTexture2D());
                }
                if (parameter.ParameterType == EffectParameterType.Texture3D)
                {
                    return(parameter.GetValueTexture3D());
                }
                if (parameter.ParameterType == EffectParameterType.TextureCube)
                {
                    return(parameter.GetValueTextureCube());
                }
            }

            if (parameter.ParameterType == EffectParameterType.Int32)
            {
                return(parameter.GetValueInt32());
            }
            if (parameter.ParameterClass == EffectParameterClass.Matrix)
            {
                return(parameter.GetValueMatrix());
            }

            if (parameter.ParameterClass == EffectParameterClass.Vector)
            {
                if (parameter.ColumnCount == 1)
                {
                    return(parameter.GetValueSingle());
                }
                if (parameter.ColumnCount == 2)
                {
                    return(parameter.GetValueVector2());
                }
                if (parameter.ColumnCount == 3)
                {
                    return(parameter.GetValueVector3());
                }
                if (parameter.ColumnCount == 4)
                {
                    return(parameter.GetValueVector4());
                }
            }

            throw new NotSupportedException();
        }