Beispiel #1
0
        /// <summary>
        /// Renders a graph to a data stream
        /// </summary>
        /// <param name="gvContext">A GraphViz context pointer</param>
        /// <param name="gvGraph">A GraphViz graph pointer</param>
        /// <param name="format">The GraphViz renderer format string</param>
        /// <returns>The stream representing the rendered graph</returns>
        protected static GraphVizRenderStream Render(IntPtr gvContext, IntPtr gvGraph, string format)
        {
            unsafe
            {
                byte *result;
                uint  length;
                //  Render the graph to a byte stream
                if (GraphVizCore.gvRenderData(gvContext, gvGraph, format, out result, out length) != 0)
                {
                    throw new InvalidDataException("GraphViz gvRenderData function return empty pointer");
                }

                // Turn the byte stream to a "managed" stream
                return(new GraphVizRenderStream(result, length));
            }
        }