summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Fl_PostScript.cxx2
-rw-r--r--src/Fl_cocoa.mm3
-rw-r--r--src/fl_color.cxx7
-rw-r--r--src/fl_color_mac.cxx6
-rw-r--r--src/fl_color_win32.cxx6
-rw-r--r--src/fl_font_xft.cxx8
6 files changed, 12 insertions, 20 deletions
diff --git a/src/Fl_PostScript.cxx b/src/Fl_PostScript.cxx
index 178d2b479..6aea75ba7 100644
--- a/src/Fl_PostScript.cxx
+++ b/src/Fl_PostScript.cxx
@@ -940,7 +940,7 @@ void Fl_PostScript_Graphics_Driver::color(Fl_Color c) {
}
void Fl_PostScript_Graphics_Driver::color(unsigned char r, unsigned char g, unsigned char b) {
- fl_color_ = fl_rgb_color(r, g, b);
+ Fl_Graphics_Driver::color( fl_rgb_color(r, g, b) );
cr_ = r; cg_ = g; cb_ = b;
if (r == g && g == b) {
double gray = r/255.0;
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm
index ae328930a..2783f7673 100644
--- a/src/Fl_cocoa.mm
+++ b/src/Fl_cocoa.mm
@@ -2238,7 +2238,6 @@ void Fl_Window::make_current()
}
// helper function to manage the current CGContext fl_gc
-extern Fl_Color fl_color_;
extern class Fl_Font_Descriptor *fl_fontsize;
extern void fl_font(class Fl_Font_Descriptor*);
extern void fl_quartz_restore_line_style_();
@@ -2253,7 +2252,7 @@ void Fl_X::q_fill_context() {
CGContextScaleCTM(fl_gc, 1.0f, -1.0f); // now 0,0 is top-left point of the context
}
fl_font(fl_fontsize);
- fl_color(fl_color_);
+ fl_color(fl_graphics_driver->color());
fl_quartz_restore_line_style_();
}
diff --git a/src/fl_color.cxx b/src/fl_color.cxx
index bac31d189..04a56f0a4 100644
--- a/src/fl_color.cxx
+++ b/src/fl_color.cxx
@@ -124,22 +124,19 @@ Fl_XColor fl_xmap[1][256];
# define fl_overlay 0
# endif
-/** Current color for drawing operations */
-Fl_Color fl_color_;
-
void Fl_Xlib_Graphics_Driver::color(Fl_Color i) {
if (i & 0xffffff00) {
unsigned rgb = (unsigned)i;
fl_color((uchar)(rgb >> 24), (uchar)(rgb >> 16), (uchar)(rgb >> 8));
} else {
- fl_color_ = i;
+ Fl_Graphics_Driver::color(i);
if(!fl_gc) return; // don't get a default gc if current window is not yet created/valid
XSetForeground(fl_display, fl_gc, fl_xpixel(i));
}
}
void Fl_Xlib_Graphics_Driver::color(uchar r,uchar g,uchar b) {
- fl_color_ = fl_rgb_color(r, g, b);
+ Fl_Graphics_Driver::color( fl_rgb_color(r, g, b) );
if(!fl_gc) return; // don't get a default gc if current window is not yet created/valid
XSetForeground(fl_display, fl_gc, fl_xpixel(r,g,b));
}
diff --git a/src/fl_color_mac.cxx b/src/fl_color_mac.cxx
index 77d7daabe..b01bc6f25 100644
--- a/src/fl_color_mac.cxx
+++ b/src/fl_color_mac.cxx
@@ -47,10 +47,8 @@ Fl_XMap fl_xmap[256];
Fl_XMap* fl_current_xmap;
-Fl_Color fl_color_;
-
void Fl_Quartz_Graphics_Driver::color(Fl_Color i) {
- fl_color_ = i;
+ Fl_Graphics_Driver::color(i);
int index;
uchar r, g, b;
if (i & 0xFFFFFF00) {
@@ -75,7 +73,7 @@ void Fl_Quartz_Graphics_Driver::color(Fl_Color i) {
}
void Fl_Quartz_Graphics_Driver::color(uchar r, uchar g, uchar b) {
- fl_color_ = fl_rgb_color(r, g, b);
+ Fl_Graphics_Driver::color( fl_rgb_color(r, g, b) );
float fr = r/255.0f;
float fg = g/255.0f;
float fb = b/255.0f;
diff --git a/src/fl_color_win32.cxx b/src/fl_color_win32.cxx
index 945466ce7..badb00a4c 100644
--- a/src/fl_color_win32.cxx
+++ b/src/fl_color_win32.cxx
@@ -92,14 +92,12 @@ static void set_xmap(Fl_XMap& xmap, COLORREF c) {
xmap.brush = -1;
}
-Fl_Color fl_color_;
-
void Fl_GDI_Graphics_Driver::color(Fl_Color i) {
if (i & 0xffffff00) {
unsigned rgb = (unsigned)i;
fl_color((uchar)(rgb >> 24), (uchar)(rgb >> 16), (uchar)(rgb >> 8));
} else {
- fl_color_ = i;
+ Fl_Graphics_Driver::color(i);
Fl_XMap &xmap = fl_xmap[i];
if (!xmap.pen) {
#if USE_COLORMAP
@@ -121,7 +119,7 @@ void Fl_GDI_Graphics_Driver::color(Fl_Color i) {
void Fl_GDI_Graphics_Driver::color(uchar r, uchar g, uchar b) {
static Fl_XMap xmap;
COLORREF c = RGB(r,g,b);
- fl_color_ = fl_rgb_color(r, g, b);
+ Fl_Graphics_Driver::color( fl_rgb_color(r, g, b) );
if (!xmap.pen || c != xmap.rgb) {
clear_xmap(xmap);
set_xmap(xmap, c);
diff --git a/src/fl_font_xft.cxx b/src/fl_font_xft.cxx
index e6036f9a5..d1411ffc5 100644
--- a/src/fl_font_xft.cxx
+++ b/src/fl_font_xft.cxx
@@ -614,8 +614,8 @@ void Fl_Xlib_Graphics_Driver::draw(const char *str, int n, int x, int y) {
// Use fltk's color allocator, copy the results to match what
// XftCollorAllocValue returns:
XftColor color;
- color.pixel = fl_xpixel(fl_color_);
- uchar r,g,b; Fl::get_color(fl_color_, r,g,b);
+ color.pixel = fl_xpixel(fl_graphics_driver->color());
+ uchar r,g,b; Fl::get_color(fl_graphics_driver->color(), r,g,b);
color.color.red = ((int)r)*0x101;
color.color.green = ((int)g)*0x101;
color.color.blue = ((int)b)*0x101;
@@ -659,8 +659,8 @@ static void fl_drawUCS4(const FcChar32 *str, int n, int x, int y) {
// Use fltk's color allocator, copy the results to match what
// XftCollorAllocValue returns:
XftColor color;
- color.pixel = fl_xpixel(fl_color_);
- uchar r,g,b; Fl::get_color(fl_color_, r,g,b);
+ color.pixel = fl_xpixel(fl_graphics_driver->color());
+ uchar r,g,b; Fl::get_color(fl_graphics_driver->color(), r,g,b);
color.color.red = ((int)r)*0x101;
color.color.green = ((int)g)*0x101;
color.color.blue = ((int)b)*0x101;