コード例 #1
0
ファイル: MaterialParameters.cs プロジェクト: vr3d/GodComplex
        /// <summary>
        /// Creates a new parameter
        /// </summary>
        /// <param name="_Name"></param>
        /// <param name="_Type"></param>
        /// <returns></returns>
        public Parameter        CreateParameter(string _Name, PARAMETER_TYPE _Type)
        {
            Parameter Result = null;

            switch (_Type)
            {
            case PARAMETER_TYPE.BOOL:
                Result = new ParameterBool(this, _Name);
                break;

            case PARAMETER_TYPE.INT:
                Result = new ParameterInt(this, _Name);
                break;

            case PARAMETER_TYPE.FLOAT:
                Result = new ParameterFloat(this, _Name);
                break;

            case PARAMETER_TYPE.FLOAT2:
                Result = new ParameterFloat2(this, _Name);
                break;

            case PARAMETER_TYPE.FLOAT3:
                Result = new ParameterFloat3(this, _Name);
                break;

            case PARAMETER_TYPE.FLOAT4:
                Result = new ParameterFloat4(this, _Name);
                break;

            case PARAMETER_TYPE.MATRIX4:
                Result = new ParameterMatrix4(this, _Name);
                break;

            case PARAMETER_TYPE.TEXTURE2D:
                Result = new ParameterTexture2D(this, _Name);
                break;

            default:
                throw new Exception("Unsupported parameter type !");
            }

            // Add it...
            m_Parameters.Add(Result);
            m_Name2Parameter.Add(Result.Name, Result);

            return(Result);
        }
コード例 #2
0
ファイル: MaterialParameters.cs プロジェクト: vr3d/GodComplex
        /// <summary>
        /// Loads parameters from a stream
        /// </summary>
        /// <param name="_Owner"></param>
        /// <param name="_Reader"></param>
        internal MaterialParameters(Scene _Owner, System.IO.BinaryReader _Reader)
        {
            m_Owner = _Owner;

            m_ID        = _Reader.ReadInt32();
            m_Name      = _Reader.ReadString();
            m_ShaderURL = _Reader.ReadString();

            int ParametersCount = _Reader.ReadInt32();

            for (int ParameterIndex = 0; ParameterIndex < ParametersCount; ParameterIndex++)
            {
                string         Name = _Reader.ReadString();
                PARAMETER_TYPE Type = (PARAMETER_TYPE)_Reader.ReadByte();

                Parameter NewParam = CreateParameter(Name, Type);

                // De-serialize the parameter
                NewParam.Load(_Reader);
            }
        }
コード例 #3
0
ファイル: SymbolTable.cs プロジェクト: photo-bro/JoshPiler
 /// <summary>
 /// Blanket method for retrieving Symbol information. All returns are passed through
 /// their respective arguments.
 /// </summary>
 public void GetSymbolInfo(out string name, out int scope, out SYMBOL_TYPE SymType,
     out STORAGE_TYPE StorType, out PARAMETER_TYPE ParType, out int memoffset, out int value,
     out int baseoff, out int arrEnd, out int relOff)
 {
     name = m_sName;
     scope = m_iScope;
     SymType = m_SymType;
     StorType = m_StorType;
     ParType = m_ParType;
     memoffset = m_iMemOff;
     value = m_iVal;
     baseoff = m_iBaseOff;
     arrEnd = m_iArrEnd;
     relOff = m_iRelativeOff;
 }
コード例 #4
0
ファイル: SymbolTable.cs プロジェクト: photo-bro/JoshPiler
        private SYMBOL_TYPE m_SymType; // type

        #endregion Fields

        #region Constructors

        /// <summary>
        /// Constructor
        /// </summary>
        public Symbol(string name, int scope, SYMBOL_TYPE SymType,
            STORAGE_TYPE StorType, PARAMETER_TYPE ParType, int memoffset,
            int value = 0, int baseoff = 0, int arrEnd = 0, int relOff = 0)
        {
            m_sName = name;
            m_iScope = scope;
            m_SymType = SymType;
            m_StorType = StorType;
            m_ParType = ParType;
            m_iMemOff = memoffset;
            m_iVal = value;
            m_iBaseOff = baseoff;
            m_iArrEnd = arrEnd;
            m_iRelativeOff = relOff;
        }
コード例 #5
0
        /// <summary>
        /// Creates a new parameter
        /// </summary>
        /// <param name="_Name"></param>
        /// <param name="_Type"></param>
        /// <returns></returns>
        public Parameter CreateParameter( string _Name, PARAMETER_TYPE _Type )
        {
            Parameter	Result = null;
            switch ( _Type )
            {
                case PARAMETER_TYPE.BOOL:
                    Result = new ParameterBool( this, _Name );
                    break;
                case PARAMETER_TYPE.INT:
                    Result = new ParameterInt( this, _Name );
                    break;
                case PARAMETER_TYPE.FLOAT:
                    Result = new ParameterFloat( this, _Name );
                    break;
                case PARAMETER_TYPE.FLOAT2:
                    Result = new ParameterFloat2( this, _Name );
                    break;
                case PARAMETER_TYPE.FLOAT3:
                    Result = new ParameterFloat3( this, _Name );
                    break;
                case PARAMETER_TYPE.FLOAT4:
                    Result = new ParameterFloat4( this, _Name );
                    break;
                case PARAMETER_TYPE.MATRIX4:
                    Result = new ParameterMatrix4( this, _Name );
                    break;
                case PARAMETER_TYPE.TEXTURE2D:
                    Result = new ParameterTexture2D( this, _Name );
                    break;

                default:
                    throw new Exception( "Unsupported parameter type !" );
            }

            // Add it...
            m_Parameters.Add( Result );
            m_Name2Parameter.Add( Result.Name, Result );

            return Result;
        }