MCPcopy Create free account
hub / github.com/CruiserOne/Astrolog / DrawColor

Function DrawColor

xgeneral.cpp:66–121  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64// Set the current color to use in drawing on the screen or bitmap array.
65
66void DrawColor(KI ki)
67{
68 KV kv;
69#ifdef WINANY
70 HPEN hpenPrev;
71 int n;
72#endif
73
74 kv = KvFromKi(ki);
75 if (gi.fFile) {
76#ifdef PS
77 if (gs.ft == ftPS) {
78 if (gi.kvCur != kv) {
79 PsStrokeForce(); // Render existing path with current color
80 fprintf(gi.file, "%.2f %.2f %.2f c\n",
81 (real)RgbR(kv)/255.0, (real)RgbG(kv)/255.0, (real)RgbB(kv)/255.0);
82 }
83 }
84#endif
85#ifdef META
86 if (gs.ft == ftWmf) {
87 if (!FBetween(ki, 0, cColor-1))
88 ki = KiFromKv(KvFromKi(ki), fFalse);
89 gi.kiLineDes = ki;
90 }
91#endif
92#ifdef SVG
93 if (gs.ft == ftSVG)
94 gi.kiSvgDes = ki;
95#endif
96 }
97#ifdef X11
98 else {
99 if (ki < 0)
100 ki = KiFromKv(-ki, fTrue);
101 XSetForeground(gi.disp, gi.gc, rgbind[ki]);
102 }
103#endif
104#ifdef WINANY
105 else {
106 if (gi.kvCur != kv) {
107 hpenPrev = wi.hpen;
108 n = gi.nScaleT * (1 + (gs.fThick && wi.nScaleWin > 1));
109 n += gs.nThickAdjust;
110 if (n < 1)
111 n = 1;
112 wi.hpen = CreatePen(PS_SOLID, n, (COLORREF)kv);
113 SelectObject(wi.hdc, wi.hpen);
114 if (hpenPrev != (HPEN)NULL)
115 DeleteObject(hpenPrev);
116 }
117 }
118#endif
119 gi.kiCur = ki;
120 gi.kvCur = kv;
121}
122
123

Callers 15

FEvalFunctionFunction · 0.85
DrawThickFunction · 0.85
DrawPointFunction · 0.85
DrawBlockFunction · 0.85
DrawClearScreenFunction · 0.85
DrawCrescentFunction · 0.85
DrawSzFunction · 0.85
DrawObjectFunction · 0.85
DrawStarFunction · 0.85
DrawPrintFunction · 0.85
DrawSidebarFunction · 0.85
DrawWheelFunction · 0.85

Calls 2

PsStrokeForceFunction · 0.85
KiFromKvFunction · 0.85

Tested by

no test coverage detected