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); }
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); }
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 ): }