SciChart.Drawing EventArgs raised when the event is raised, which occurs at the start of the render pass Initializes a new instance of the class. The render surface. Gets the instance which raised the Draw event identifies cached rendered character Defines the interface to a 2D Brush used to paint fills on the Gets whether fills painted with this brush should be alpha blended or not Defines the interface to a Extreme 2D RenderContext Gets the current size of the viewport. Blits the sprite onto the with colors provided by vertices The sprite to draw The vertices to draw sprite at The start index in vertices array The amount of vertices to draw Draws colored line strip with colors provided by vertice The pen to draw line strip with The vertices to draw line strip The start index in vertices array The amount of vertices to draw A base interface for and . Used by the to draw fills and lines Gets the color of the pen. Supports transparency Used internally by the renderer, gets the integer color-code that represents the Pen color Gets a value indicating whether this pen is transparent. true if this instance is transparent; otherwise, false. Creates instances, e.g. to draw lines, points, polygon outlines depending on the final implementation. Begins drawing at the specified X,Y pixel coordinate, with the specified color. Creates instances, e.g. to draw points (ellipses, squares, triangles). Begins drawing at the specified X,Y pixel coordinate, with the specified color. Returns an to draw a polyline, or collection of PointMarkers The following example shows how to create a PathDrawingContext, move it and dispose to complete the path var lineContext = renderContext.BeginLine(pen, 0, 0); lineContext.LineTo(1, 2); lineContext.LineTo(3, 4); lineContext.Dispose(); Starts the context at the specified X,Y coordinate with a specified Pen The pen or brush for the drawing operation The x-coordinate in pixels The y-coordinate in pixels The instance, to allow fluent API Moves the Context to the specified X,Y coordinate. The x-coordinate in pixels The y-coordinate in pixels The instance, to allow fluent API Ends the segment, flushing to render target Returns an to draw a polyline, or collection of PointMarkers var lineContext = renderContext.BeginPoints(pen, 0, 0, 0); lineContext.LineTo(1, 2, 1); lineContext.LineTo(3, 4, 2); lineContext.Dispose(); Starts the context at the specified X,Y coordinate with a specified Pen The pen or brush for the drawing operation The x-coordinate in pixels The y-coordinate in pixels The index to the data. The instance, to allow fluent API Moves the Context to the specified X,Y coordinate. The x-coordinate in pixels The y-coordinate in pixels The index to the data. The instance, to allow fluent API Ends the segment, flushing to render target Defines the interface to a 2D pen, used to draw lines on the Gets the stroke thickness Gets if antialiasing should be used Gets a value that describes a shape at the end of line Defines interface to context of splitting line into dashes When true, this instance has dashes Optional array with lengths of dash pattern items Current index in StrokeDashArray Already passed length of current item in StrokeDashArray Defines the interface to a 2D RenderContext, allowing drawing, blitting and creation of pens and brushes on the The is a graphics context valid for the current render pass. in which an is passed in. Use this to draw penned lines, fills, rectangles, ellipses and blit graphics to the screen. Gets a collection of , which allow rendering operations to be posted to a layered queue for later execution in order (and correct Z-ordering). RenderOperationLayers layers = renderContext.Layers; // Enqueue some operations in the layers in any order layers[RenderLayer.AxisMajorGridlines].Enqueue(() => renderContext.DrawLine(/* .. */)); layers[RenderLayer.AxisBands].Enqueue(() => renderContext.DrawRectangle(/* .. */)); layers[RenderLayer.AxisMinorGridlines].Enqueue(() => renderContext.DrawLine(/* .. */)); // Processes all layers by executing enqueued operations in order of adding, // and in Z-order of layers layers.Flush(); Gets the current size of the viewport. enables/disables primitves chaching optimization ( Direct3D renderer only ) Creates a valid for the current render pass. Use this to draw rectangles, polygons and shaded areas The color of the brush, supports transparency The opacity of the brush If true, use alphablending when shading. If null, auto-detect The instance Creates a from WPF Brush valid for the current render pass. Use this to draw rectangles, polygons and shaded areas The WPF Brush to use as a source, e.g. this can be a , or it can be a . Note that solid colors support transparency and are faster than gradient brushes The opacity of the brush Defines a , e.g. brushes share a texture per viewport or a new texture per primitive drawn The instance Creates a valid for the current render pass. Use this to draw outlines, quads and lines The color of the pen, supports transparency If true, use antialiasing The strokethickness, default=1.0 The opecity of the pen The instance Creates a Sprite from FrameworkElement by rendering to bitmap. This may be used in the method to draw to the screen repeatedly The FrameworkElement to render The sprite which may be drawn in SciChart Creates a Sprite from WriteableBitmap. This may be used in the method to draw to the screen repeatedly The WriteableBitmap containing the sprite content The sprite which may be drawn in SciChart Clears the Blits the source image onto the The source sprite to render The source rectangle The destination point, which will be the top-left coordinate of the sprite after blitting Batch draw of the source sprite onto the The sprite to render The source rectangle The points to draw sprites at Batch draw of the source sprite onto the The sprite to render The destination rectangles to draw sprites at Fills a rectangle on the using the specified The brush The top-left point of the rectangle The bottom-right point of the rectangle The angle which the brush is rotated by, default is zero Fills a rectangle on the using the specified The brush The top-left point of the rectangle The bottom-right point of the rectangle Fills a polygon on the using the specifie The brush The list of points defining the closed polygon, where X,Y coordinates in clockwise direction Fills an area defined the the Points and Heights, e.g. as in a mountain chart, using the specifie The brush Value, indicates whether chart is vertical The angle which the brush is rotated by Draws a Quad on the using the specified The Pen Left-top point in the quad Bottom-right point in the quad Draws an Ellipse on the using the specified outline Pen and fill Brush The stroke pen The fill brush The center of the ellipse in pixels The width of the ellipse in pixels The height of the ellipse in pixels Draws 0..N Ellipses at the points passed in with the same width, height, pen and brush The points to draw ellipses at The common width for all ellipses The common height for all ellipses Draws a single line on the using the specified . Note for a faster implementation in some rasterizers, use DrawLines passing in an IEnumerable The pen The start of the line in pixels The end of the line in pixels Draws a multi-point line on the using the specified The pen The points The last point in the polyline drawn Call this method, passing in instance to dispose after the render pass completes. Called internally by SciChart to lazy-dispose of Direct2D and Direct3D brushes and textures Draws vertical scan line for heatmap from bottom to top, from yStart to yEnd Screen X coordinate where to draw pixels Screen X coordinate where to draw pixels Screen Y coordinate of vertical scan line's bottom. Can be located outdide of visible area, in this case not all pixels in list are rendered Screen Y coordinate of vertical scan line's top. Can be located outdide of visible area, in this case not all pixels in list are rendered The list of pixel colors to draw The Opacity of the line from 0.0 to 1.0 if set to true then y axis is flipped. Draws text if it does not go outside Begins a Polyline segment, returning the . This is the fastest way to draw lines and simply a proxy to method. The pen for the line segment The start X coordinate (pixel coord) The start Y coordinate (pixel coord) The to continue the line Begins a filled Polygon segment, returning the . This is the fastest way to draw polygon and simply a proxy to method. The brush for the polygon fill The start X coordinate (pixel coord) The start Y coordinate (pixel coord) The angle which the is rotated by The to continue the polygon Begins a Sprite Batch, returning the . This is the fastest way to draw sprites and simply a proxy to method. The sprite for the Sprite Batch The start X coordinate (pixel coord) The start Y coordinate (pixel coord) An optional width override for the sprite. Defaults to Sprite.Width An optional height override for the sprite. Defaults to Sprite.Height The to continue the sprite batch Creates a Texture with the specified width, height and format. This texture may be modified, and drawn repeatedly using The width of the texture in pixels The height of the texture in pixels The texture format. A new Texture2D object, which must be disposed when no longer required Draws the to the specified viewport rect The texture. The viewport rect. The sampling mode. Draws contours for a height texture the texture. The float texture. The viewport rect. Gets from this render context Determines whether the primitive type T is compatible with this instance The object. Draws vertical scan line for heatmap from bottom to top, from yStart to yEnd Screen X coordinate where to draw pixels Screen X coordinate where to draw pixels An array of yCoordinates on YAxis The list of pixel colors to draw The Opacity of the line from 0.0 to 1.0 if set to true then X values are to each other and the same is for Y values. if set to true then y axis is flipped. Defines enumeration constants to describe how textures are mapped. If textures are mapped , then a single large texture is shared for all elements that use this texture. Else, if then individual primitives have separate textures. with this mode texture coordinates equal to screen coordinates with this mode entire texture is fit into single primitive Common interface for a RenderSurface, Raised each time the render surface is to be drawn. Handle this event to paint to the surface Raised immediately after a render operation has completed Returns True if the size has changed and the viewport needs resizing Returns true if the size is valid for drawing Gets or sets a to apply to the Gets or sets the instance The services. Clears all Visual Children on the Clears the viewport Recreates the elements required by the Viewport, called once at startup and when the surface is resized Defines the interface to a RenderSurface, which is a viewport used to draw 2D graphics in a fast manner. The renderer architecture is plugin based, meaning we have build multiple implementations of . Gets the ChildSeries in this instance. Creates an instance to perform drawing operations. Note this is only valid for the current render pass Returns True if the contains the instance the RenderableSeries instance as Adds the instance as a visual child to the Adds the instances as visual children to the Removes the from the Creates a , a class which schedules rendering. There are default implementations built in to SciChart including which uses DispatcherTimer and which uses System.Timers.Timer. The current application dispatcher Maximum frame rate. If null, chooses the default value (60 FPS). Else, uses the provided value Callback function for when the render timer elapses Default implementation of Defines the interface to a 2D Sprite, a small fixed-size bitmap which is rendered repeatedly to the viewport Gets the width of the Spite in pixels Gets the height of the Sprite in pixels Defines TextureFormats for derived types Texture pixel format is Blue Green Red Alpha (8 bit per channel) Defines the texture filtering mode. Texture filtering is the method used to determine the texture color for a texture mapped pixel, using the colors of nearby texels (pixels of the texture) Point filtering samples a texture without considering values from nearby texels. Final image looks sharp. Linear filtering samples a texture by linear interpolation of values from nearby texels. Final image looks smoothed. Supported only by DirectX render context. Defines the interface to a 2D texture, used to draw images on the Gets the width of the texture Gets the height of the texture Gets the texture format for this texture Sets int[] pixel data on the Texture. Assumes The color data for pixels. Sets int[] pixel data on the Texture. Assumes The color data for pixels. Defines the interface to a GPU vertex buffer USED INTERNALLY: Locks GPU vertex buffer for direct memory access USED INTERNALLY: Unlocks GPU vertex buffer before rendering USED INTERNALLY: Locks GPU vertex buffer for direct memory access USED INTERNALLY: Unlocks GPU vertex buffer before rendering USED INTERNALLY: Locks GPU vertex buffer for direct memory access USED INTERNALLY: Unlocks GPU vertex buffer before rendering Defines the interface to a Twister 2D RenderContext, allowing drawing, blitting and creation of pens and brushes on the Draws lines from array as a single batched call. The array containing data to draw. The number of points to draw. The default line pen. If set to false draw a line in segments. If set to true draw a digital, stepped line. If set to true double.NaN gaps are rendered as gaps, otherwise as closed lines. Null means regular line. The optional per-vertex transform to apply to each point during rendering. Null means identity matrix. Draws sprites defined by the from an array as a single batched call. The array containing data to draw. The number of points to draw. The sprite to draw at each point The sprite to draw stroke at each point The optional per-vertex transform to apply to each point during rendering. Null means identity matrix. Draws two lines and a band polygon between the Y0 and Y1 points on each , as a single batched call. The array containing data to draw. The number of points to draw. The pen to draw the Y0 line. The pen to draw the Y1 line. The brush used to fill the band when Y0 > Y1. The brush used to fill the band when Y0 < Y1. If set to true draw a digital line/band. The optional per-vertex transform to apply to each point during rendering. Null means identity matrix. The optional colors to apply to each point during rendering. Null means default colors. Draws a mountain or area between Y0 and Y1 in the array, as a single batched draw call. The array containing data to draw. The number of points to draw. The pen to draw the Y0 line. The brush used to fill the area when Y0 > Y1. If set to true draw a digital line/mountain. The optional per-vertex transform to apply to each point during rendering. Null means identity matrix. The optional colors to apply to each point during rendering. Null means default colors. Draws candlesticks from the array, as a single batched draw call. The array containing data to draw. The number of points to draw. The width of each candle in pixels The pen to paint wicks if the candle is an UP candle The pen to paint wicks if the candle is a DOWN candle The brush to fill candles if the candle is UP The brush to fill candles if the candle is DOWN The optional per-vertex transform to apply to each point during rendering. Null means identity matrix. Draws OHLC bars from the array, as a single batched draw call. The array containing data to draw. The number of points to draw. The width of each bar in pixels The pen to paint wicks if the bar is an UP bar The pen to paint wicks if the bar is a DOWN bar The optional per-vertex transform to apply to each point during rendering. Null means identity matrix. Draws columns from the array, as a single batched draw call. The array containing data to draw. The number of points to draw. The pen to draw the stroke line. The brush used to fill the area. The optional per-vertex transform to apply to each point during rendering. Null means identity matrix. Draws rectangles from the array, as a single batched draw call. The array containing data to draw. The number of points to draw. The sprite to draw at each point The optional per-vertex transform to apply to each point during rendering. Null means identity matrix. Sets a viewport rectangle for all subsequent draw calls. The viewport rectangle to draw. Gets a unique Id for Vx engine instance Defines the base class for implementors, allowing drawing, blitting and creation of pens and brushes on the Gets a collection of layers, which allow rendering operations to be posted to a layered queue for later execution in order (and correct Z-ordering). RenderOperationLayers layers = renderContext.Layers; // Enqueue some operations in the layers in any order layers[RenderLayer.AxisMajorGridlines].Enqueue(() => renderContext.DrawLine(/* .. */)); layers[RenderLayer.AxisBands].Enqueue(() => renderContext.DrawRectangle(/* .. */)); layers[RenderLayer.AxisMinorGridlines].Enqueue(() => renderContext.DrawLine(/* .. */)); // Processes all layers by executing enqueued operations in order of adding, // and in Z-order of layers layers.Flush(); Gets the size of the current viewport for this render operation enables/disables primitves chaching optimization ( Direct3D renderer only ) Creates a valid for the current render pass. Use this to draw rectangles, polygons and shaded areas The color of the brush, supports transparency The opacity of the brush If true, use alphablending when shading. If null, auto-detect from the Color The instance Creates a from WPF Brush valid for the current render pass. Use this to draw rectangles, polygons and shaded areas The WPF Brush to use as a source, e.g. this can be a , or it can be a . Note that solid colors support transparency and are faster than gradient brushes The opacity of the brush The instance Creates a valid for the current render pass. Use this to draw outlines, quads and lines The color of the pen, supports transparency If true, use antialiasing The strokethickness, default=1.0 The opecity of the pen The instance Creates a Sprite from FrameworkElement by rendering to bitmap. This may be used in the method to draw to the screen repeatedly The FrameworkElement to render The sprite which may be drawn in SciChart Creates a Sprite from WriteableBitmap. This may be used in the method to draw to the screen repeatedly The WriteableBitmap containing the sprite content The sprite which may be drawn in SciChart Clears the Blits the source image onto the The source sprite to render The source rectangle The destination point, which will be the top-left coordinate of the sprite after blitting Batch draw of the source sprite onto the The sprite to render The source rectangle The points to draw sprites at Batch draw of the source sprite onto the The sprite to render The destination rectangles to draw sprites at Fills a rectangle on the using the specified The brush The angle which the brush is rotated by Fills a rectangle on the using the specified The brush The angle which the brush is rotated by Fills an area, limited by two line segments, e.g. as in a stacked mountain chart, using the specified The brush The list of lines representing polygon segments Value, indicates whether chart is vertical The angle which the brush is rotated by Draws an Ellipse on the using the specified outline Pen and fill Brush The stroke pen The fill brush The center of the ellipse in pixels The width of the ellipse in pixels The height of the ellipse in pixels Draws 0..N Ellipses at the points passed in with the same width, height, pen and brush The points to draw ellipses at The common width for all ellipses The common height for all ellipses Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Call this method, passing in instance to dispose after the render pass completes. Called internally by SciChart to lazy-dispose of Direct2D and Direct3D brushes and textures Draws vertical scan line for heatmap from bottom to top, from yStart to yEnd Screen X coordinate where to draw pixels Screen X coordinate where to draw pixels Screen Y coordinate of vertical scan line's bottom. Can be located outdide of visible area, in this case not all pixels in list are rendered Screen Y coordinate of vertical scan line's top. Can be located outdide of visible area, in this case not all pixels in list are rendered The colors to apply to the vertical scanline The opacity of the vertical scaline, from 0.0 to 1.0 if set to true then y axis is flipped. Draws vertical scan line for heatmap from bottom to top, from yStart to yEnd Screen X coordinate where to draw pixels Screen X coordinate where to draw pixels An array of yCoordinates on YAxis The list of pixel colors to draw The Opacity of the line from 0.0 to 1.0 if set to true then X values are to each other and the same is for Y values. if set to true then y axis is flipped. Draws a Quad on the using the specified The Pen Draws a single line on the using the specified . Note for a faster implementation in some rasterizers, use DrawLines The pen The start of the line in pixels The end of the line in pixels Draws a multi-point line on the using the specified The pen The points. Fills a polygon on the using the specifie The brush The list of points defining the closed polygon, where X,Y coordinates in clockwise direction Draws text if it does not go outside Begins a Polyline segment, returning the . This is the fastest way to draw lines and simply a proxy to method. The pen for the line segment The start X coordinate (pixel coord) The start Y coordinate (pixel coord) The to continue the line Begins a filled Polygon segment, returning the . This is the fastest way to draw polygon and simply a proxy to method. The brush for the polygon fill The start X coordinate (pixel coord) The start Y coordinate (pixel coord) The angle which the is rotated by The to continue the polygon Begins a Sprite Batch, returning the . This is the fastest way to draw sprites and simply a proxy to method. The sprite for the Sprite Batch The start X coordinate (pixel coord) The start Y coordinate (pixel coord) An optional width override for the sprite. Defaults to Sprite.Width An optional height override for the sprite. Defaults to Sprite.Height The to continue the sprite batch Used internally: Clips the zero line (e.g. in mountain fills) to the viewport Used internally to clip a polygon or line-segment to the viewport Returns true if the point is inside the viewport Used internally to clip the area of a StackedMountainSeries to the viewport Collection of lines, which represent bounds of a polygon segment Event args used when the event is raised Initializes a new instance of the class. The duration of the last render operation in milliseconds Gets the duration of the last render operation in milliseconds Stores a queue of operations to perform, intended to be used to queue rendering operations and re-arrange Z-order RenderOperationLayers layers = renderContext.Layers; // Enqueue some operations in the layers in any order layers[RenderLayer.AxisMajorGridlines].Enqueue(() => renderContext.DrawLine(/* .. */)); layers[RenderLayer.AxisBands].Enqueue(() => renderContext.DrawRectangle(/* .. */)); layers[RenderLayer.AxisMinorGridlines].Enqueue(() => renderContext.DrawLine(/* .. */)); // Processes all layers by executing enqueued operations in order of adding, // and in Z-order of layers layers.Flush(); Enqueues an operation to the layer The operation to queue Flushes, the layer, which processes all operations and clears the queue Enumeration Constants to define the layers in The Axis Bands render layer, Z-order = 0 The Axis Minor Gridlines render layer, Z-order = 1 The Axis Major Gridlines render layer, Z-order = 2 The RenderableSeries render layer, Z-order = 3 A collection of layers, which allow rendering operations to be posted to a layered queue for later execution in order (and correct Z-ordering). RenderOperationLayers layers = renderContext.Layers; // Enqueue some operations in the layers in any order layers[RenderLayer.AxisMajorGridlines].Enqueue(() => renderContext.DrawLine(/* .. */)); layers[RenderLayer.AxisBands].Enqueue(() => renderContext.DrawRectangle(/* .. */)); layers[RenderLayer.AxisMinorGridlines].Enqueue(() => renderContext.DrawLine(/* .. */)); // Processes all layers by executing enqueued operations in order of adding, // and in Z-order of layers layers.Flush(); Gets the with the specified . The . The layer to get. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Returns an enumerator that iterates through a collection. An object that can be used to iterate through the collection. Flushes the collection, processing and executing all render operations according to the Z-order defined by the enumeration An abstract base class for the RenderSurface, which is a viewport used within the a SciChartSurface to render RenderableSeries types in a fast manner. The renderer architecture is plugin based, meaning we have build multiple implementations of . Defines the MaxFrameRate DependencyProperty Defines the UseResizeThrottle DependencyProperty Defines the ResizeThrottleMs DependencyProperty Defines the ShowLicensingWarnings DependencyProperty Defines the IsPolarChart DependencyProperty Raised each time the render surface is to be drawn. Handle this event to paint to the surface Raised immediately after a render operation has completed A GUID to identify the hit-test rect on this RenderSurface The WriteableBitmap instance used by this RenderSurface Gets whether an instance of the class is disposed or not. Initializes a new instance of the class. Finalizes an instance of the class. Returns the FontCache (for drawing font characters) of the current RenderSurface Gets or sets the instance The services. Experimental. Switches the RenderTimer using CompositionTarget.Rendering for a ThreadedRenderScheduler which uses background thread to initiate drawing at high priority For fine grained control over render scheduling, create a class which implements IRenderTimerFactory. Default value is DefaultRenderTimerFactory Gets whether the SciChartSurface is a polar chart or not When True, Licensing warnings such as missing Runtime Keys, or invalid license tokens, are displayed on the SciChart UI. Set this property to false to hide such warnings. Gets the root element which hosts components in the Gets the SeriesPanel which hosts RenderableSeries, allowing them to participate in binding and visual tree operations Gets or sets the Maximum Frame Rate of this RenderSurface. By default this is bound to the parent SciChartSurface.MaxFrameRate Gets or sets a timeout for resizing, e.g. 100ms means that the RenderSurface will batch up all Resize events received within a 100ms window. This reduces the CPU usage on resize. Also see dependency property, which must be true If true, uses the value to batch up Resize Events received within a certain time window, reducing the CPU load on resize Returns True if the size has changed and the viewport needs resizing Returns true if the size is valid for drawing Gets the child RenderableSeries in this instance Invalidates the RenderSurface, causing a repaint to occur Clears the viewport Returns True if the contains the instance the instance true if the specified renderable series contains series; otherwise, false. Adds the instance to the Adds the instance to the The renderable series. Removes the from the The renderable series. Clears all on the Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Releases unmanaged and - optionally - managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Recreates the elements required by the Viewport, called once at startup and when the surface is resized Publishes with actual viewport size When overridden in a derived class, returns a RenderContext valid for the current render pass Derived classes may override this method to be notified when to dispose of unmanaged resources. Called when the is disposed Called when the event is raised Raises the Draw event which precedes the render operation Raises the Rendered event with the specified duration The duration. Called when the is loaded into the visual tree The sender. The instance containing the event data. Called when the is Unloaded from the visual tree The sender. The instance containing the event data. Translates the point relative to the other element The input point relative to this The other to use when transforming the point The transformed Point Returns true if the Point is within the bounds of the current element The point to test true if the Point is within the bounds Gets the bounds of the current element relative to another element A timer which uses either event (in case of maxFrameRate supplied as null to Constructor) or DispatcherTimer. Used by derived types to trigger drawing Initializes a new instance of the class. The maximum frame rate. When null, uses event. Else, uses a dispatcher timer The dispatcher. The operation to invoke on timer tick. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. A timer which uses to signal when rendering should occur. This can be used to solve problems with WinForms / WPF message loops and priority in certain high performance scenarios Used by derived types to trigger drawing Initializes a new instance of the class. The maximum frame rate. When null, uses event. Else, uses a dispatcher timer The dispatcher. The operation to invoke on timer tick. Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. Extension methods for FrameworkElements Databinds the source property to the destination property The destination object. The destination property. The source object. The source path. The Binding mode. Renders a FrameworkElement to bitmap The element. Renders a FrameworkElement to bitmap at the requested width, height The element. The width. The height. Provides a implementation that uses a High-Quality software rasterizer, capable of rendering with sub-pixel accuracy. The downside is, the uses a more accurate floating-point math rendering engine which is slower than the counterpart An empty row, used to fast clear bitmaps Initializes a new instance of the class. Recreates the WriteableBitmap used by the Viewport When overridden in a derived class, returns a RenderContext valid for the current render pass Provides a implementation that uses a High-Speed software rasterizer, capable of outputting many millions of points (line-series) at interactive framerates. The downside is, the uses integer fixed-point math which results in jagged lines. Initializes a new instance of the class. When overridden in a derived class, returns a RenderContext valid for the current render pass The TextureCache is used by the to cache frequently used textures, such as Sprites or Gradient Brushes. The maximum memory size is set by (default 32MBytes), and maximum number of items held is set by (default 2048). The maximum memory size that the TextureCache can hold The maximum items count that the TextureCache can hold Adds the texture to the Texturecache The size of the texture in pixels. The brush used as a key for texture cache. The texture. Gets the Texture of Size N and keyed by Brush The size. The brush. Gets the WriteableBitmap Texture keyed by FrameworkElement The fe. Adds a texture keyed by Size and Brush to the cache The size. The brush. The texture. Gets the Texture keyed by Size and Brush The size. The brush. Provides helper methods for manipulations with points Represents a straight line between two points The X coord of the first point The Y coord of the first point The X coord of the second point The Y coord of the second point Creates a new instance of the type Creates a new instance of the type Looks for the intersection point for the two lines passed in The first line The second line If the lines intersect, holds the intersection point The value indicating whether an intersection occurs See http://paulbourke.net/geometry/lineline2d/Helpers.cs Looks for the intersection point for the two lines passed in The first line The second line If the lines intersect, holds the intersection point The value indicating whether an intersection occurs See http://paulbourke.net/geometry/lineline2d/Helpers.cs Get whether the coordinate mouse point is on the polygon Mouse point polygon points Distance between two Points The point1. The point2. Distance between two Points in polar coordinates The point1. The point2. Compute the distance from AB to C The pt. The start. The end. if isSegment is true, AB is a segment, not a line.. Determines whether the point is in bounds for the viewport size. The point. Size of the viewport. Sutherland–Hodgman polygon clipping algorithm https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm This clips the subject polygon against the clip polygon (gets the intersection of the two polygons) Based on the psuedocode from: http://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman Can be concave or convex Must be convex The intersection of the two polygons (or null) Provides methods to convert a to a single 32-bit value and back, a single 32-bit value to a Converts a to UInt32 returning all four color components A,R,G,B in a single 32-bit value Converts a to UInt32 returning all four color components A,B,G,R in a single 32-bit value Converts a UInt32 ARGB Color to struct Enumeration constants to define the usage of DirectX in SciChart Auto-detects DirectX mode for D3D Chart Rendering Force using DirectX9c for D3D Chart Rendering Force using DirectX11 for D3D Chart Rendering Enumeration constants to define the Full Screen AntiAliasing mode on the SciChartSurface and SciChart3DSurface No Antialiasing Enables Multi-Sample AntiAliasing x2 Enables Multi-Sample AntiAliasing x4 Enables Multi-Sample AntiAliasing x8 Provides a implementation that uses The Visual Xccelerator Engine The render pipeline of the Initializes a new instance of the class. Initializes a new instance of the class. Internal access for testing. Determines if the code is being run under Remote Desktop. When True (default), uses software method to FillSource (avoiding use of D3DImage). This can help compatibility on certain systems When False, uses for hardware accelerated texture sharing. To enable compatibility mode for SciChart3DSurface, set this property once, statically, in your application void Foo() { Direct3D11RenderSurface.UseAlternativeFillSource = true; } When false (default), there is no waiting for the gpu to finish rendering, and the frame buffer is copied immediately when true, we force the application to stall until the gpu is idle, this fixes flicker issues that can happen on older hardware To enable waiting for gpu to finish void Foo() { Viewport3D.ForceStallUntilGPUIsIdle = true; } Returns a RenderContext valid for the current render pass. Should be called to fill a bitmap with the pixels from the undelrying buffer writeable bitmap should be precreated with same size prior calling Should be called to fill the WPF Image from the Direct3D Render Target at the end of drawing. Alternative method for filling a WriteableBitmap with DirectX content, avoiding D3DImage (does not work over RDP due to bug in .NET4.0 implementation of D3DImage) Should be called to fill the WPF Image from the Direct3D Render Target at the end of drawing. Recreates the elements required by the Viewport, called once at startup and when the surface is resized. Called when the is disposed. Restarts 3D Engine with configuration flags. Called when the elements required by the Viewport have been recreated. Called when the is disposed. For smooth appearance of non-digital anti-aliased line, the stroke thickness should be greater than 1 pixel Provides a implementation that uses a High-Quality software rasterizer, capable of rendering with sub-pixel accuracy. The downside is, the uses a more accurate vector-based rendering engine which is slower than the counterpart. Initializes a new instance of the class. Recreates the elements required by the Viewport, called once at startup and when the surface is resized When overridden in a derived class, returns a RenderContext valid for the current render pass Collection of draw extension methods for the Silverlight WriteableBitmap class. Collection of extension methods for the WriteableBitmap class. Collection of blit (copy) extension methods for the WriteableBitmap class. Collection of interchange extension methods for the WriteableBitmap class. Collection of extension methods for the WriteableBitmap class. Collection of filter / convolution extension methods for the WriteableBitmap class. Collection of draw extension methods for the WriteableBitmap class. Collection of draw spline extension methods for the WriteableBitmap class. Collection of transformation extension methods for the WriteableBitmap class. Draws a filled rectangle. x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color. The blend mode. A Fast Bresenham Type Algorithm For Drawing filled ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf Uses a different parameter representation than DrawEllipse(). The BitmapContext. The x-coordinate of the ellipses center. The y-coordinate of the ellipses center. The radius of the ellipse in x-direction. The radius of the ellipse in y-direction. The color for the line. The blend mode. BlendMode.Alpha is the default mode. Draws a filled polygon. Add the first point also at the end of the array if the line should be closed. The WriteableBitmap. The points of the polygon in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, ..., xn, yn). The color for the fill. The blend mode. Default is Alpha Draws a colored line by connecting two points using the Bresenham algorithm. The BitmapContext. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the end point. The y-coordinate of the end point. The color for the line. A Fast Bresenham Type Algorithm For Drawing Ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf Uses a different parameter representation than DrawEllipse(). The BitmapContext. The x-coordinate of the ellipses center. The y-coordinate of the ellipses center. The radius of the ellipse in x-direction. The radius of the ellipse in y-direction. The color for the line. /// The thickness for the line. Sets the color of the pixel. For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The BitmapContext. The width of the bitmap. The height of the bitmap. The x coordinate (row). The y coordinate (column). The color. Fills the whole WriteableBitmap with a color. The WriteableBitmap. The color used for filling. Fills the whole WriteableBitmap with an empty color (0). The WriteableBitmap. Clones the specified WriteableBitmap. The WriteableBitmap. A copy of the WriteableBitmap. Applies the given function to all the pixels of the bitmap in order to set their color. The WriteableBitmap. The function to apply. With parameters x, y and a color as a result Applies the given function to all the pixels of the bitmap in order to set their color. The WriteableBitmap. The function to apply. With parameters x, y, source color and a color as a result Gets the color of the pixel at the x, y coordinate as integer. For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The x coordinate of the pixel. The y coordinate of the pixel. The color of the pixel at x, y. Gets the color of the pixel at the x, y coordinate as a Color struct. For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The x coordinate of the pixel. The y coordinate of the pixel. The color of the pixel at x, y as a Color struct. Gets the brightness / luminance of the pixel at the x, y coordinate as byte. The WriteableBitmap. The x coordinate of the pixel. The y coordinate of the pixel. The brightness of the pixel at x, y. Sets the color of the pixel using a precalculated index (faster). For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The coordinate index. The red value of the color. The green value of the color. The blue value of the color. Sets the color of the pixel. For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The x coordinate (row). The y coordinate (column). The red value of the color. The green value of the color. The blue value of the color. Sets the color of the pixel including the alpha value and using a precalculated index (faster). For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The coordinate index. The alpha value of the color. The red value of the color. The green value of the color. The blue value of the color. Sets the color of the pixel including the alpha value. For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The x coordinate (row). The y coordinate (column). The alpha value of the color. The red value of the color. The green value of the color. The blue value of the color. Sets the color of the pixel using a precalculated index (faster). For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The coordinate index. The color. Sets the color of the pixel. For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The x coordinate (row). The y coordinate (column). The color. Sets the color of the pixel using an extra alpha value and a precalculated index (faster). For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The coordinate index. The alpha value of the color. The color. Sets the color of the pixel using an extra alpha value. For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The x coordinate (row). The y coordinate (column). The alpha value of the color. The color. Sets the color of the pixel using a precalculated index (faster). For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The coordinate index. The color. Sets the color of the pixel. For best performance this method should not be used in iterative real-time scenarios. Implement the code directly inside a loop. The WriteableBitmap. The x coordinate (row). The y coordinate (column). The color. The blending mode. Alpha blendiing uses the alpha channel to combine the source and destination. Additive blending adds the colors of the source and the destination. Subtractive blending subtracts the source color from the destination. Uses the source color as a mask. Multiplies the source color with the destination color. Ignores the specified Color No blending just copies the pixels from the source. Copies (blits) the pixels from the WriteableBitmap source to the destination WriteableBitmap (this). The destination WriteableBitmap. The rectangle that defines the destination region. The source WriteableBitmap. The rectangle that will be copied from the source to the destination. The blending mode . Copies (blits) the pixels from the WriteableBitmap source to the destination WriteableBitmap (this). The destination WriteableBitmap. The rectangle that defines the destination region. The source WriteableBitmap. The rectangle that will be copied from the source to the destination. Copies (blits) the pixels from the WriteableBitmap source to the destination WriteableBitmap (this). The destination WriteableBitmap. The destination position in the destination bitmap. The source WriteableBitmap. The rectangle that will be copied from the source to the destination. If not Colors.White, will tint the source image. A partially transparent color and the image will be drawn partially transparent. The blending mode . Copies the Pixels from the WriteableBitmap into a ARGB byte array starting at a specific Pixels index. The WriteableBitmap. The starting Pixels index. The number of Pixels to copy, -1 for all The color buffer as byte ARGB values. Copies the Pixels from the WriteableBitmap into a ARGB byte array. The WriteableBitmap. The number of pixels to copy. The color buffer as byte ARGB values. Copies all the Pixels from the WriteableBitmap into a ARGB byte array. The WriteableBitmap. The color buffer as byte ARGB values. Copies color information from an ARGB byte array into this WriteableBitmap starting at a specific buffer index. The WriteableBitmap. The starting index in the buffer. The number of bytes to copy from the buffer. The color buffer as byte ARGB values. The WriteableBitmap that was passed as parameter. Copies color information from an ARGB byte array into this WriteableBitmap. The WriteableBitmap. The number of bytes to copy from the buffer. The color buffer as byte ARGB values. The WriteableBitmap that was passed as parameter. Copies all the color information from an ARGB byte array into this WriteableBitmap. The WriteableBitmap. The color buffer as byte ARGB values. The WriteableBitmap that was passed as parameter. Writes the WriteableBitmap as a TGA image to a stream. Used with permission from Nokola: http://nokola.com/blog/post/2010/01/21/Quick-and-Dirty-Output-of-WriteableBitmap-as-TGA-Image.aspx The WriteableBitmap. The destination stream. Loads an image from the applications resource file and returns a new WriteableBitmap. The passed WriteableBitmap is not used. The WriteableBitmap. Only the relative path to the resource file. The assembly name is retrieved automatically. A new WriteableBitmap containing the pixel data. Loads an image from the applications content and returns a new WriteableBitmap. The passed WriteableBitmap is not used. The WriteableBitmap. Only the relative path to the content file. A new WriteableBitmap containing the pixel data. Loads the data from an image stream and returns a new WriteableBitmap. The passed WriteableBitmap is not used. The WriteableBitmap. The stream with the image data. A new WriteableBitmap containing the pixel data. Draws a filled rectangle using . x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color. Draws a filled rectangle using . x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color. Draws a filled rectangle with the specified . x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color. The blend mode. A Fast Bresenham Type Algorithm For Drawing filled ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color for the line. A Fast Bresenham Type Algorithm For Drawing filled ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color for the line. A Fast Bresenham Type Algorithm For Drawing filled ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf Uses a different parameter representation than DrawEllipse(). The WriteableBitmap. The x-coordinate of the ellipses center. The y-coordinate of the ellipses center. The radius of the ellipse in x-direction. The radius of the ellipse in y-direction. The color for the line. A Fast Bresenham Type Algorithm For Drawing filled ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf Uses a different parameter representation than DrawEllipse(). The WriteableBitmap. The x-coordinate of the ellipses center. The y-coordinate of the ellipses center. The radius of the ellipse in x-direction. The radius of the ellipse in y-direction. The color for the line. A Fast Bresenham Type Algorithm For Drawing filled ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf Uses a different parameter representation than DrawEllipse(). The WriteableBitmap. The x-coordinate of the ellipses center. The y-coordinate of the ellipses center. The radius of the ellipse in x-direction. The radius of the ellipse in y-direction. The color for the line. The blend mode. Draws a filled polygon. Add the first point also at the end of the array if the line should be closed. The WriteableBitmap. The points of the polygon in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, ..., xn, yn). The color for the line. Draws a filled polygon. Add the first point also at the end of the array if the line should be closed. The WriteableBitmap. The points of the polygon in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, ..., xn, yn). The color for the line. Draws a filled polygon. Add the first point also at the end of the array if the line should be closed. The WriteableBitmap. The points of the polygon in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, ..., xn, yn). The color for the line. The blend mode. Default is Alpha Draws a filled quad. The WriteableBitmap. The x-coordinate of the 1st point. The y-coordinate of the 1st point. The x-coordinate of the 2nd point. The y-coordinate of the 2nd point. The x-coordinate of the 3rd point. The y-coordinate of the 3rd point. The x-coordinate of the 4th point. The y-coordinate of the 4th point. The color. Draws a filled quad. The WriteableBitmap. The x-coordinate of the 1st point. The y-coordinate of the 1st point. The x-coordinate of the 2nd point. The y-coordinate of the 2nd point. The x-coordinate of the 3rd point. The y-coordinate of the 3rd point. The x-coordinate of the 4th point. The y-coordinate of the 4th point. The color. Draws a filled triangle. The WriteableBitmap. The x-coordinate of the 1st point. The y-coordinate of the 1st point. The x-coordinate of the 2nd point. The y-coordinate of the 2nd point. The x-coordinate of the 3rd point. The y-coordinate of the 3rd point. The color. Draws a filled triangle. The WriteableBitmap. The x-coordinate of the 1st point. The y-coordinate of the 1st point. The x-coordinate of the 2nd point. The y-coordinate of the 2nd point. The x-coordinate of the 3rd point. The y-coordinate of the 3rd point. The color. Draws a series of filled, cubic Bezier splines each defined by start, end and two control points. The ending point of the previous curve is used as starting point for the next. Therfore the inital curve needs four points and the subsequent 3 (2 control and 1 end point). The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, cx1, cy1, cx2, cy2, x2, y2, cx3, cx4 ..., xn, yn). The color for the spline. Draws a series of filled, cubic Bezier splines each defined by start, end and two control points. The ending point of the previous curve is used as starting point for the next. Therfore the inital curve needs four points and the subsequent 3 (2 control and 1 end point). The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, cx1, cy1, cx2, cy2, x2, y2, cx3, cx4 ..., xn, yn). The color for the spline. Draws a filled Cardinal spline (cubic) defined by a point collection. The cardinal spline passes through each point in the collection. The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, x3, y3, x4, y4, x1, x2 ..., xn, yn). The tension of the curve defines the shape. Usually between 0 and 1. 0 would be a straight line. The color for the spline. Draws a filled Cardinal spline (cubic) defined by a point collection. The cardinal spline passes through each point in the collection. The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, x3, y3, x4, y4, x1, x2 ..., xn, yn). The tension of the curve defines the shape. Usually between 0 and 1. 0 would be a straight line. The color for the spline. Draws a filled, closed Cardinal spline (cubic) defined by a point collection. The cardinal spline passes through each point in the collection. The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, x3, y3, x4, y4, x1, x2 ..., xn, yn). The tension of the curve defines the shape. Usually between 0 and 1. 0 would be a straight line. The color for the spline. Draws a filled, closed Cardinal spline (cubic) defined by a point collection. The cardinal spline passes through each point in the collection. The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, x3, y3, x4, y4, x1, x2 ..., xn, yn). The tension of the curve defines the shape. Usually between 0 and 1. 0 would be a straight line. The color for the spline. Gaussian blur kernel with the size 5x5 Gaussian blur kernel with the size 3x3 Sharpen kernel with the size 3x3 Creates a new filtered WriteableBitmap. The WriteableBitmap. The kernel used for convolution. A new WriteableBitmap that is a filtered version of the input. Creates a new filtered WriteableBitmap. The WriteableBitmap. The kernel used for convolution. The factor used for the kernel summing. The offset used for the kernel summing. A new WriteableBitmap that is a filtered version of the input. Creates a new inverted WriteableBitmap and returns it. The WriteableBitmap. The new inverted WriteableBitmap. Alpha blends 2 premultiplied colors with each other Source alpha color component Premultiplied source red color component Premultiplied source green color component Premultiplied source blue color component Premultiplied destination color Premultiplied blended color value Draws an anti-aliased, alpha blended, colored line by connecting two points using Wu's antialiasing algorithm Uses the pixels array and the width directly for best performance. An array containing the pixels as int RGBA value. The width of one scanline in the pixels array. The height of the bitmap. The x0. The y0. The x1. The y1. Alpha color component Premultiplied red color component Premultiplied green color component Premultiplied blue color component Draws a colored line by connecting two points using the Bresenham algorithm. The WriteableBitmap. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the end point. The y-coordinate of the end point. The color for the line. Draws a colored line by connecting two points using the Bresenham algorithm. The WriteableBitmap. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the end point. The y-coordinate of the end point. The color for the line. Draws a colored line by connecting two points using a DDA algorithm (Digital Differential Analyzer). The WriteableBitmap. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the end point. The y-coordinate of the end point. The color for the line. Draws a colored line by connecting two points using a DDA algorithm (Digital Differential Analyzer). The WriteableBitmap. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the end point. The y-coordinate of the end point. The color for the line. Draws a colored line by connecting two points using an optimized DDA. The WriteableBitmap. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the end point. The y-coordinate of the end point. The color for the line. Draws a colored line by connecting two points using an optimized DDA. The WriteableBitmap. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the end point. The y-coordinate of the end point. The color for the line. Draws a colored line by connecting two points using an optimized DDA. Uses the pixels array and the width directly for best performance. The context containing the pixels as int RGBA value. The width of one scanline in the pixels array. The height of the bitmap. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the end point. The y-coordinate of the end point. The color for the line. Draws an anti-aliased line, using an optimized version of Gupta-Sproull algorithm From http://nokola.com/blog/post/2010/10/14/Anti-aliased-Lines-And-Optimizing-Code-for-Windows-Phone-7e28093First-Look.aspx The WriteableBitmap.The x-coordinate of the start point.The y-coordinate of the start point.The x-coordinate of the end point.The y-coordinate of the end point.The color for the line. Draws an anti-aliased line, using an optimized version of Gupta-Sproull algorithm From http://nokola.com/blog/post/2010/10/14/Anti-aliased-Lines-And-Optimizing-Code-for-Windows-Phone-7e28093First-Look.aspx The WriteableBitmap.The x-coordinate of the start point.The y-coordinate of the start point.The x-coordinate of the end point.The y-coordinate of the end point.The color for the line. Draws an anti-aliased line, using an optimized version of Gupta-Sproull algorithm From http://nokola.com/blog/post/2010/10/14/Anti-aliased-Lines-And-Optimizing-Code-for-Windows-Phone-7e28093First-Look.aspx The context containing the pixels as int RGBA value.The width of one scanline in the pixels array.The height of the bitmap.The x-coordinate of the start point.The y-coordinate of the start point.The x-coordinate of the end point.The y-coordinate of the end point.The color for the line. The context. Width of the pixel. Height of the pixel. The x1. The y1. The x2. The y2. The color. if set to true skip first pixel. Draws a polyline. Add the first point also at the end of the array if the line should be closed. The WriteableBitmap. The points of the polyline in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, ..., xn, yn). The color for the line. Draws a polyline. Add the first point also at the end of the array if the line should be closed. The WriteableBitmap. The points of the polyline in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, ..., xn, yn). The color for the line. Draws a triangle. The WriteableBitmap. The x-coordinate of the 1st point. The y-coordinate of the 1st point. The x-coordinate of the 2nd point. The y-coordinate of the 2nd point. The x-coordinate of the 3rd point. The y-coordinate of the 3rd point. The color. Draws a triangle. The WriteableBitmap. The x-coordinate of the 1st point. The y-coordinate of the 1st point. The x-coordinate of the 2nd point. The y-coordinate of the 2nd point. The x-coordinate of the 3rd point. The y-coordinate of the 3rd point. The color. Draws a quad. The WriteableBitmap. The x-coordinate of the 1st point. The y-coordinate of the 1st point. The x-coordinate of the 2nd point. The y-coordinate of the 2nd point. The x-coordinate of the 3rd point. The y-coordinate of the 3rd point. The x-coordinate of the 4th point. The y-coordinate of the 4th point. The color. Draws a quad. The WriteableBitmap. The x-coordinate of the 1st point. The y-coordinate of the 1st point. The x-coordinate of the 2nd point. The y-coordinate of the 2nd point. The x-coordinate of the 3rd point. The y-coordinate of the 3rd point. The x-coordinate of the 4th point. The y-coordinate of the 4th point. The color. Draws a rectangle. x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color. Draws a rectangle. x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color. A Fast Bresenham Type Algorithm For Drawing Ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color for the line. A Fast Bresenham Type Algorithm For Drawing Ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color for the line. A Fast Bresenham Type Algorithm For Drawing Ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf Uses a different parameter representation than DrawEllipse(). The WriteableBitmap. The x-coordinate of the ellipses center. The y-coordinate of the ellipses center. The radius of the ellipse in x-direction. The radius of the ellipse in y-direction. The color for the line. A Fast Bresenham Type Algorithm For Drawing Ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf Uses a different parameter representation than DrawEllipse(). The WriteableBitmap. The x-coordinate of the ellipses center. The y-coordinate of the ellipses center. The radius of the ellipse in x-direction. The radius of the ellipse in y-direction. The color for the line. A Fast Bresenham Type Algorithm For Drawing Ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color for the line. The thickness for the line. A Fast Bresenham Type Algorithm For Drawing Ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf x2 has to be greater than x1 and y2 has to be greater than y1. The WriteableBitmap. The x-coordinate of the bounding rectangle's left side. The y-coordinate of the bounding rectangle's top side. The x-coordinate of the bounding rectangle's right side. The y-coordinate of the bounding rectangle's bottom side. The color for the line. The thickness for the line. A Fast Bresenham Type Algorithm For Drawing Ellipses http://homepage.smc.edu/kennedy_john/belipse.pdf Uses a different parameter representation than DrawEllipse(). The BitmapContext. The x-coordinate of the ellipses center. The y-coordinate of the ellipses center. The radius of the ellipse in x-direction. The radius of the ellipse in y-direction. The color for the line. /// The thickness for the line. Draws a cubic Beziér spline defined by start, end and two control points. The WriteableBitmap. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the 1st control point. The y-coordinate of the 1st control point. The x-coordinate of the 2nd control point. The y-coordinate of the 2nd control point. The x-coordinate of the end point. The y-coordinate of the end point. The color. Draws a cubic Beziér spline defined by start, end and two control points. The WriteableBitmap. The x-coordinate of the start point. The y-coordinate of the start point. The x-coordinate of the 1st control point. The y-coordinate of the 1st control point. The x-coordinate of the 2nd control point. The y-coordinate of the 2nd control point. The x-coordinate of the end point. The y-coordinate of the end point. The color. Draws a series of cubic Beziér splines each defined by start, end and two control points. The ending point of the previous curve is used as starting point for the next. Therfore the inital curve needs four points and the subsequent 3 (2 control and 1 end point). The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, cx1, cy1, cx2, cy2, x2, y2, cx3, cx4 ..., xn, yn). The color for the spline. Draws a series of cubic Beziér splines each defined by start, end and two control points. The ending point of the previous curve is used as starting point for the next. Therfore the inital curve needs four points and the subsequent 3 (2 control and 1 end point). The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, cx1, cy1, cx2, cy2, x2, y2, cx3, cx4 ..., xn, yn). The color for the spline. Draws a Cardinal spline (cubic) defined by a point collection. The cardinal spline passes through each point in the collection. The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, x3, y3, x4, y4, x1, x2 ..., xn, yn). The tension of the curve defines the shape. Usually between 0 and 1. 0 would be a straight line. The color for the spline. Draws a Cardinal spline (cubic) defined by a point collection. The cardinal spline passes through each point in the collection. The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, x3, y3, x4, y4, x1, x2 ..., xn, yn). The tension of the curve defines the shape. Usually between 0 and 1. 0 would be a straight line. The color for the spline. Draws a closed Cardinal spline (cubic) defined by a point collection. The cardinal spline passes through each point in the collection. The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, x3, y3, x4, y4, x1, x2 ..., xn, yn). The tension of the curve defines the shape. Usually between 0 and 1. 0 would be a straight line. The color for the spline. Draws a closed Cardinal spline (cubic) defined by a point collection. The cardinal spline passes through each point in the collection. The WriteableBitmap. The points for the curve in x and y pairs, therefore the array is interpreted as (x1, y1, x2, y2, x3, y3, x4, y4, x1, x2 ..., xn, yn). The tension of the curve defines the shape. Usually between 0 and 1. 0 would be a straight line. The color for the spline. The interpolation method. The nearest neighbor algorithm simply selects the color of the nearest pixel. Linear interpolation in 2D using the average of 3 neighboring pixels. The mode for flipping. Flips the image vertical (around the center of the y-axis). Flips the image horizontal (around the center of the x-axis). Creates a new cropped WriteableBitmap. The WriteableBitmap. The x coordinate of the rectangle that defines the crop region. The y coordinate of the rectangle that defines the crop region. The width of the rectangle that defines the crop region. The height of the rectangle that defines the crop region. A new WriteableBitmap that is a cropped version of the input. Creates a new cropped WriteableBitmap. The WriteableBitmap. The rectangle that defines the crop region. A new WriteableBitmap that is a cropped version of the input. Creates a new resized WriteableBitmap. The WriteableBitmap. The new desired width. The new desired height. The interpolation method that should be used. A new WriteableBitmap that is a resized version of the input. Creates a new resized bitmap. The source context. The width of the source pixels. The height of the source pixels. The new desired width. The new desired height. The interpolation method that should be used. A new bitmap that is a resized version of the input. Creates a new resized bitmap. The source pixels. The width of the source pixels. The height of the source pixels. The new desired width. The new desired height. The interpolation method that should be used. A new bitmap that is a resized version of the input. Rotates the bitmap in 90° steps clockwise and returns a new rotated WriteableBitmap. The WriteableBitmap. The angle in degress the bitmap should be rotated in 90° steps clockwise. A new WriteableBitmap that is a rotated version of the input. Rotates the bitmap in any degree returns a new rotated WriteableBitmap. The WriteableBitmap. Arbitrary angle in 360 Degrees (positive = clockwise). if true: keep the size, false: adjust canvas to new size A new WriteableBitmap that is a rotated version of the input. Flips (reflects the image) eiter vertical or horizontal. The WriteableBitmap. The flip mode. A new WriteableBitmap that is a flipped version of the input. Read Write Mode for the BitmapContext. On Dispose of a BitmapContext, do not Invalidate On Dispose of a BitmapContext, invalidate the bitmap A disposable cross-platform wrapper around a WriteableBitmap, allowing a common API for Silverlight + WPF with locking + unlocking if necessary Attempting to put as many preprocessor hacks in this file, to keep the rest of the codebase relatively clean The Bitmap Width of the bitmap Height of the bitmap Creates an instance of a BitmapContext, with default mode = ReadWrite Creates an instance of a BitmapContext, with specified ReadWriteMode The pixels as ARGB integer values, where each channel is 8 bit. The number of pixels. Performs a Copy operation from source Bto destination BitmapContext Equivalent to calling Buffer.BlockCopy in Silverlight, or native memcpy in WPF Performs a Copy operation from source BitmapContext to destination Array Equivalent to calling Buffer.BlockCopy in Silverlight, or native memcpy in WPF Performs a Copy operation from source BitmapContext to destination Array Equivalent to calling Buffer.BlockCopy in Silverlight, or native memcpy in WPF Performs a Copy operation from source Array to destination BitmapContext Equivalent to calling Buffer.BlockCopy in Silverlight, or native memcpy in WPF Performs a Copy operation from source Array to destination BitmapContext Equivalent to calling Buffer.BlockCopy in Silverlight, or native memcpy in WPF Clears the BitmapContext, filling the underlying bitmap with zeros Disposes the BitmapContext, unlocking it and invalidating if WPF Cross-platform factory for WriteableBitmaps Creates a new WriteableBitmap of the specified width and height For WPF the default DPI is 96x96 and PixelFormat is Pbgra32 Converts the input BitmapSource to the Pbgra32 format WriteableBitmap which is internally used by the WriteableBitmapEx. The source bitmap. Provides the WriteableBitmap context pixel data Gets a BitmapContext within which to perform nested IO operations on the bitmap For WPF the BitmapContext will lock the bitmap. Call Dispose on the context to unlock Gets a BitmapContext within which to perform nested IO operations on the bitmap For WPF the BitmapContext will lock the bitmap. Call Dispose on the context to unlock The bitmap. The ReadWriteMode. If set to ReadOnly, the bitmap will not be invalidated on dispose of the context, else it will Returns a pointer to the first element of the specified instance. The instance. A pointer to the first element of v. Returns a pointer to the first element of the specified instance. The instance. A pointer to the first element of v.