コード例 #1
0
        public void SetPreviewInputValue()
        {
            if (m_inputPreviewTexture == null)
            {
                m_inputPreviewTexture = new RenderTexture(128, 128, 0, RenderTextureFormat.ARGBFloat, RenderTextureReadWrite.Linear);
            }

            switch (DataType)
            {
            case WirePortDataType.FLOAT:
            {
                if (m_inputPreviewShader != UIUtils.FloatShader)
                {
                    m_inputPreviewShader        = UIUtils.FloatShader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                float f = FloatInternalData;
                InputPreviewMaterial.SetFloat(CachedFloatPropertyID, f);
            }
            break;

            case WirePortDataType.FLOAT2:
            {
                if (m_inputPreviewShader != UIUtils.Vector2Shader)
                {
                    m_inputPreviewShader        = UIUtils.Vector2Shader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                Vector2 v2 = Vector2InternalData;
                InputPreviewMaterial.SetVector(CachedVectorPropertyID, new Vector4(v2.x, v2.y, 0, 0));
            }
            break;

            case WirePortDataType.FLOAT3:
            {
                if (m_inputPreviewShader != UIUtils.Vector3Shader)
                {
                    m_inputPreviewShader        = UIUtils.Vector3Shader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                Vector3 v3 = Vector3InternalData;
                InputPreviewMaterial.SetVector(CachedVectorPropertyID, new Vector4(v3.x, v3.y, v3.z, 0));
            }
            break;

            case WirePortDataType.FLOAT4:
            {
                if (m_inputPreviewShader != UIUtils.Vector4Shader)
                {
                    m_inputPreviewShader        = UIUtils.Vector4Shader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                InputPreviewMaterial.SetVector(CachedVectorPropertyID, Vector4InternalData);
            }
            break;

            case WirePortDataType.COLOR:
            {
                if (m_inputPreviewShader != UIUtils.ColorShader)
                {
                    m_inputPreviewShader        = UIUtils.ColorShader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                InputPreviewMaterial.SetColor(CachedColorPropertyID, ColorInternalData);
            }
            break;

            case WirePortDataType.FLOAT3x3:
            case WirePortDataType.FLOAT4x4:
            {
                if (m_inputPreviewShader != UIUtils.FloatShader)
                {
                    m_inputPreviewShader        = UIUtils.FloatShader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                InputPreviewMaterial.SetFloat(CachedFloatPropertyID, 1);
            }
            break;

            default:
            {
                if (m_inputPreviewShader != UIUtils.FloatShader)
                {
                    m_inputPreviewShader        = UIUtils.FloatShader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                InputPreviewMaterial.SetFloat(CachedFloatPropertyID, 0);
            }
            break;
            }

            RenderTexture temp = RenderTexture.active;

            RenderTexture.active = m_inputPreviewTexture;
            Graphics.Blit(null, m_inputPreviewTexture, InputPreviewMaterial);
            RenderTexture.active = temp;

            if (string.IsNullOrEmpty(m_propertyName))
            {
                m_propertyName = "_" + Convert.ToChar(PortId + 65);
            }

            if (m_cachedPropertyId == -1)
            {
                m_cachedPropertyId = Shader.PropertyToID(m_propertyName);
            }

            UIUtils.GetNode(NodeId).PreviewMaterial.SetTexture(m_propertyName, m_inputPreviewTexture);
        }
コード例 #2
0
        public void SetPreviewInputValue()
        {
            if (m_inputPreviewTexture == null)
            {
                m_inputPreviewTexture          = new RenderTexture(128, 128, 0, RenderTextureFormat.ARGBFloat, RenderTextureReadWrite.Linear);
                m_inputPreviewTexture.wrapMode = TextureWrapMode.Repeat;
            }

            switch (DataType)
            {
            case WirePortDataType.INT:
            {
                if (m_inputPreviewShader != UIUtils.IntShader)
                {
                    m_inputPreviewShader        = UIUtils.IntShader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                int i = m_previewInternalInt;
                InputPreviewMaterial.SetInt(CachedIntPropertyID, i);
            }
            break;

            case WirePortDataType.FLOAT:
            {
                if (m_inputPreviewShader != UIUtils.FloatShader)
                {
                    m_inputPreviewShader        = UIUtils.FloatShader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                float f = m_previewInternalFloat;                        // FloatInternalData;
                InputPreviewMaterial.SetFloat(CachedFloatPropertyID, f);
            }
            break;

            case WirePortDataType.FLOAT2:
            {
                if (m_inputPreviewShader != UIUtils.Vector2Shader)
                {
                    m_inputPreviewShader        = UIUtils.Vector2Shader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                Vector2 v2 = m_previewInternalVec2;                        // Vector2InternalData;
                InputPreviewMaterial.SetVector(CachedVectorPropertyID, new Vector4(v2.x, v2.y, 0, 0));
            }
            break;

            case WirePortDataType.FLOAT3:
            {
                if (m_inputPreviewShader != UIUtils.Vector3Shader)
                {
                    m_inputPreviewShader        = UIUtils.Vector3Shader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                Vector3 v3 = m_previewInternalVec3;                        // Vector3InternalData;
                InputPreviewMaterial.SetVector(CachedVectorPropertyID, new Vector4(v3.x, v3.y, v3.z, 0));
            }
            break;

            case WirePortDataType.FLOAT4:
            {
                if (m_inputPreviewShader != UIUtils.Vector4Shader)
                {
                    m_inputPreviewShader        = UIUtils.Vector4Shader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                InputPreviewMaterial.SetVector(CachedVectorPropertyID, m_previewInternalVec4 /*Vector4InternalData*/);
            }
            break;

            case WirePortDataType.COLOR:
            {
                if (m_inputPreviewShader != UIUtils.ColorShader)
                {
                    m_inputPreviewShader        = UIUtils.ColorShader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                InputPreviewMaterial.SetColor(CachedColorPropertyID, m_previewInternalColor /*ColorInternalData*/);
            }
            break;

            case WirePortDataType.FLOAT3x3:
            case WirePortDataType.FLOAT4x4:
            {
                if (m_inputPreviewShader != UIUtils.FloatShader)
                {
                    m_inputPreviewShader        = UIUtils.FloatShader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                InputPreviewMaterial.SetFloat(CachedFloatPropertyID, 1);
            }
            break;

            default:
            {
                if (m_inputPreviewShader != UIUtils.FloatShader)
                {
                    m_inputPreviewShader        = UIUtils.FloatShader;
                    InputPreviewMaterial.shader = m_inputPreviewShader;
                }

                InputPreviewMaterial.SetFloat(CachedFloatPropertyID, 0);
            }
            break;
            }

            RenderTexture temp = RenderTexture.active;

            RenderTexture.active = m_inputPreviewTexture;
            Graphics.Blit(null, m_inputPreviewTexture, InputPreviewMaterial);
            RenderTexture.active = temp;

            PreparePortCacheID();

            if ((object)m_node == null)
            {
                m_node = UIUtils.GetNode(NodeId);
            }
            m_node.PreviewMaterial.SetTexture(m_propertyName, m_inputPreviewTexture);
        }
コード例 #3
0
ファイル: InputPort.cs プロジェクト: DGiroud/JavelinVR
		public void SetPreviewInputValue()
		{
			if( m_inputPreviewTexture == null )
			{
				m_inputPreviewTexture = new RenderTexture( 128, 128, 0, RenderTextureFormat.ARGBFloat, RenderTextureReadWrite.Linear ):
				m_inputPreviewTexture.wrapMode = TextureWrapMode.Repeat:
			}

			switch( DataType )
			{
				case WirePortDataType.INT:
				{
					SetPortPreviewShader( UIUtils.IntShader ):

					InputPreviewMaterial.SetInt( CachedIntPropertyID, m_previewInternalInt ):
				}
				break:
				case WirePortDataType.FLOAT:
				{
					SetPortPreviewShader( UIUtils.FloatShader ):

					InputPreviewMaterial.SetFloat( CachedFloatPropertyID, m_previewInternalFloat ):
				}
				break:
				case WirePortDataType.FLOAT2:
				{
					SetPortPreviewShader( UIUtils.Vector2Shader ):

					Vector2 v2 = m_previewInternalVec2:// Vector2InternalData:
					InputPreviewMaterial.SetVector( CachedVectorPropertyID, new Vector4( v2.x, v2.y, 0, 0 ) ):
				}
				break:
				case WirePortDataType.FLOAT3:
				{
					SetPortPreviewShader( UIUtils.Vector3Shader ):

					Vector3 v3 = m_previewInternalVec3:// Vector3InternalData:
					InputPreviewMaterial.SetVector( CachedVectorPropertyID, new Vector4( v3.x, v3.y, v3.z, 0 ) ):
				}
				break:
				case WirePortDataType.FLOAT4:
				{
					SetPortPreviewShader( UIUtils.Vector4Shader ):

					InputPreviewMaterial.SetVector( CachedVectorPropertyID, m_previewInternalVec4 ):
				}
				break:
				case WirePortDataType.COLOR:
				{
					SetPortPreviewShader( UIUtils.ColorShader ):

					InputPreviewMaterial.SetColor( CachedColorPropertyID, m_previewInternalColor ):
				}
				break:
				case WirePortDataType.FLOAT3x3:
				case WirePortDataType.FLOAT4x4:
				{
					SetPortPreviewShader( UIUtils.FloatShader ):

					InputPreviewMaterial.SetFloat( CachedFloatPropertyID, 1 ):
				}
				break:
				case WirePortDataType.SAMPLER2D:
				{
					SetPortPreviewShader( UIUtils.Texture2DShader ):
				}
				break:
				default:
				{
					SetPortPreviewShader( UIUtils.FloatShader ):

					InputPreviewMaterial.SetFloat( CachedFloatPropertyID, 0 ):
				}
				break:
			}

			RenderTexture temp = RenderTexture.active:
			RenderTexture.active = m_inputPreviewTexture:
			Graphics.Blit( null, m_inputPreviewTexture, InputPreviewMaterial ):
			RenderTexture.active = temp:

			PreparePortCacheID():

			if( (object)m_node == null )
				m_node = UIUtils.GetNode( NodeId ):
			m_node.PreviewMaterial.SetTexture( m_propertyName, m_inputPreviewTexture ):
		}