sorry, here сб, 22 окт. 2022 г. в 21:23, : > > gmail's web interfaces replaces tabs with spaces, > so this patch will not apply; can you resend as an > attachment? > > Quoth an2qzavok : > > Discs and circles were drawn on screen directly and later erased by > > offscreen buffer. > > This change puts them in line with other operations, which draw to > > offscreen first and to screen when necessary > > > > diff dfee08d50df674cd76f74320bc9c8bc6a4a95f1e uncommitted > > --- a/sys/src/cmd/plot/libplot/circ.c > > +++ b/sys/src/cmd/plot/libplot/circ.c > > @@ -8,5 +8,5 @@ > > rad=SCR(-r); > > else > > rad=SCR(r); > > - ellipse(screen, p, rad, rad, 0, getcolor(e1->foregr), ZP); > > + m_circ(p, rad, e1->foregr); > > } > > --- a/sys/src/cmd/plot/libplot/disk.c > > +++ b/sys/src/cmd/plot/libplot/disk.c > > @@ -8,5 +8,5 @@ > > rad=SCR(-r); > > else > > rad=SCR(r); > > - fillellipse(screen, p, rad, rad, getcolor(e1->foregr), ZP); > > + m_disc(p, rad, e1->foregr); > > } > > --- a/sys/src/cmd/plot/libplot/machdep.c > > +++ b/sys/src/cmd/plot/libplot/machdep.c > > @@ -34,6 +34,29 @@ > > if(offscreen != screen && !buffer) > > draw(screen, xlr(Rect(x0, y0, x1+1, y1+1)), getcolor(c), nil, ZP); > > } > > + > > +/* > > + * Draw circle at point p with radius rad in color c > > + */ > > +void > > +m_circ(Point p, int rad, int c) > > +{ > > + ellipse(offscreen, p, rad, rad, 0, getcolor(c), ZP); > > + if (offscreen != screen && !buffer) > > + ellipse(screen, p, rad, rad, 0, getcolor(c), ZP); > > +} > > + > > +/* > > + * Draw disc (filled circle) at point p with radius rad in color c > > + */ > > +void > > +m_disc(Point p, int rad, int c) > > +{ > > + fillellipse(offscreen, p, rad, rad, getcolor(c), ZP); > > + if (offscreen != screen && !buffer) > > + fillellipse(screen, p, rad, rad, getcolor(c), ZP); > > +} > > + > > /* > > * Draw text between pointers p and q with first character centered at x, y. > > * Use color c. Centered if cen is non-zero, right-justified if > > right is non-zero. > > --- a/sys/src/cmd/plot/libplot/mplot.h > > +++ b/sys/src/cmd/plot/libplot/mplot.h > > @@ -36,6 +36,8 @@ > > */ > > #include "../plot.h" > > void m_clrwin(int, int, int, int, int); > > +void m_circ(Point, int, int); > > +void m_disc(Point, int, int); > > void m_finish(void); > > void m_initialize(char *); > > int m_text(int, int, char *, char *, int, int, int); >