From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 17710 invoked from network); 22 Oct 2022 16:24:27 -0000 Received: from 9front.inri.net (168.235.81.73) by inbox.vuxu.org with ESMTPUTF8; 22 Oct 2022 16:24:27 -0000 Received: from mail-wm1-f48.google.com ([209.85.128.48]) by 9front; Sat Oct 22 12:23:16 -0400 2022 Received: by mail-wm1-f48.google.com with SMTP id bg9-20020a05600c3c8900b003bf249616b0so3969999wmb.3 for <9front@9front.org>; Sat, 22 Oct 2022 09:23:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=XzcWokCOz/eqmUlb9wDck1wUpvWl/YUX3mBOiNF393Y=; b=aZaSonftnZL82LjTw1VTcp8AuEdAgHUw7a78gpKSVtSDDR6ifu5ECIswuRTCMCXrFr Weuxij8JwwfVkZsnTA1AWRvAc1X6E8pWrCiOSgU6EVP8JRDkyc7LvvZR2gPV/Sk7bz/P jayiX15BwY9e53E4gW6HCaWwAA4Qb04Kc6cXob88bQe0IJZ5r0bbb0t9PZi7fapxe13T RYrFhM65ZHa8PoyN/7AOoLdVdyKpzmLoZT3e1rQzG/dsk4nMSxsSQsL/I7r7U+HPdNDk UT82vntqW7Hb8M73p/jV6IzGOSX+oKvS6BC+F8Jc7Bd2EceT1EmHkdAFFtu3iQAowyFQ fGDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=XzcWokCOz/eqmUlb9wDck1wUpvWl/YUX3mBOiNF393Y=; b=iOE79iqbJNpRNO+wWGK2B1DXLUeRdTjC95MxJN78zCgVBkKQRybVGCp/pR3zuiGLMT eqqFNaSvpwYctd69dT+qHRxpUwjT21X989YUVnIxHagtdFrsq1GHuiMLib5yJ90Ws20e RFgPBRHKTNpSVYlaNERo/Mm3IEOKrMhXkS+48LMAaXyMNhfprhSIQ0K1eRqXyowhINrW 63EP9GXen9bKEs/uJF6uJTcGypttfYVZDokX887uPC7BKYR0l3xg8NKlgYfp5DBumtou slMZa+q5hjtbVfu5bPSSZobtymAYvkVTnVZ/+KaN7+F6yLh1WCd54Y+EjVY0Sr4kmzrn qc6A== X-Gm-Message-State: ACrzQf30yvcCIB5I/l1pnixZy1hSnbNFkg+yZFIR7zZouszmVUbBljOx idPQbEMwtqfOTDfQSOadRqDbafhRkfq/DeEALmLlYLBCQmw= X-Google-Smtp-Source: AMsMyM5zUto0hshqoIfKDjKPx53JnBifHABt9N8Zu/g26ozyOEQYQOe4uDi8dQSev0t3vjFxEfLvHqZn4Er0TNVv2Dg= X-Received: by 2002:a05:600c:190c:b0:3cc:b6ab:7f3a with SMTP id j12-20020a05600c190c00b003ccb6ab7f3amr1175689wmq.4.1666455790922; Sat, 22 Oct 2022 09:23:10 -0700 (PDT) MIME-Version: 1.0 From: an2qzavok Date: Sat, 22 Oct 2022 19:22:59 +0300 Message-ID: To: 9front@9front.org Content-Type: text/plain; charset="UTF-8" List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: lossless wrapper SSL over SSL singleton self-signing locator Subject: [9front] [PATCH] plot: fix disc and circle operations Reply-To: 9front@9front.org Precedence: bulk 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);