do_arcs.c revision 533545b5
1264fa531Smrg/***************************************************************************** 2264fa531SmrgCopyright 1988, 1989 by Digital Equipment Corporation, Maynard, Massachusetts. 3264fa531Smrg 4264fa531Smrg All Rights Reserved 5264fa531Smrg 6264fa531SmrgPermission to use, copy, modify, and distribute this software and its 7264fa531Smrgdocumentation for any purpose and without fee is hereby granted, 8264fa531Smrgprovided that the above copyright notice appear in all copies and that 9264fa531Smrgboth that copyright notice and this permission notice appear in 10264fa531Smrgsupporting documentation, and that the name of Digital not be 11264fa531Smrgused in advertising or publicity pertaining to distribution of the 12264fa531Smrgsoftware without specific, written prior permission. 13264fa531Smrg 14264fa531SmrgDIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 15264fa531SmrgALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL 16264fa531SmrgDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR 17264fa531SmrgANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 18264fa531SmrgWHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 19264fa531SmrgARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 20264fa531SmrgSOFTWARE. 21264fa531Smrg 22264fa531Smrg******************************************************************************/ 23264fa531Smrg 24264fa531Smrg#include "x11perf.h" 25264fa531Smrg 26264fa531Smrgstatic XArc *arcs; 27264fa531Smrgstatic GC pgc; 28264fa531Smrg 29264fa531Smrg#define DegreesToX(degrees) (degrees * 64) 30264fa531Smrg 31264fa531Smrgstatic void 32264fa531SmrgGenerateCircles(XParms xp, Parms p, Bool partialArcs, Bool ddashed) 33264fa531Smrg{ 34264fa531Smrg int i; 35264fa531Smrg int rows; /* Number of rows filled in current column */ 36264fa531Smrg int x, y; /* base of square to draw the circle in */ 37264fa531Smrg int xorg, yorg; /* Used to get from column to column or row to row */ 38264fa531Smrg int size; 39264fa531Smrg int half; 40264fa531Smrg int startAngle, arcAngle; 41264fa531Smrg 42264fa531Smrg if(ddashed) 43264fa531Smrg pgc = xp->ddfggc; 44264fa531Smrg else 45264fa531Smrg pgc = xp->fggc; 46264fa531Smrg 47264fa531Smrg size = p->special; 48264fa531Smrg half = (size + 19) / 20; 49264fa531Smrg arcs = (XArc *)malloc((p->objects) * sizeof(XArc)); 50264fa531Smrg x = xorg = half; y = yorg = half; 51264fa531Smrg rows = 0; 52264fa531Smrg startAngle = DegreesToX(0); 53264fa531Smrg arcAngle = DegreesToX(360); 54264fa531Smrg 55264fa531Smrg for (i = 0; i != p->objects; i++) { 56264fa531Smrg arcs[i].x = x; 57264fa531Smrg arcs[i].y = y; 58264fa531Smrg arcs[i].width = size; 59264fa531Smrg arcs[i].height = size; 60264fa531Smrg arcs[i].angle1 = startAngle; 61264fa531Smrg arcs[i].angle2 = arcAngle; 62264fa531Smrg 63264fa531Smrg if (partialArcs) { 64264fa531Smrg startAngle += DegreesToX(30); 65264fa531Smrg if (startAngle >= DegreesToX(360)) startAngle -= DegreesToX(360); 66264fa531Smrg arcAngle -= DegreesToX(20); 67264fa531Smrg if (arcAngle <= DegreesToX(0)) arcAngle += DegreesToX(360); 68264fa531Smrg } 69264fa531Smrg 70264fa531Smrg y += size + 1; 71264fa531Smrg rows++; 72264fa531Smrg if (y >= HEIGHT - size - half || rows == MAXROWS) { 73264fa531Smrg /* Go to next column */ 74264fa531Smrg rows = 0; 75264fa531Smrg x += size + 1; 76264fa531Smrg if (x >= WIDTH - size) { 77264fa531Smrg yorg++; 78264fa531Smrg if (yorg >= size + half || yorg >= HEIGHT - size - half) { 79264fa531Smrg yorg = half; 80264fa531Smrg xorg++; 81264fa531Smrg if (xorg >= size + half || xorg >= WIDTH - size - half) { 82264fa531Smrg xorg = half; 83264fa531Smrg } 84264fa531Smrg } 85264fa531Smrg x = xorg; 86264fa531Smrg } 87264fa531Smrg y = yorg; 88264fa531Smrg } 89264fa531Smrg } 90264fa531Smrg} 91264fa531Smrg 92264fa531Smrgint 93533545b5SmrgInitCircles(XParms xp, Parms p, int64_t reps) 94264fa531Smrg{ 95264fa531Smrg GenerateCircles(xp, p, False, False); 96264fa531Smrg return reps; 97264fa531Smrg} 98264fa531Smrg 99264fa531Smrgint 100533545b5SmrgInitPartCircles(XParms xp, Parms p, int64_t reps) 101264fa531Smrg{ 102264fa531Smrg GenerateCircles(xp, p, True, False); 103264fa531Smrg return reps; 104264fa531Smrg} 105264fa531Smrg 106264fa531Smrg 107264fa531Smrgint 108533545b5SmrgInitChordPartCircles(XParms xp, Parms p, int64_t reps) 109264fa531Smrg{ 110264fa531Smrg GenerateCircles(xp, p, True, False); 111264fa531Smrg XSetArcMode(xp->d, xp->bggc, ArcChord); 112264fa531Smrg XSetArcMode(xp->d, xp->fggc, ArcChord); 113264fa531Smrg return reps; 114264fa531Smrg} 115264fa531Smrg 116264fa531Smrg 117264fa531Smrgint 118533545b5SmrgInitSlicePartCircles(XParms xp, Parms p, int64_t reps) 119264fa531Smrg{ 120264fa531Smrg GenerateCircles(xp, p, True, False); 121264fa531Smrg XSetArcMode(xp->d, xp->bggc, ArcPieSlice); 122264fa531Smrg XSetArcMode(xp->d, xp->fggc, ArcPieSlice); 123264fa531Smrg return reps; 124264fa531Smrg} 125264fa531Smrg 126264fa531Smrgstatic void 127264fa531SmrgGenerateWideCircles(XParms xp, Parms p, Bool partialArcs, Bool ddashed) 128264fa531Smrg{ 129264fa531Smrg int size; 130264fa531Smrg 131264fa531Smrg GenerateCircles(xp, p, partialArcs, ddashed); 132264fa531Smrg 133264fa531Smrg size = p->special; 134264fa531Smrg if(ddashed) { 135264fa531Smrg XSetLineAttributes(xp->d, xp->ddbggc, (int) ((size + 9) / 10), 136264fa531Smrg LineSolid, CapRound, JoinRound); 137264fa531Smrg XSetLineAttributes(xp->d, xp->ddfggc, (int) ((size + 9) / 10), 138264fa531Smrg LineSolid, CapRound, JoinRound); 139264fa531Smrg } 140264fa531Smrg else { 141264fa531Smrg XSetLineAttributes(xp->d, xp->bggc, (int) ((size + 9) / 10), 142264fa531Smrg LineSolid, CapRound, JoinRound); 143264fa531Smrg XSetLineAttributes(xp->d, xp->fggc, (int) ((size + 9) / 10), 144264fa531Smrg LineSolid, CapRound, JoinRound); 145264fa531Smrg } 146264fa531Smrg} 147264fa531Smrg 148264fa531Smrgint 149533545b5SmrgInitWideCircles(XParms xp, Parms p, int64_t reps) 150264fa531Smrg{ 151264fa531Smrg GenerateWideCircles (xp, p, False, False); 152264fa531Smrg return reps; 153264fa531Smrg} 154264fa531Smrg 155264fa531Smrgint 156533545b5SmrgInitPartWideCircles(XParms xp, Parms p, int64_t reps) 157264fa531Smrg{ 158264fa531Smrg GenerateWideCircles (xp, p, True, False); 159264fa531Smrg return reps; 160264fa531Smrg} 161264fa531Smrg 162264fa531Smrgint 163533545b5SmrgInitDashedCircles(XParms xp, Parms p, int64_t reps) 164264fa531Smrg{ 165264fa531Smrg char dashes[2]; 166264fa531Smrg 167264fa531Smrg GenerateCircles(xp, p, False, False); 168264fa531Smrg 169264fa531Smrg /* Modify GCs to draw dashed */ 170264fa531Smrg XSetLineAttributes(xp->d, xp->bggc, 0, LineOnOffDash, CapButt, JoinMiter); 171264fa531Smrg XSetLineAttributes(xp->d, xp->fggc, 0, LineOnOffDash, CapButt, JoinMiter); 172264fa531Smrg dashes[0] = 3; dashes[1] = 2; 173264fa531Smrg XSetDashes(xp->d, xp->fggc, 0, dashes, 2); 174264fa531Smrg XSetDashes(xp->d, xp->bggc, 0, dashes, 2); 175264fa531Smrg return reps; 176264fa531Smrg} 177264fa531Smrg 178264fa531Smrgint 179533545b5SmrgInitWideDashedCircles(XParms xp, Parms p, int64_t reps) 180264fa531Smrg{ 181264fa531Smrg int size; 182264fa531Smrg XGCValues gcv; 183264fa531Smrg char dashes[2]; 184264fa531Smrg 185264fa531Smrg GenerateWideCircles(xp, p, False, False); 186264fa531Smrg size = p->special; 187264fa531Smrg size = (size + 9) / 10; 188264fa531Smrg 189264fa531Smrg /* Modify GCs to draw dashed */ 190264fa531Smrg dashes[0] = 2*size; dashes[1] = 2*size; 191264fa531Smrg gcv.line_style = LineOnOffDash; 192264fa531Smrg XChangeGC(xp->d, xp->fggc, GCLineStyle, &gcv); 193264fa531Smrg XChangeGC(xp->d, xp->bggc, GCLineStyle, &gcv); 194264fa531Smrg XSetDashes(xp->d, xp->fggc, 0, dashes, 2); 195264fa531Smrg XSetDashes(xp->d, xp->bggc, 0, dashes, 2); 196264fa531Smrg return reps; 197264fa531Smrg} 198264fa531Smrg 199264fa531Smrgint 200533545b5SmrgInitDoubleDashedCircles(XParms xp, Parms p, int64_t reps) 201264fa531Smrg{ 202264fa531Smrg char dashes[2]; 203264fa531Smrg 204264fa531Smrg GenerateCircles(xp, p, False, True); 205264fa531Smrg 206264fa531Smrg /* Modify GCs to draw dashed */ 207264fa531Smrg XSetLineAttributes(xp->d, xp->ddbggc, 0, LineDoubleDash, CapButt, JoinMiter); 208264fa531Smrg XSetLineAttributes(xp->d, xp->ddfggc, 0, LineDoubleDash, CapButt, JoinMiter); 209264fa531Smrg dashes[0] = 3; dashes[1] = 2; 210264fa531Smrg XSetDashes(xp->d, xp->ddfggc, 0, dashes, 2); 211264fa531Smrg XSetDashes(xp->d, xp->ddbggc, 0, dashes, 2); 212264fa531Smrg return reps; 213264fa531Smrg} 214264fa531Smrg 215264fa531Smrgint 216533545b5SmrgInitWideDoubleDashedCircles(XParms xp, Parms p, int64_t reps) 217264fa531Smrg{ 218264fa531Smrg int size; 219264fa531Smrg XGCValues gcv; 220264fa531Smrg char dashes[2]; 221264fa531Smrg 222264fa531Smrg GenerateWideCircles(xp, p, False, True); 223264fa531Smrg size = p->special; 224264fa531Smrg size = (size + 9) / 10; 225264fa531Smrg 226264fa531Smrg /* Modify GCs to draw dashed */ 227264fa531Smrg dashes[0] = 2*size; dashes[1] = 2*size; 228264fa531Smrg gcv.line_style = LineDoubleDash; 229264fa531Smrg XChangeGC(xp->d, xp->ddfggc, GCLineStyle, &gcv); 230264fa531Smrg XChangeGC(xp->d, xp->ddbggc, GCLineStyle, &gcv); 231264fa531Smrg XSetDashes(xp->d, xp->ddfggc, 0, dashes, 2); 232264fa531Smrg XSetDashes(xp->d, xp->ddbggc, 0, dashes, 2); 233264fa531Smrg return reps; 234264fa531Smrg} 235264fa531Smrg 236264fa531Smrgstatic void 237264fa531SmrgGenerateEllipses(XParms xp, Parms p, int partialArcs, Bool ddashed) 238264fa531Smrg{ 239264fa531Smrg int size; 240264fa531Smrg int half; 241264fa531Smrg int rows; /* Number of rows filled in current column */ 242264fa531Smrg int i; 243264fa531Smrg int x, y; /* base of square to draw ellipse in */ 244264fa531Smrg int vsize, vsizeinc; 245264fa531Smrg int dir; 246264fa531Smrg int startAngle, arcAngle; 247264fa531Smrg 248264fa531Smrg if(ddashed) 249264fa531Smrg pgc = xp->ddfggc; 250264fa531Smrg else 251264fa531Smrg pgc = xp->fggc; 252264fa531Smrg 253264fa531Smrg size = p->special; 254264fa531Smrg half = (size + 19) / 20; 255264fa531Smrg arcs = (XArc *)malloc((p->objects) * sizeof(XArc)); 256264fa531Smrg vsize = 1; 257264fa531Smrg vsizeinc = (size - 1) / (p->objects - 1); 258264fa531Smrg if (vsizeinc == 0) vsizeinc = 1; 259264fa531Smrg 260264fa531Smrg x = half; y = half; 261264fa531Smrg dir = 0; 262264fa531Smrg rows = 0; 263264fa531Smrg startAngle = DegreesToX(0); 264264fa531Smrg arcAngle = DegreesToX(360); 265264fa531Smrg 266264fa531Smrg for (i = 0; i != p->objects; i++) { 267264fa531Smrg arcs[i].x = x; 268264fa531Smrg arcs[i].y = y; 269264fa531Smrg if ((i & 1) ^ dir) { 270264fa531Smrg /* Make vertical axis longer */ 271264fa531Smrg arcs[i].width = vsize; 272264fa531Smrg arcs[i].height = size; 273264fa531Smrg } else { 274264fa531Smrg /* Make horizontal axis longer */ 275264fa531Smrg arcs[i].width = size; 276264fa531Smrg arcs[i].height = vsize; 277264fa531Smrg } 278264fa531Smrg arcs[i].angle1 = startAngle; 279264fa531Smrg arcs[i].angle2 = arcAngle; 280264fa531Smrg 281264fa531Smrg if (partialArcs) { 282264fa531Smrg startAngle += DegreesToX(30); 283264fa531Smrg if (startAngle >= DegreesToX(360)) startAngle -= DegreesToX(360); 284264fa531Smrg arcAngle -= DegreesToX(20); 285264fa531Smrg if (arcAngle <= DegreesToX(0)) arcAngle += DegreesToX(360); 286264fa531Smrg } 287264fa531Smrg 288264fa531Smrg y += size + 1; 289264fa531Smrg rows++; 290264fa531Smrg if (y >= HEIGHT - size - half || rows == MAXROWS) { 291264fa531Smrg /* Go to next column */ 292264fa531Smrg rows = 0; 293264fa531Smrg y = half; 294264fa531Smrg x += size + 1; 295264fa531Smrg if (x >= WIDTH - size - half) { 296264fa531Smrg x = half; 297264fa531Smrg } 298264fa531Smrg } 299264fa531Smrg 300264fa531Smrg vsize += vsizeinc; 301264fa531Smrg if (vsize > size) { 302264fa531Smrg vsize -= size; 303264fa531Smrg dir = 1 - dir; 304264fa531Smrg } 305264fa531Smrg } 306264fa531Smrg} 307264fa531Smrg 308264fa531Smrgint 309533545b5SmrgInitEllipses(XParms xp, Parms p, int64_t reps) 310264fa531Smrg{ 311264fa531Smrg GenerateEllipses(xp, p, False, False); 312264fa531Smrg return reps; 313264fa531Smrg} 314264fa531Smrg 315264fa531Smrg 316264fa531Smrgint 317533545b5SmrgInitPartEllipses(XParms xp, Parms p, int64_t reps) 318264fa531Smrg{ 319264fa531Smrg GenerateEllipses(xp, p, True, False); 320264fa531Smrg return reps; 321264fa531Smrg} 322264fa531Smrg 323264fa531Smrg 324264fa531Smrgint 325533545b5SmrgInitChordPartEllipses(XParms xp, Parms p, int64_t reps) 326264fa531Smrg{ 327264fa531Smrg GenerateEllipses(xp, p, True, False); 328264fa531Smrg XSetArcMode(xp->d, xp->bggc, ArcChord); 329264fa531Smrg XSetArcMode(xp->d, xp->fggc, ArcChord); 330264fa531Smrg return reps; 331264fa531Smrg} 332264fa531Smrg 333264fa531Smrg 334264fa531Smrgint 335533545b5SmrgInitSlicePartEllipses(XParms xp, Parms p, int64_t reps) 336264fa531Smrg{ 337264fa531Smrg GenerateEllipses(xp, p, True, False); 338264fa531Smrg XSetArcMode(xp->d, xp->bggc, ArcPieSlice); 339264fa531Smrg XSetArcMode(xp->d, xp->fggc, ArcPieSlice); 340264fa531Smrg return reps; 341264fa531Smrg} 342264fa531Smrg 343264fa531Smrg 344264fa531Smrgstatic void 345264fa531SmrgGenerateWideEllipses(XParms xp, Parms p, Bool partialArcs, Bool ddashed) 346264fa531Smrg{ 347264fa531Smrg int size; 348264fa531Smrg 349264fa531Smrg GenerateEllipses (xp, p, partialArcs, ddashed); 350264fa531Smrg size = p->special; 351264fa531Smrg if(ddashed) { 352264fa531Smrg XSetLineAttributes(xp->d, xp->ddbggc, (int) ((size + 9) / 10), 353264fa531Smrg LineSolid, CapRound, JoinRound); 354264fa531Smrg XSetLineAttributes(xp->d, xp->ddfggc, (int) ((size + 9) / 10), 355264fa531Smrg LineSolid, CapRound, JoinRound); 356264fa531Smrg } 357264fa531Smrg else { 358264fa531Smrg XSetLineAttributes(xp->d, xp->bggc, (int) ((size + 9) / 10), 359264fa531Smrg LineSolid, CapRound, JoinRound); 360264fa531Smrg XSetLineAttributes(xp->d, xp->fggc, (int) ((size + 9) / 10), 361264fa531Smrg LineSolid, CapRound, JoinRound); 362264fa531Smrg } 363264fa531Smrg 364264fa531Smrg} 365264fa531Smrg 366264fa531Smrgint 367533545b5SmrgInitWideEllipses(XParms xp, Parms p, int64_t reps) 368264fa531Smrg{ 369264fa531Smrg GenerateWideEllipses(xp, p, False, False); 370264fa531Smrg return reps; 371264fa531Smrg} 372264fa531Smrg 373264fa531Smrgint 374533545b5SmrgInitPartWideEllipses(XParms xp, Parms p, int64_t reps) 375264fa531Smrg{ 376264fa531Smrg GenerateWideEllipses(xp, p, True, False); 377264fa531Smrg return reps; 378264fa531Smrg} 379264fa531Smrg 380264fa531Smrgint 381533545b5SmrgInitDashedEllipses(XParms xp, Parms p, int64_t reps) 382264fa531Smrg{ 383264fa531Smrg char dashes[2]; 384264fa531Smrg 385264fa531Smrg GenerateEllipses(xp, p, False, False); 386264fa531Smrg 387264fa531Smrg /* Modify GCs to draw dashed */ 388264fa531Smrg XSetLineAttributes(xp->d, xp->bggc, 0, LineOnOffDash, CapButt, JoinMiter); 389264fa531Smrg XSetLineAttributes(xp->d, xp->fggc, 0, LineOnOffDash, CapButt, JoinMiter); 390264fa531Smrg dashes[0] = 3; dashes[1] = 2; 391264fa531Smrg XSetDashes(xp->d, xp->fggc, 0, dashes, 2); 392264fa531Smrg XSetDashes(xp->d, xp->bggc, 0, dashes, 2); 393264fa531Smrg return reps; 394264fa531Smrg} 395264fa531Smrg 396264fa531Smrgint 397533545b5SmrgInitWideDashedEllipses(XParms xp, Parms p, int64_t reps) 398264fa531Smrg{ 399264fa531Smrg int size; 400264fa531Smrg XGCValues gcv; 401264fa531Smrg char dashes[2]; 402264fa531Smrg 403264fa531Smrg GenerateWideEllipses(xp, p, False, False); 404264fa531Smrg size = p->special; 405264fa531Smrg size = (size + 9) / 10; 406264fa531Smrg 407264fa531Smrg /* Modify GCs to draw dashed */ 408264fa531Smrg dashes[0] = 2*size; dashes[1] = 2*size; 409264fa531Smrg gcv.line_style = LineOnOffDash; 410264fa531Smrg XChangeGC(xp->d, xp->fggc, GCLineStyle, &gcv); 411264fa531Smrg XChangeGC(xp->d, xp->bggc, GCLineStyle, &gcv); 412264fa531Smrg XSetDashes(xp->d, xp->fggc, 0, dashes, 2); 413264fa531Smrg XSetDashes(xp->d, xp->bggc, 0, dashes, 2); 414264fa531Smrg return reps; 415264fa531Smrg} 416264fa531Smrg 417264fa531Smrgint 418533545b5SmrgInitDoubleDashedEllipses(XParms xp, Parms p, int64_t reps) 419264fa531Smrg{ 420264fa531Smrg char dashes[2]; 421264fa531Smrg 422264fa531Smrg GenerateEllipses(xp, p, False, True); 423264fa531Smrg 424264fa531Smrg /* Modify GCs to draw dashed */ 425264fa531Smrg XSetLineAttributes(xp->d, xp->ddbggc, 0, LineDoubleDash, CapButt, JoinMiter); 426264fa531Smrg XSetLineAttributes(xp->d, xp->ddfggc, 0, LineDoubleDash, CapButt, JoinMiter); 427264fa531Smrg dashes[0] = 3; dashes[1] = 2; 428264fa531Smrg XSetDashes(xp->d, xp->ddfggc, 0, dashes, 2); 429264fa531Smrg XSetDashes(xp->d, xp->ddbggc, 0, dashes, 2); 430264fa531Smrg return reps; 431264fa531Smrg} 432264fa531Smrg 433264fa531Smrgint 434533545b5SmrgInitWideDoubleDashedEllipses(XParms xp, Parms p, int64_t reps) 435264fa531Smrg{ 436264fa531Smrg int size; 437264fa531Smrg XGCValues gcv; 438264fa531Smrg char dashes[2]; 439264fa531Smrg 440264fa531Smrg GenerateWideEllipses(xp, p, False, True); 441264fa531Smrg size = p->special; 442264fa531Smrg size = (size + 9) / 10; 443264fa531Smrg 444264fa531Smrg /* Modify GCs to draw dashed */ 445264fa531Smrg dashes[0] = 2*size; dashes[1] = 2*size; 446264fa531Smrg gcv.line_style = LineDoubleDash; 447264fa531Smrg XChangeGC(xp->d, xp->ddfggc, GCLineStyle, &gcv); 448264fa531Smrg XChangeGC(xp->d, xp->ddbggc, GCLineStyle, &gcv); 449264fa531Smrg XSetDashes(xp->d, xp->ddfggc, 0, dashes, 2); 450264fa531Smrg XSetDashes(xp->d, xp->ddbggc, 0, dashes, 2); 451264fa531Smrg return reps; 452264fa531Smrg} 453264fa531Smrg 454264fa531Smrgvoid 455533545b5SmrgDoArcs(XParms xp, Parms p, int64_t reps) 456264fa531Smrg{ 457264fa531Smrg int i; 458264fa531Smrg 459264fa531Smrg for (i = 0; i != reps; i++) { 460264fa531Smrg XDrawArcs(xp->d, xp->w, pgc, arcs, p->objects); 461264fa531Smrg if (pgc == xp->ddbggc) 462264fa531Smrg pgc = xp->ddfggc; 463264fa531Smrg else if(pgc == xp->ddfggc) 464264fa531Smrg pgc = xp->ddbggc; 465264fa531Smrg else if (pgc == xp->bggc) 466264fa531Smrg pgc = xp->fggc; 467264fa531Smrg else 468264fa531Smrg pgc = xp->bggc; 469264fa531Smrg CheckAbort (); 470264fa531Smrg } 471264fa531Smrg} 472264fa531Smrg 473264fa531Smrgvoid 474533545b5SmrgDoFilledArcs(XParms xp, Parms p, int64_t reps) 475264fa531Smrg{ 476264fa531Smrg int i; 477264fa531Smrg 478264fa531Smrg for (i = 0; i != reps; i++) { 479264fa531Smrg XFillArcs(xp->d, xp->w, pgc, arcs, p->objects); 480264fa531Smrg if (pgc == xp->ddbggc) 481264fa531Smrg pgc = xp->ddfggc; 482264fa531Smrg else if(pgc == xp->ddfggc) 483264fa531Smrg pgc = xp->ddbggc; 484264fa531Smrg else if (pgc == xp->bggc) 485264fa531Smrg pgc = xp->fggc; 486264fa531Smrg else 487264fa531Smrg pgc = xp->bggc; 488264fa531Smrg CheckAbort (); 489264fa531Smrg } 490264fa531Smrg} 491264fa531Smrg 492264fa531Smrgvoid 493264fa531SmrgEndArcs(XParms xp, Parms p) 494264fa531Smrg{ 495264fa531Smrg free(arcs); 496264fa531Smrg} 497264fa531Smrg 498