コード例 #1
0
        public PartMaterial(ModelMeshPart part)
        {
            MeshPart          = part;
            DefaultEffect     = part.Effect;
            DefaultParameters = EffectParameterListSave.FromEffect(part.Effect);

            SetDefaults();
        }
コード例 #2
0
        public void SetPartEffect(int partIndex, string effectShortName)
        {
            PartMaterial part   = mParts[partIndex];
            Effect       effect = mEffectDictionary[effectShortName].Clone(FlatRedBallServices.GraphicsDevice);

            // Store effect
            part.EffectName      = effectShortName;
            part.Effect          = effect;
            part.MeshPart.Effect = effect;

            // Load effect default parameters (or add non-saved parameters if none exist)
            if (HasParameters(effectShortName))
            {
                string parametersShortName = mEffectParameters[effectShortName][0];
                SetPartParameters(partIndex, parametersShortName);
            }
            else
            {
                part.ParametersName = string.Empty;
                part.Parameters     = EffectParameterListSave.FromEffect(effect);
            }
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: profexorgeek/FlatRedBall
        private void parametersBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            // Get the parameters name
            int    partIndex      = meshPartBox.SelectedIndex;
            string parametersName = (string)parametersBox.Items[parametersBox.SelectedIndex];

            if (parametersName == DefaultParametersString)
            {
                // Set default parameters
                mMaterial.SetPartDefaultParameters(partIndex);
                effectPropGrid.Refresh();
            }
            else if (parametersName == NewParametersString)
            {
                // Create new parameters
                if (saveParxFileDialog.ShowDialog() == DialogResult.OK)
                {
                    string fileName = saveParxFileDialog.FileName;
                    EffectParameterListSave list = EffectParameterListSave.FromEffect(mMaterial.Parts[partIndex].Effect);

                    // Save the file
                    list.Save(fileName);

                    // Add the file
                    mMaterial.AddParameters(fileName, mMaterial.Parts[partIndex].EffectName, partIndex);

                    // Recreate the parameters list
                    CreateParametersList(mMaterial.Parts[partIndex].EffectName);
                }
            }
            else
            {
                // Set parameters on part
                mMaterial.SetPartParameters(partIndex, parametersName);
                effectPropGrid.Refresh();
            }
        }