Update the fl_gc global variable also when Fl_Graphics_Driver::set_gc() is called.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11190 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
f33b45f1d3
commit
6d766cc681
@ -88,8 +88,6 @@ class FL_EXPORT Fl_Graphics_Driver : public Fl_Device {
|
||||
friend class Fl_Pixmap;
|
||||
friend class Fl_Bitmap;
|
||||
friend class Fl_RGB_Image;
|
||||
private:
|
||||
void global_gc(void);
|
||||
public:
|
||||
// The following functions create the various graphics drivers that are required
|
||||
// for core operations. They must be implemented as members of Fl_Graphics_Driver,
|
||||
@ -138,7 +136,6 @@ public:
|
||||
virtual const char *class_name() {return class_id;};
|
||||
Fl_Graphics_Driver();
|
||||
virtual ~Fl_Graphics_Driver() { if (p) free(p); }
|
||||
public:
|
||||
virtual char can_do_alpha_blending() { return 0; }
|
||||
// --- implementation is in src/fl_rect.cxx which includes src/drivers/xxx/Fl_xxx_Graphics_Driver_rect.cxx
|
||||
virtual void point(int x, int y) = 0;
|
||||
@ -262,6 +259,7 @@ protected:
|
||||
// --- implementation is in src/fl_vertex.cxx which includes src/cfg_gfx/xxx_rect.cxx
|
||||
virtual void transformed_vertex0(COORD_T x, COORD_T y);
|
||||
virtual void fixloop();
|
||||
void global_gc(void);
|
||||
};
|
||||
|
||||
#endif // FL_GRAPHICS_DRIVER_H
|
||||
|
||||
@ -43,7 +43,7 @@ public:
|
||||
const char *class_name() {return class_id;};
|
||||
virtual int has_feature(driver_feature mask) { return mask & NATIVE; }
|
||||
char can_do_alpha_blending();
|
||||
virtual void set_gc(void *ctxt) {gc = (HDC)ctxt;}
|
||||
virtual void set_gc(void *ctxt) {if (ctxt != gc) global_gc(); gc = (HDC)ctxt;}
|
||||
virtual void *get_gc() {return gc;}
|
||||
|
||||
// --- bitmap stuff
|
||||
|
||||
@ -44,7 +44,7 @@ public:
|
||||
static const char *class_id;
|
||||
const char *class_name() {return class_id;};
|
||||
virtual int has_feature(driver_feature mask) { return mask & NATIVE; }
|
||||
virtual void set_gc(void *ctxt) {gc = (CGContextRef)ctxt;}
|
||||
virtual void set_gc(void *ctxt) {if (ctxt != gc) global_gc(); gc = (CGContextRef)ctxt; }
|
||||
virtual void *get_gc() {return gc;}
|
||||
char can_do_alpha_blending();
|
||||
|
||||
|
||||
@ -37,7 +37,6 @@ GC fl_gc = 0;
|
||||
|
||||
void Fl_Graphics_Driver::global_gc()
|
||||
{
|
||||
fl_gc = (GC)get_gc();
|
||||
}
|
||||
|
||||
|
||||
@ -57,6 +56,7 @@ Fl_Xlib_Graphics_Driver::Fl_Xlib_Graphics_Driver(void) {
|
||||
fl_open_display();
|
||||
// the unique GC used by all X windows
|
||||
gc = XCreateGC(fl_display, RootWindow(fl_display, fl_screen), 0, 0);
|
||||
fl_gc = gc;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user