Ejemplo n.º 1
0
        public override void ReadFromString(ref string[] nodeParams)
        {
            base.ReadFromString(ref nodeParams);
            try
            {
                ShaderName = GetCurrentParam(ref nodeParams);
                if (m_shaderName.Length > 0)
                {
                    ShaderName = UIUtils.RemoveShaderInvalidCharacters(ShaderName);
                }

                string templateGUID       = GetCurrentParam(ref nodeParams);
                string templateShaderName = string.Empty;
                if (UIUtils.CurrentShaderVersion() > 13601)
                {
                    templateShaderName = GetCurrentParam(ref nodeParams);
                }

                TemplateData template = TemplatesManager.GetTemplate(templateGUID);
                if (template != null)
                {
                    SetTemplate(template, false, true);
                }
                else
                {
                    template = TemplatesManager.GetTemplateByName(templateShaderName);
                    if (template != null)
                    {
                        SetTemplate(template, false, true);
                    }
                    else
                    {
                        m_masterNodeCategory = -1;
                    }
                }

                ////BLEND MODULE
                //if( m_currentTemplate.BlendData.ValidBlendMode )
                //{
                //	m_blendOpHelper.ReadBlendModeFromString( ref m_currentReadParamIdx, ref nodeParams );
                //}
                //
                //if( m_currentTemplate.BlendData.ValidBlendOp )
                //{
                //	m_blendOpHelper.ReadBlendOpFromString( ref m_currentReadParamIdx, ref nodeParams );
                //}
            }
            catch (Exception e)
            {
                Debug.LogException(e, this);
            }
            m_containerGraph.CurrentCanvasMode = NodeAvailability.TemplateShader;
        }
