I tried changing the body of Gnoga.Gui.Element.Canvas.Context_2D.Plotting.Graph to
procedure Graph (Plot : in out Plot_Info; List : in Point_List; Color : in Gnoga.Types.RGBA_Type := Black) is Context : Context_2D_Type; begin -- Graph if List'Length > 1 then Context.Get_Drawing_Context_2D (Canvas => Plot); Context.Begin_Path; Context.Stroke_Color (Value => Color); Context.Move_To (X => Plot.Scale_X (List (List'First).X), Y => Plot.Scale_Y (List (List'First).Y)); All_Points : for I in List'First + 1 .. List'Last loop -- Plot.Line (From => List (I), To => List (I + 1), Color => Color); Context.Line_To (X => Plot.Scale_X (List (I).X), Y => Plot.Scale_Y (List (I).Y)); end loop All_Points; Context.Stroke; end if; end Graph; in hopes that it would be faster than calling Line for each pair of points. Maybe it is a little faster, but in Plot_Test the call to Graph to plot the Mexican-hat function results in the screen remaining unchanged for several seconds, followed by the entire curve appearing. This feels at least as long as drawing each segment individually, so I prefer the existing version which at least provides feedback that it's doing something. What do others think about this? -- Jeff Carter "He didn't get that nose from playing ping-pong." Never Give a Sucker an Even Break 110 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Gnoga-list mailing list Gnoga-list@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gnoga-list