Ejemplo n.º 2
0
        public override void ReadFromString(ref string[] nodeParams)
        {
            base.ReadFromString(ref nodeParams);
            try
            {
                ShaderName = GetCurrentParam(ref nodeParams);
                if (m_shaderName.Length > 0)
                {
                    ShaderName = UIUtils.RemoveShaderInvalidCharacters(ShaderName);
                }

                string templateGUID       = GetCurrentParam(ref nodeParams);
                string templateShaderName = string.Empty;
                if (UIUtils.CurrentShaderVersion() > 13601)
                {
                    templateShaderName = GetCurrentParam(ref nodeParams);
                }

                TemplateData template = TemplatesManager.GetTemplate(templateGUID);
                if (template != null)
                {
                    SetTemplate(template, false, true);
                }
                else
                {
                    template = TemplatesManager.GetTemplateByName(templateShaderName);
                    if (template != null)
                    {
                        SetTemplate(template, false, true);
                    }
                    else
                    {
                        m_masterNodeCategory = -1;
                    }
                }
#if TEMPLATE_MODULES
                if (UIUtils.CurrentShaderVersion() > 13902)
                {
                    //BLEND MODULE
                    if (m_currentTemplate.BlendData.ValidBlendMode)
                    {
                        m_blendOpHelper.ReadBlendModeFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }

                    if (m_currentTemplate.BlendData.ValidBlendOp)
                    {
                        m_blendOpHelper.ReadBlendOpFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }

                    //CULL MODE
                    if (m_currentTemplate.CullModeData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_cullModeHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }

                    //COLOR MASK
                    if (m_currentTemplate.ColorMaskData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_colorMaskHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }

                    //STENCIL BUFFER
                    if (m_currentTemplate.StencilData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_stencilBufferHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                }
#endif
            }
            catch (Exception e)
            {
                Debug.LogException(e, this);
            }
            m_containerGraph.CurrentCanvasMode = NodeAvailability.TemplateShader;
        }
        public override void ReadFromDeprecated(ref string[] nodeParams, Type oldType = null)
        {
            base.ReadFromString(ref nodeParams);
            try
            {
                string currShaderName = GetCurrentParam(ref nodeParams);
                if (currShaderName.Length > 0)
                {
                    currShaderName = UIUtils.RemoveShaderInvalidCharacters(currShaderName);
                }

                string templateGUID       = GetCurrentParam(ref nodeParams);
                string templateShaderName = string.Empty;
                if (UIUtils.CurrentShaderVersion() > 13601)
                {
                    templateShaderName = GetCurrentParam(ref nodeParams);
                }

                TemplateMultiPass template = TemplatesManager.GetTemplate(templateGUID) as TemplateMultiPass;
                if (template != null)
                {
                    m_templateGUID = templateGUID;
                    SetTemplate(null, false, true, 0, 0);
                }
                else
                {
                    template = TemplatesManager.GetTemplateByName(templateShaderName) as TemplateMultiPass;
                    if (template != null)
                    {
                        m_templateGUID = template.GUID;
                        SetTemplate(null, false, true, 0, 0);
                    }
                    else
                    {
                        m_masterNodeCategory = -1;
                    }
                }
                // only in here, after SetTemplate, we know if shader name is to be used as title or not
                ShaderName = currShaderName;
                if (UIUtils.CurrentShaderVersion() > 13902)
                {
                    //BLEND MODULE
                    if (m_templateMultiPass.SubShaders[0].Modules.BlendData.ValidBlendMode)
                    {
                        m_subShaderModule.BlendOpHelper.ReadBlendModeFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                    else if (m_templateMultiPass.SubShaders[0].Passes[0].Modules.BlendData.ValidBlendMode)
                    {
                        m_passModule.BlendOpHelper.ReadBlendModeFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }

                    if (m_templateMultiPass.SubShaders[0].Modules.BlendData.ValidBlendOp)
                    {
                        m_subShaderModule.BlendOpHelper.ReadBlendOpFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                    else if (m_templateMultiPass.SubShaders[0].Passes[0].Modules.BlendData.ValidBlendOp)
                    {
                        m_passModule.BlendOpHelper.ReadBlendOpFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }


                    //CULL MODE
                    if (m_templateMultiPass.SubShaders[0].Modules.CullModeData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_subShaderModule.CullModeHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                    else if (m_templateMultiPass.SubShaders[0].Passes[0].Modules.CullModeData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_passModule.CullModeHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }

                    //COLOR MASK
                    if (m_templateMultiPass.SubShaders[0].Modules.ColorMaskData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_subShaderModule.ColorMaskHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                    else if (m_templateMultiPass.SubShaders[0].Passes[0].Modules.ColorMaskData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_passModule.ColorMaskHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }

                    //STENCIL BUFFER
                    if (m_templateMultiPass.SubShaders[0].Modules.StencilData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_subShaderModule.StencilBufferHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                    else if (m_templateMultiPass.SubShaders[0].Passes[0].Modules.StencilData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_passModule.StencilBufferHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                }

                if (UIUtils.CurrentShaderVersion() > 14202)
                {
                    //DEPTH OPTIONS
                    if (m_templateMultiPass.SubShaders[0].Modules.DepthData.ValidZWrite)
                    {
                        m_subShaderModule.DepthOphelper.ReadZWriteFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                    else if (m_templateMultiPass.SubShaders[0].Passes[0].Modules.DepthData.ValidZWrite)
                    {
                        m_passModule.DepthOphelper.ReadZWriteFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }

                    if (m_templateMultiPass.SubShaders[0].Modules.DepthData.ValidZTest)
                    {
                        m_subShaderModule.DepthOphelper.ReadZTestFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                    else if (m_templateMultiPass.SubShaders[0].Passes[0].Modules.DepthData.ValidZTest)
                    {
                        m_subShaderModule.DepthOphelper.ReadZTestFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }

                    if (m_templateMultiPass.SubShaders[0].Modules.DepthData.ValidOffset)
                    {
                        m_subShaderModule.DepthOphelper.ReadOffsetFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                    else if (m_templateMultiPass.SubShaders[0].Passes[0].Modules.DepthData.ValidOffset)
                    {
                        m_passModule.DepthOphelper.ReadOffsetFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                }

                //TAGS
                if (UIUtils.CurrentShaderVersion() > 14301)
                {
                    if (m_templateMultiPass.SubShaders[0].Modules.TagData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_subShaderModule.TagsHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                    else if (m_templateMultiPass.SubShaders[0].Passes[0].Modules.TagData.DataCheck == TemplateDataCheck.Valid)
                    {
                        m_passModule.TagsHelper.ReadFromString(ref m_currentReadParamIdx, ref nodeParams);
                    }
                }
            }
            catch (Exception e)
            {
                Debug.LogException(e, this);
            }
            m_containerGraph.CurrentCanvasMode = NodeAvailability.TemplateShader;
        }