diff options
| author | Manolo Gouy <Manolo> | 2016-02-19 12:40:24 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2016-02-19 12:40:24 +0000 |
| commit | 1b5e231c902ab198c577989db44946797ebd4893 (patch) | |
| tree | 211751e0eceda308df4e51d94511362f5e0b55f6 /src/drivers | |
| parent | 6d766cc6814a9e7a04c0b147c7a3cbdc0817dfd4 (diff) | |
Rename Fl_Graphics_Driver::set_gc(void*) to gc(void*) and Fl_Graphics_Driver::get_gc() to gc().
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11191 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers')
29 files changed, 413 insertions, 412 deletions
diff --git a/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx b/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx index ca6de3f60..8da0ab610 100644 --- a/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx +++ b/src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx @@ -121,7 +121,7 @@ void Fl_Cocoa_Screen_Driver::beep(int type) { void Fl_Cocoa_Screen_Driver::flush() { - CGContextRef gc = (CGContextRef)Fl_Display_Device::display_device()->driver()->get_gc(); + CGContextRef gc = (CGContextRef)Fl_Display_Device::display_device()->driver()->gc(); if (gc) CGContextFlush(gc); } diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx index 74cd6a69d..74ca1345c 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx @@ -29,13 +29,13 @@ const char *Fl_GDI_Printer_Graphics_Driver::class_id = "Fl_GDI_Printer_Graphics_ /* Reference to the current device context For back-compatibility only. The preferred procedure to get this reference is - Fl_Surface_Device::surface()->driver()->get_gc(). + Fl_Surface_Device::surface()->driver()->gc(). */ HDC fl_gc = 0; void Fl_Graphics_Driver::global_gc() { - fl_gc = (HDC)get_gc(); + fl_gc = (HDC)gc(); } /* @@ -98,7 +98,7 @@ char Fl_GDI_Graphics_Driver::can_do_alpha_blending() { } HDC fl_makeDC(HBITMAP bitmap) { - HDC new_gc = CreateCompatibleDC((HDC)fl_graphics_driver->get_gc()); + HDC new_gc = CreateCompatibleDC((HDC)fl_graphics_driver->gc()); SetTextAlign(new_gc, TA_BASELINE|TA_LEFT); SetBkMode(new_gc, TRANSPARENT); #if USE_COLORMAP @@ -109,26 +109,26 @@ HDC fl_makeDC(HBITMAP bitmap) { } void Fl_GDI_Graphics_Driver::copy_offscreen(int x,int y,int w,int h,HBITMAP bitmap,int srcx,int srcy) { - HDC new_gc = CreateCompatibleDC(gc); + HDC new_gc = CreateCompatibleDC(gc_); int save = SaveDC(new_gc); SelectObject(new_gc, bitmap); - BitBlt(gc, x, y, w, h, new_gc, srcx, srcy, SRCCOPY); + BitBlt(gc_, x, y, w, h, new_gc, srcx, srcy, SRCCOPY); RestoreDC(new_gc, save); DeleteDC(new_gc); } void Fl_GDI_Graphics_Driver::copy_offscreen_with_alpha(int x,int y,int w,int h,HBITMAP bitmap,int srcx,int srcy) { - HDC new_gc = CreateCompatibleDC(gc); + HDC new_gc = CreateCompatibleDC(gc_); int save = SaveDC(new_gc); SelectObject(new_gc, bitmap); BOOL alpha_ok = 0; // first try to alpha blend if ( can_do_alpha_blending() ) { - alpha_ok = fl_alpha_blend(gc, x, y, w, h, new_gc, srcx, srcy, w, h, blendfunc); + alpha_ok = fl_alpha_blend(gc_, x, y, w, h, new_gc, srcx, srcy, w, h, blendfunc); } // if that failed (it shouldn't), still copy the bitmap over, but now alpha is 1 if (!alpha_ok) { - BitBlt(gc, x, y, w, h, new_gc, srcx, srcy, SRCCOPY); + BitBlt(gc_, x, y, w, h, new_gc, srcx, srcy, SRCCOPY); } RestoreDC(new_gc, save); DeleteDC(new_gc); diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver.h b/src/drivers/GDI/Fl_GDI_Graphics_Driver.h index 6fd93dbfc..1af1f348a 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver.h +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver.h @@ -35,7 +35,7 @@ */ class FL_EXPORT Fl_GDI_Graphics_Driver : public Fl_Graphics_Driver { protected: - HDC gc; + HDC gc_; int numcount; int counts[20]; public: @@ -43,8 +43,8 @@ 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) {if (ctxt != gc) global_gc(); gc = (HDC)ctxt;} - virtual void *get_gc() {return gc;} + virtual void gc(void *ctxt) {if (ctxt != gc_) global_gc(); gc_ = (HDC)ctxt;} + virtual void *gc() {return gc_;} // --- bitmap stuff Fl_Bitmask create_bitmask(int w, int h, const uchar *array); diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_arci.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_arci.cxx index de8729d74..7d70ddd42 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_arci.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_arci.cxx @@ -41,9 +41,9 @@ void Fl_GDI_Graphics_Driver::arc(int x,int y,int w,int h,double a1,double a2) { int xb = x+w/2+int(w*cos(a2/180.0*M_PI)); int yb = y+h/2-int(h*sin(a2/180.0*M_PI)); if (fabs(a1 - a2) < 90) { - if (xa == xb && ya == yb) SetPixel(gc, xa, ya, fl_RGB()); - else Arc(gc, x, y, x+w, y+h, xa, ya, xb, yb); - } else Arc(gc, x, y, x+w, y+h, xa, ya, xb, yb); + if (xa == xb && ya == yb) SetPixel(gc_, xa, ya, fl_RGB()); + else Arc(gc_, x, y, x+w, y+h, xa, ya, xb, yb); + } else Arc(gc_, x, y, x+w, y+h, xa, ya, xb, yb); } void Fl_GDI_Graphics_Driver::pie(int x,int y,int w,int h,double a1,double a2) { @@ -53,14 +53,14 @@ void Fl_GDI_Graphics_Driver::pie(int x,int y,int w,int h,double a1,double a2) { int ya = y+h/2-int(h*sin(a1/180.0*M_PI)); int xb = x+w/2+int(w*cos(a2/180.0*M_PI)); int yb = y+h/2-int(h*sin(a2/180.0*M_PI)); - SelectObject(gc, fl_brush()); + SelectObject(gc_, fl_brush()); if (fabs(a1 - a2) < 90) { if (xa == xb && ya == yb) { - MoveToEx(gc, x+w/2, y+h/2, 0L); - LineTo(gc, xa, ya); - SetPixel(gc, xa, ya, fl_RGB()); - } else Pie(gc, x, y, x+w, y+h, xa, ya, xb, yb); - } else Pie(gc, x, y, x+w, y+h, xa, ya, xb, yb); + MoveToEx(gc_, x+w/2, y+h/2, 0L); + LineTo(gc_, xa, ya); + SetPixel(gc_, xa, ya, fl_RGB()); + } else Pie(gc_, x, y, x+w, y+h, xa, ya, xb, yb); + } else Pie(gc_, x, y, x+w, y+h, xa, ya, xb, yb); } #endif // FL_CFG_GFX_GDI_ARCI_CXX diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_color.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_color.cxx index 8216d14ca..046fe6df0 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_color.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_color.cxx @@ -53,11 +53,11 @@ void fl_cleanup_pens(void) { void fl_save_pen(void) { if(!tmppen) tmppen = CreatePen(PS_SOLID, 1, 0); - savepen = (HPEN)SelectObject((HDC)fl_graphics_driver->get_gc(), tmppen); + savepen = (HPEN)SelectObject((HDC)fl_graphics_driver->gc(), tmppen); } void fl_restore_pen(void) { - if (savepen) SelectObject((HDC)fl_graphics_driver->get_gc(), savepen); + if (savepen) SelectObject((HDC)fl_graphics_driver->gc(), savepen); DeleteObject(tmppen); tmppen = 0; savepen = 0; @@ -65,7 +65,7 @@ void fl_restore_pen(void) { static void clear_xmap(Fl_XMap& xmap) { if (xmap.pen) { - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); HGDIOBJ tmppen = GetStockObject(BLACK_PEN); HGDIOBJ oldpen = SelectObject(gc, tmppen); // Push out the current pen of the gc if(oldpen != xmap.pen) SelectObject(gc, oldpen); // Put it back if it is not the one we are about to delete @@ -78,7 +78,7 @@ static void clear_xmap(Fl_XMap& xmap) { static void set_xmap(Fl_XMap& xmap, COLORREF c) { xmap.rgb = c; if (xmap.pen) { - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); HGDIOBJ oldpen = SelectObject(gc,GetStockObject(BLACK_PEN)); // replace current pen with safe one if (oldpen != xmap.pen)SelectObject(gc,oldpen); // if old one not xmap.pen, need to put it back DeleteObject(xmap.pen); // delete pen @@ -107,7 +107,7 @@ void Fl_GDI_Graphics_Driver::color(Fl_Color i) { #endif } fl_current_xmap = ⟼ - SelectObject(gc, (HGDIOBJ)(xmap.pen)); + SelectObject(gc_, (HGDIOBJ)(xmap.pen)); } } @@ -120,7 +120,7 @@ void Fl_GDI_Graphics_Driver::color(uchar r, uchar g, uchar b) { set_xmap(xmap, c); } fl_current_xmap = ⟼ - SelectObject(gc, (HGDIOBJ)(xmap.pen)); + SelectObject(gc_, (HGDIOBJ)(xmap.pen)); } HBRUSH fl_brush() { @@ -129,7 +129,7 @@ HBRUSH fl_brush() { HBRUSH fl_brush_action(int action) { Fl_XMap *xmap = fl_current_xmap; - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); // Wonko: we use some statistics to cache only a limited number // of brushes: #define FL_N_BRUSH 16 @@ -206,7 +206,7 @@ HPALETTE fl_select_palette(void) { static char beenhere; - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); if (!beenhere) { beenhere = 1; diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_font.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_font.cxx index e31f38234..907f6f50f 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_font.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_font.cxx @@ -113,7 +113,7 @@ enumcbw(CONST LOGFONTW *lpelf, } /* enumcbw */ Fl_Font Fl::set_fonts(const char* xstarname) { - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); if (fl_free_font == FL_FREE_FONT) {// if not already been called if (!gc) gc = fl_GetDC(0); @@ -169,7 +169,7 @@ Fl::get_font_sizes(Fl_Font fnum, int*& sizep) { Fl_Fontdesc *s = fl_fonts+fnum; if (!s->name) s = fl_fonts; // empty slot in table, use entry 0 - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); if (!gc) gc = fl_GetDC(0); cyPerInch = GetDeviceCaps(gc, LOGPIXELSY); if (cyPerInch < 1) cyPerInch = 1; @@ -244,7 +244,7 @@ Fl_Font_Descriptor::Fl_Font_Descriptor(const char* name, Fl_Fontsize fsize) { name // pointer to typeface name string ); angle = fl_angle_; - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); if (!gc) gc = fl_GetDC(0); SelectObject(gc, fid); GetTextMetrics(gc, &metr); @@ -383,7 +383,7 @@ double Fl_GDI_Graphics_Driver::width(unsigned int c) { // This code assumes that these glyphs are rarely used and simply // measures them explicitly if they occur - This will be slow... if(c > 0x0000FFFF) { // UTF16 surrogate pair is needed - if (!gc) { // We have no valid gc, so nothing to measure - bail out + if (!gc_) { // We have no valid gc, so nothing to measure - bail out return 0.0; } int cc; // cell count @@ -391,9 +391,9 @@ double Fl_GDI_Graphics_Driver::width(unsigned int c) { // Creates a UTF16 string from a UCS code point. cc = fl_ucs_to_Utf16(c, u16, 4); // Make sure the current font is selected before we make the measurement - SelectObject(gc, fl_fontsize->fid); + SelectObject(gc_, fl_fontsize->fid); // measure the glyph width - GetTextExtentPoint32W(gc, (WCHAR*)u16, cc, &s); + GetTextExtentPoint32W(gc_, (WCHAR*)u16, cc, &s); return (double)s.cx; } // else - this falls through to the lookup-table for glyph widths @@ -414,7 +414,7 @@ double Fl_GDI_Graphics_Driver::width(unsigned int c) { // If that is null then we attempt to obtain the gc from the current screen // using (GetDC(NULL)). // This should resolve STR #2086 - HDC gc2 = gc; + HDC gc2 = gc_; HWND hWnd = 0; if (!gc2) { // We have no valid gc, try and obtain one // Use our first fltk window, or fallback to using the screen via GetDC(NULL) @@ -426,7 +426,7 @@ double Fl_GDI_Graphics_Driver::width(unsigned int c) { ii += c &0x03FF; GetTextExtentPoint32W(gc2, (WCHAR*)&ii, 1, &s); fl_fontsize->width[r][c&0x03FF] = s.cx; - if (gc2 && gc2 != gc) ReleaseDC(hWnd, gc2); + if (gc2 && gc2 != gc_) ReleaseDC(hWnd, gc2); return (double) fl_fontsize->width[r][c & 0x03FF]; } @@ -486,7 +486,7 @@ void Fl_GDI_Graphics_Driver::text_extents(const char *c, int n, int &dx, int &dy int minx = 0, miny = -999999; unsigned len = 0, idx = 0; HWND hWnd = 0; - HDC gc2 = gc; // local copy of current gc - make a copy in case we change it... + HDC gc2 = gc_; // local copy of current gc - make a copy in case we change it... int has_surrogates; // will be set if the string contains surrogate pairs // Have we loaded the GetGlyphIndicesW function yet? @@ -543,7 +543,7 @@ void Fl_GDI_Graphics_Driver::text_extents(const char *c, int n, int &dx, int &dy len = gcp_res.nGlyphs; } else goto exit_error; } else { - if (fl_GetGlyphIndices(gc, (WCHAR*)ext_buff, len, w_buff, GGI_MARK_NONEXISTING_GLYPHS) == GDI_ERROR) { + if (fl_GetGlyphIndices(gc_, (WCHAR*)ext_buff, len, w_buff, GGI_MARK_NONEXISTING_GLYPHS) == GDI_ERROR) { // some error occured here - just return fl_measure values goto exit_error; } @@ -567,7 +567,7 @@ void Fl_GDI_Graphics_Driver::text_extents(const char *c, int n, int &dx, int &dy h = maxh + miny; dx = minx; dy = -miny; - EXTENTS_UPDATE(dx, dy, w, h, gc); + EXTENTS_UPDATE(dx, dy, w, h, gc_); return; // normal exit exit_error: @@ -576,38 +576,38 @@ exit_error: h = height(); dx = 0; dy = descent() - h; - EXTENTS_UPDATE(dx, dy, w, h, gc); + EXTENTS_UPDATE(dx, dy, w, h, gc_); return; } // fl_text_extents void Fl_GDI_Graphics_Driver::draw(const char* str, int n, int x, int y) { - COLORREF oldColor = SetTextColor(gc, fl_RGB()); + COLORREF oldColor = SetTextColor(gc_, fl_RGB()); // avoid crash if no font has been set yet if (!font_descriptor()) this->font(FL_HELVETICA, FL_NORMAL_SIZE); - SelectObject(gc, font_descriptor()->fid); + SelectObject(gc_, font_descriptor()->fid); int wn = fl_utf8toUtf16(str, n, wstr, wstr_len); if(wn >= wstr_len) { wstr = (unsigned short*) realloc(wstr, sizeof(unsigned short) * (wn + 1)); wstr_len = wn + 1; wn = fl_utf8toUtf16(str, n, wstr, wstr_len); } - TextOutW(gc, x, y, (WCHAR*)wstr, wn); - SetTextColor(gc, oldColor); // restore initial state + TextOutW(gc_, x, y, (WCHAR*)wstr, wn); + SetTextColor(gc_, oldColor); // restore initial state } void Fl_GDI_Graphics_Driver::draw(int angle, const char* str, int n, int x, int y) { fl_font(this, Fl_Graphics_Driver::font(), size(), angle); int wn = 0; // count of UTF16 cells to render full string - COLORREF oldColor = SetTextColor(gc, fl_RGB()); - SelectObject(gc, font_descriptor()->fid); + COLORREF oldColor = SetTextColor(gc_, fl_RGB()); + SelectObject(gc_, font_descriptor()->fid); wn = fl_utf8toUtf16(str, n, wstr, wstr_len); if(wn >= wstr_len) { // Array too small wstr = (unsigned short*) realloc(wstr, sizeof(unsigned short) * (wn + 1)); wstr_len = wn + 1; wn = fl_utf8toUtf16(str, n, wstr, wstr_len); // respin the translation } - TextOutW(gc, x, y, (WCHAR*)wstr, wn); - SetTextColor(gc, oldColor); + TextOutW(gc_, x, y, (WCHAR*)wstr, wn); + SetTextColor(gc_, oldColor); fl_font(this, Fl_Graphics_Driver::font(), size(), 0); } @@ -620,26 +620,26 @@ void Fl_GDI_Graphics_Driver::rtl_draw(const char* c, int n, int x, int y) { wn = fl_utf8toUtf16(c, n, wstr, wstr_len); } - COLORREF oldColor = SetTextColor(gc, fl_RGB()); - SelectObject(gc, font_descriptor()->fid); + COLORREF oldColor = SetTextColor(gc_, fl_RGB()); + SelectObject(gc_, font_descriptor()->fid); #ifdef RTL_CHAR_BY_CHAR int i = 0; int lx = 0; while (i < wn) { // output char by char is very bad for Arabic but coherent with fl_width() lx = (int) width(wstr[i]); x -= lx; - TextOutW(gc, x, y, (WCHAR*)wstr + i, 1); + TextOutW(gc_, x, y, (WCHAR*)wstr + i, 1); if (fl_nonspacing(wstr[i])) { x += lx; } i++; } #else - UINT old_align = SetTextAlign(gc, TA_RIGHT | TA_RTLREADING); - TextOutW(gc, x, y - height() + descent(), (WCHAR*)wstr, wn); - SetTextAlign(gc, old_align); + UINT old_align = SetTextAlign(gc_, TA_RIGHT | TA_RTLREADING); + TextOutW(gc_, x, y - height() + descent(), (WCHAR*)wstr, wn); + SetTextAlign(gc_, old_align); #endif - SetTextColor(gc, oldColor); + SetTextColor(gc_, oldColor); } #endif // diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx index 3a128b69f..bae6bb47c 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx @@ -286,9 +286,9 @@ static int fl_abs(int v) { return v<0 ? -v : v; } void Fl_GDI_Graphics_Driver::draw_image(const uchar* buf, int x, int y, int w, int h, int d, int l){ if (fl_abs(d)&FL_IMAGE_WITH_ALPHA) { d ^= FL_IMAGE_WITH_ALPHA; - innards(buf,x,y,w,h,d,l,fl_abs(d),0,0, gc); + innards(buf,x,y,w,h,d,l,fl_abs(d),0,0, gc_); } else { - innards(buf,x,y,w,h,d,l,(d<3&&d>-3),0,0, gc); + innards(buf,x,y,w,h,d,l,(d<3&&d>-3),0,0, gc_); } } @@ -296,18 +296,18 @@ void Fl_GDI_Graphics_Driver::draw_image(Fl_Draw_Image_Cb cb, void* data, int x, int y, int w, int h,int d) { if (fl_abs(d)&FL_IMAGE_WITH_ALPHA) { d ^= FL_IMAGE_WITH_ALPHA; - innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data, gc); + innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data, gc_); } else { - innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data, gc); + innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data, gc_); } } void Fl_GDI_Graphics_Driver::draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int l){ if (fl_abs(d)&FL_IMAGE_WITH_ALPHA) { d ^= FL_IMAGE_WITH_ALPHA; - innards(buf,x,y,w,h,d,l,1,0,0, gc); + innards(buf,x,y,w,h,d,l,1,0,0, gc_); } else { - innards(buf,x,y,w,h,d,l,1,0,0, gc); + innards(buf,x,y,w,h,d,l,1,0,0, gc_); } } @@ -315,9 +315,9 @@ void Fl_GDI_Graphics_Driver::draw_image_mono(Fl_Draw_Image_Cb cb, void* data, int x, int y, int w, int h,int d) { if (fl_abs(d)&FL_IMAGE_WITH_ALPHA) { d ^= FL_IMAGE_WITH_ALPHA; - innards(0,x,y,w,h,d,0,1,cb,data, gc); + innards(0,x,y,w,h,d,0,1,cb,data, gc_); } else { - innards(0,x,y,w,h,d,0,1,cb,data, gc); + innards(0,x,y,w,h,d,0,1,cb,data, gc_); } } @@ -327,7 +327,7 @@ void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b) { if (fl_palette) { uchar c[3]; c[0] = r; c[1] = g; c[2] = b; - innards(c,x,y,w,h,0,0,0,0,0,(HDC)fl_graphics_driver->get_gc()); + innards(c,x,y,w,h,0,0,0,0,0,(HDC)fl_graphics_driver->gc()); return; } #endif @@ -346,8 +346,8 @@ Fl_Bitmask Fl_GDI_Graphics_Driver::create_bitmask(int w, int h, const uchar *dat static uchar loNibble[16] = { 0x00, 0x08, 0x04, 0x0c, 0x02, 0x0a, 0x06, 0x0e, 0x01, 0x09, 0x05, 0x0d, 0x03, 0x0b, 0x07, 0x0f }; - int np = GetDeviceCaps(gc, PLANES); //: was always one on sample machines - int bpp = GetDeviceCaps(gc, BITSPIXEL);//: 1,4,8,16,24,32 and more odd stuff? + int np = GetDeviceCaps(gc_, PLANES); //: was always one on sample machines + int bpp = GetDeviceCaps(gc_, BITSPIXEL);//: 1,4,8,16,24,32 and more odd stuff? int Bpr = (bpp*w+7)/8; //: bytes per row int pad = Bpr&1, w1 = (w+7)/8, shr = ((w-1)&7)+1; if (bpp==4) shr = (shr+1)/2; @@ -404,12 +404,12 @@ void Fl_GDI_Graphics_Driver::draw(Fl_Bitmap *bm, int XP, int YP, int WP, int HP, return; } - HDC tempdc = CreateCompatibleDC(gc); + HDC tempdc = CreateCompatibleDC(gc_); int save = SaveDC(tempdc); SelectObject(tempdc, (HGDIOBJ)bm->id_); - SelectObject(gc, fl_brush()); + SelectObject(gc_, fl_brush()); // secret bitblt code found in old MSWindows reference manual: - BitBlt(gc, X, Y, W, H, tempdc, cx, cy, 0xE20746L); + BitBlt(gc_, X, Y, W, H, tempdc, cx, cy, 0xE20746L); RestoreDC(tempdc, save); DeleteDC(tempdc); } @@ -447,7 +447,7 @@ void Fl_GDI_Printer_Graphics_Driver::draw(Fl_Bitmap *bm, int XP, int YP, int WP, fl_color(background); fl_rectf(0,0,W,H); // use this color as offscreen background fl_color(save_c); // back to bitmap's color - HDC off_gc = (HDC)fl_graphics_driver->get_gc(); + HDC off_gc = (HDC)fl_graphics_driver->gc(); tempdc = CreateCompatibleDC(off_gc); save = SaveDC(tempdc); SelectObject(tempdc, (HGDIOBJ)bm->id_); @@ -456,7 +456,7 @@ void Fl_GDI_Printer_Graphics_Driver::draw(Fl_Bitmap *bm, int XP, int YP, int WP, fl_end_offscreen(); // offscreen data is in tmp_id SelectObject(tempdc, (HGDIOBJ)tmp_id); // use offscreen data // draw it to printer context with background color as transparent - fl_TransparentBlt(gc, X,Y,W,H, tempdc, cx, cy, bm->w(), bm->h(), RGB(r, g, b) ); + fl_TransparentBlt(gc_, X,Y,W,H, tempdc, cx, cy, bm->w(), bm->h(), RGB(r, g, b) ); fl_delete_offscreen(tmp_id); RestoreDC(tempdc, save); DeleteDC(tempdc); @@ -511,12 +511,12 @@ void Fl_GDI_Graphics_Driver::draw(Fl_RGB_Image *img, int XP, int YP, int WP, int } if (!img->id_) img->id_ = (fl_uintptr_t)build_id(img, (void**)&(img->mask_)); if (img->mask_) { - HDC new_gc = CreateCompatibleDC(gc); + HDC new_gc = CreateCompatibleDC(gc_); int save = SaveDC(new_gc); SelectObject(new_gc, (void*)img->mask_); - BitBlt(gc, X, Y, W, H, new_gc, cx, cy, SRCAND); + BitBlt(gc_, X, Y, W, H, new_gc, cx, cy, SRCAND); SelectObject(new_gc, (void*)img->id_); - BitBlt(gc, X, Y, W, H, new_gc, cx, cy, SRCPAINT); + BitBlt(gc_, X, Y, W, H, new_gc, cx, cy, SRCPAINT); RestoreDC(new_gc,save); DeleteDC(new_gc); } else if (img->d()==2 || img->d()==4) { @@ -528,15 +528,15 @@ void Fl_GDI_Graphics_Driver::draw(Fl_RGB_Image *img, int XP, int YP, int WP, int int Fl_GDI_Printer_Graphics_Driver::draw_scaled(Fl_Image *img, int XP, int YP, int WP, int HP) { XFORM old_tr, tr; - GetWorldTransform(gc, &old_tr); // storing old transform + GetWorldTransform(gc_, &old_tr); // storing old transform tr.eM11 = float(WP)/float(img->w()); tr.eM22 = float(HP)/float(img->h()); tr.eM12 = tr.eM21 = 0; tr.eDx = float(XP); tr.eDy = float(YP); - ModifyWorldTransform(gc, &tr, MWT_LEFTMULTIPLY); + ModifyWorldTransform(gc_, &tr, MWT_LEFTMULTIPLY); img->draw(0, 0, img->w(), img->h(), 0, 0); - SetWorldTransform(gc, &old_tr); + SetWorldTransform(gc_, &old_tr); return 1; } @@ -593,12 +593,12 @@ void Fl_GDI_Graphics_Driver::draw(Fl_Pixmap *pxm, int XP, int YP, int WP, int HP int X, Y, W, H; if (pxm->prepare(XP, YP, WP, HP, cx, cy, X, Y, W, H)) return; if (pxm->mask_) { - HDC new_gc = CreateCompatibleDC(gc); + HDC new_gc = CreateCompatibleDC(gc_); int save = SaveDC(new_gc); SelectObject(new_gc, (void*)pxm->mask_); - BitBlt(gc, X, Y, W, H, new_gc, cx, cy, SRCAND); + BitBlt(gc_, X, Y, W, H, new_gc, cx, cy, SRCAND); SelectObject(new_gc, (void*)pxm->id_); - BitBlt(gc, X, Y, W, H, new_gc, cx, cy, SRCPAINT); + BitBlt(gc_, X, Y, W, H, new_gc, cx, cy, SRCPAINT); RestoreDC(new_gc,save); DeleteDC(new_gc); } else { @@ -618,11 +618,11 @@ void Fl_GDI_Printer_Graphics_Driver::draw(Fl_Pixmap *pxm, int XP, int YP, int WP if(hMod) fl_TransparentBlt = (fl_transp_func)GetProcAddress(hMod, "TransparentBlt"); } if (fl_TransparentBlt) { - HDC new_gc = CreateCompatibleDC(gc); + HDC new_gc = CreateCompatibleDC(gc_); int save = SaveDC(new_gc); SelectObject(new_gc, (void*)pxm->id_); // print all of offscreen but its parts in background color - fl_TransparentBlt(gc, X, Y, W, H, new_gc, cx, cy, W, H, pxm->pixmap_bg_color ); + fl_TransparentBlt(gc_, X, Y, W, H, new_gc, cx, cy, W, H, pxm->pixmap_bg_color ); RestoreDC(new_gc,save); DeleteDC(new_gc); } diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_line_style.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_line_style.cxx index b855a1349..d3d07241d 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_line_style.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_line_style.cxx @@ -63,7 +63,7 @@ void Fl_GDI_Graphics_Driver::line_style(int style, int width, char* dashes) { Fl::error("fl_line_style(): Could not create GDI pen object."); return; } - HPEN oldpen = (HPEN)SelectObject(gc, newpen); + HPEN oldpen = (HPEN)SelectObject(gc_, newpen); DeleteObject(oldpen); DeleteObject(fl_current_xmap->pen); fl_current_xmap->pen = newpen; diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx index 78b3482aa..c6ce9d044 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx @@ -36,16 +36,16 @@ // --- line and polygon drawing with integer coordinates void Fl_GDI_Graphics_Driver::point(int x, int y) { - SetPixel(gc, x, y, fl_RGB()); + SetPixel(gc_, x, y, fl_RGB()); } void Fl_GDI_Graphics_Driver::rect(int x, int y, int w, int h) { if (w<=0 || h<=0) return; - MoveToEx(gc, x, y, 0L); - LineTo(gc, x+w-1, y); - LineTo(gc, x+w-1, y+h-1); - LineTo(gc, x, y+h-1); - LineTo(gc, x, y); + MoveToEx(gc_, x, y, 0L); + LineTo(gc_, x+w-1, y); + LineTo(gc_, x+w-1, y+h-1); + LineTo(gc_, x, y+h-1); + LineTo(gc_, x, y); } void Fl_GDI_Graphics_Driver::focus_rect(int x, int y, int w, int h) { @@ -64,79 +64,79 @@ void Fl_GDI_Graphics_Driver::rectf(int x, int y, int w, int h) { RECT rect; rect.left = x; rect.top = y; rect.right = x + w; rect.bottom = y + h; - FillRect(gc, &rect, fl_brush()); + FillRect(gc_, &rect, fl_brush()); } void Fl_GDI_Graphics_Driver::line(int x, int y, int x1, int y1) { - MoveToEx(gc, x, y, 0L); - LineTo(gc, x1, y1); - SetPixel(gc, x1, y1, fl_RGB()); + MoveToEx(gc_, x, y, 0L); + LineTo(gc_, x1, y1); + SetPixel(gc_, x1, y1, fl_RGB()); } void Fl_GDI_Graphics_Driver::line(int x, int y, int x1, int y1, int x2, int y2) { - MoveToEx(gc, x, y, 0L); - LineTo(gc, x1, y1); - LineTo(gc, x2, y2); - SetPixel(gc, x2, y2, fl_RGB()); + MoveToEx(gc_, x, y, 0L); + LineTo(gc_, x1, y1); + LineTo(gc_, x2, y2); + SetPixel(gc_, x2, y2, fl_RGB()); } void Fl_GDI_Graphics_Driver::xyline(int x, int y, int x1) { - MoveToEx(gc, x, y, 0L); LineTo(gc, x1+1, y); + MoveToEx(gc_, x, y, 0L); LineTo(gc_, x1+1, y); } void Fl_GDI_Graphics_Driver::xyline(int x, int y, int x1, int y2) { if (y2 < y) y2--; else y2++; - MoveToEx(gc, x, y, 0L); - LineTo(gc, x1, y); - LineTo(gc, x1, y2); + MoveToEx(gc_, x, y, 0L); + LineTo(gc_, x1, y); + LineTo(gc_, x1, y2); } void Fl_GDI_Graphics_Driver::xyline(int x, int y, int x1, int y2, int x3) { if(x3 < x1) x3--; else x3++; - MoveToEx(gc, x, y, 0L); - LineTo(gc, x1, y); - LineTo(gc, x1, y2); - LineTo(gc, x3, y2); + MoveToEx(gc_, x, y, 0L); + LineTo(gc_, x1, y); + LineTo(gc_, x1, y2); + LineTo(gc_, x3, y2); } void Fl_GDI_Graphics_Driver::yxline(int x, int y, int y1) { if (y1 < y) y1--; else y1++; - MoveToEx(gc, x, y, 0L); LineTo(gc, x, y1); + MoveToEx(gc_, x, y, 0L); LineTo(gc_, x, y1); } void Fl_GDI_Graphics_Driver::yxline(int x, int y, int y1, int x2) { if (x2 > x) x2++; else x2--; - MoveToEx(gc, x, y, 0L); - LineTo(gc, x, y1); - LineTo(gc, x2, y1); + MoveToEx(gc_, x, y, 0L); + LineTo(gc_, x, y1); + LineTo(gc_, x2, y1); } void Fl_GDI_Graphics_Driver::yxline(int x, int y, int y1, int x2, int y3) { if(y3<y1) y3--; else y3++; - MoveToEx(gc, x, y, 0L); - LineTo(gc, x, y1); - LineTo(gc, x2, y1); - LineTo(gc, x2, y3); + MoveToEx(gc_, x, y, 0L); + LineTo(gc_, x, y1); + LineTo(gc_, x2, y1); + LineTo(gc_, x2, y3); } void Fl_GDI_Graphics_Driver::loop(int x, int y, int x1, int y1, int x2, int y2) { - MoveToEx(gc, x, y, 0L); - LineTo(gc, x1, y1); - LineTo(gc, x2, y2); - LineTo(gc, x, y); + MoveToEx(gc_, x, y, 0L); + LineTo(gc_, x1, y1); + LineTo(gc_, x2, y2); + LineTo(gc_, x, y); } void Fl_GDI_Graphics_Driver::loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) { - MoveToEx(gc, x, y, 0L); - LineTo(gc, x1, y1); - LineTo(gc, x2, y2); - LineTo(gc, x3, y3); - LineTo(gc, x, y); + MoveToEx(gc_, x, y, 0L); + LineTo(gc_, x1, y1); + LineTo(gc_, x2, y2); + LineTo(gc_, x3, y3); + LineTo(gc_, x, y); } void Fl_GDI_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int y2) { @@ -144,8 +144,8 @@ void Fl_GDI_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int y p[0].x = x; p[0].y = y; p[1].x = x1; p[1].y = y1; p[2].x = x2; p[2].y = y2; - SelectObject(gc, fl_brush()); - Polygon(gc, p, 3); + SelectObject(gc_, fl_brush()); + Polygon(gc_, p, 3); } void Fl_GDI_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) { @@ -154,8 +154,8 @@ void Fl_GDI_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int y p[1].x = x1; p[1].y = y1; p[2].x = x2; p[2].y = y2; p[3].x = x3; p[3].y = y3; - SelectObject(gc, fl_brush()); - Polygon(gc, p, 4); + SelectObject(gc_, fl_brush()); + Polygon(gc_, p, 4); } // --- clipping @@ -197,7 +197,7 @@ int Fl_GDI_Graphics_Driver::clip_box(int x, int y, int w, int h, int& X, int& Y, GetRgnBox(temp, &rect); if (Fl_Surface_Device::surface() != Fl_Display_Device::display_device()) { // if print context, convert coords from device to logical POINT pt[2] = { {rect.left, rect.top}, {rect.right, rect.bottom} }; - DPtoLP(gc, pt, 2); + DPtoLP(gc_, pt, 2); X = pt[0].x; Y = pt[0].y; W = pt[1].x - X; H = pt[1].y - Y; } else { @@ -217,7 +217,7 @@ int Fl_GDI_Graphics_Driver::not_clipped(int x, int y, int w, int h) { RECT rect; if (Fl_Surface_Device::surface() != Fl_Display_Device::display_device()) { // in case of print context, convert coords from logical to device POINT pt[2] = { {x, y}, {x + w, y + h} }; - LPtoDP(gc, pt, 2); + LPtoDP(gc_, pt, 2); rect.left = pt[0].x; rect.top = pt[0].y; rect.right = pt[1].x; rect.bottom = pt[1].y; } else { rect.left = x; rect.top = y; rect.right = x+w; rect.bottom = y+h; @@ -244,7 +244,7 @@ void Fl_GDI_Graphics_Driver::pop_clip() { void Fl_GDI_Graphics_Driver::restore_clip() { fl_clip_state_number++; Fl_Region r = rstack[rstackptr]; - SelectClipRgn(gc, r); //if r is NULL, clip is automatically cleared + SelectClipRgn(gc_, r); //if r is NULL, clip is automatically cleared } diff --git a/src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx b/src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx index 4107a47fc..cb871a6ac 100644 --- a/src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx +++ b/src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx @@ -41,7 +41,7 @@ void Fl_GDI_Graphics_Driver::vertex(double x,double y) { } void Fl_GDI_Graphics_Driver::end_points() { - for (int i=0; i<n; i++) SetPixel(gc, p[i].x, p[i].y, fl_RGB()); + for (int i=0; i<n; i++) SetPixel(gc_, p[i].x, p[i].y, fl_RGB()); } void Fl_GDI_Graphics_Driver::end_line() { @@ -49,7 +49,7 @@ void Fl_GDI_Graphics_Driver::end_line() { end_points(); return; } - if (n>1) Polyline(gc, p, n); + if (n>1) Polyline(gc_, p, n); } void Fl_GDI_Graphics_Driver::end_loop() { @@ -65,8 +65,8 @@ void Fl_GDI_Graphics_Driver::end_polygon() { return; } if (n>2) { - SelectObject(gc, fl_brush()); - Polygon(gc, p, n); + SelectObject(gc_, fl_brush()); + Polygon(gc_, p, n); } } @@ -94,8 +94,8 @@ void Fl_GDI_Graphics_Driver::end_complex_polygon() { return; } if (n>2) { - SelectObject(gc, fl_brush()); - PolyPolygon(gc, p, counts, numcount); + SelectObject(gc_, fl_brush()); + PolyPolygon(gc_, p, counts, numcount); } } @@ -114,10 +114,10 @@ void Fl_GDI_Graphics_Driver::circle(double x, double y,double r) { int h = (int)rint(yt+ry)-lly; if (what==POLYGON) { - SelectObject(gc, fl_brush()); - Pie(gc, llx, lly, llx+w, lly+h, 0,0, 0,0); + SelectObject(gc_, fl_brush()); + Pie(gc_, llx, lly, llx+w, lly+h, 0,0, 0,0); } else - Arc(gc, llx, lly, llx+w, lly+h, 0,0, 0,0); + Arc(gc_, llx, lly, llx+w, lly+h, 0,0, 0,0); } #endif // FL_CFG_GFX_GDI_VERTEX_CXX diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx index 657e7eb26..8f14af883 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx @@ -25,13 +25,13 @@ const char *Fl_Quartz_Graphics_Driver::class_id = "Fl_Quartz_Graphics_Driver"; /* Reference to the current CGContext For back-compatibility only. The preferred procedure to get this reference is - Fl_Surface_Device::surface()->driver()->get_gc(). + Fl_Surface_Device::surface()->driver()->gc(). */ CGContextRef fl_gc = 0; void Fl_Graphics_Driver::global_gc() { - fl_gc = (CGContextRef)get_gc(); + fl_gc = (CGContextRef)gc(); } /* @@ -128,13 +128,13 @@ void fl_begin_offscreen(Fl_Offscreen ctx) { _ss = Fl_Surface_Device::surface(); Fl_Display_Device::display_device()->set_current(); if (stack_ix<stack_max) { - stack_gc[stack_ix] = (CGContextRef)fl_graphics_driver->get_gc(); + stack_gc[stack_ix] = (CGContextRef)fl_graphics_driver->gc(); stack_window[stack_ix] = fl_window; } else fprintf(stderr, "FLTK CGContext Stack overflow error\n"); stack_ix++; - fl_graphics_driver->set_gc(ctx); + fl_graphics_driver->gc(ctx); fl_window = 0; CGContextSaveGState(ctx); fl_graphics_driver->push_no_clip(); @@ -145,7 +145,7 @@ void fl_begin_offscreen(Fl_Offscreen ctx) { */ void fl_end_offscreen() { fl_graphics_driver->pop_clip(); - CGContextRef gc = (CGContextRef)fl_graphics_driver->get_gc(); + CGContextRef gc = (CGContextRef)fl_graphics_driver->gc(); CGContextRestoreGState(gc); // matches CGContextSaveGState in fl_begin_offscreen() CGContextFlush(gc); @@ -154,7 +154,7 @@ void fl_end_offscreen() { else fprintf(stderr, "FLTK CGContext Stack underflow error\n"); if (stack_ix<stack_max) { - fl_graphics_driver->set_gc(stack_gc[stack_ix]); + fl_graphics_driver->gc(stack_gc[stack_ix]); fl_window = stack_window[stack_ix]; } _ss->set_current(); diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h index 3e069040f..b5565e30a 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h @@ -39,13 +39,14 @@ This class is implemented only on the Mac OS X platform. */ class Fl_Quartz_Graphics_Driver : public Fl_Graphics_Driver { - CGContextRef gc; +protected: + CGContextRef gc_; 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) {if (ctxt != gc) global_gc(); gc = (CGContextRef)ctxt; } - virtual void *get_gc() {return gc;} + virtual void gc(void *ctxt) {if (ctxt != gc_) global_gc(); gc_ = (CGContextRef)ctxt; } + virtual void *gc() {return gc_;} char can_do_alpha_blending(); // --- bitmap stuff diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_arci.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_arci.cxx index 4b1a164df..d0f63fcee 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_arci.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_arci.cxx @@ -30,42 +30,42 @@ void Fl_Quartz_Graphics_Driver::arc(int x,int y,int w,int h,double a1,double a2) if (w <= 0 || h <= 0) return; a1 = (-a1)/180.0f*M_PI; a2 = (-a2)/180.0f*M_PI; float cx = x + 0.5f*w - 0.5f, cy = y + 0.5f*h - 0.5f; - CGContextSetShouldAntialias(gc, true); + CGContextSetShouldAntialias(gc_, true); if (w!=h) { - CGContextSaveGState(gc); - CGContextTranslateCTM(gc, cx, cy); - CGContextScaleCTM(gc, w-1.0f, h-1.0f); - CGContextAddArc(gc, 0, 0, 0.5, a1, a2, 1); - CGContextRestoreGState(gc); + CGContextSaveGState(gc_); + CGContextTranslateCTM(gc_, cx, cy); + CGContextScaleCTM(gc_, w-1.0f, h-1.0f); + CGContextAddArc(gc_, 0, 0, 0.5, a1, a2, 1); + CGContextRestoreGState(gc_); } else { float r = (w+h)*0.25f-0.5f; - CGContextAddArc(gc, cx, cy, r, a1, a2, 1); + CGContextAddArc(gc_, cx, cy, r, a1, a2, 1); } - CGContextStrokePath(gc); - CGContextSetShouldAntialias(gc, false); + CGContextStrokePath(gc_); + CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::pie(int x,int y,int w,int h,double a1,double a2) { if (w <= 0 || h <= 0) return; a1 = (-a1)/180.0f*M_PI; a2 = (-a2)/180.0f*M_PI; float cx = x + 0.5f*w - 0.5f, cy = y + 0.5f*h - 0.5f; - CGContextSetShouldAntialias(gc, true); + CGContextSetShouldAntialias(gc_, true); if (w!=h) { - CGContextSaveGState(gc); - CGContextTranslateCTM(gc, cx, cy); - CGContextScaleCTM(gc, w, h); - CGContextAddArc(gc, 0, 0, 0.5, a1, a2, 1); - CGContextAddLineToPoint(gc, 0, 0); - CGContextClosePath(gc); - CGContextRestoreGState(gc); + CGContextSaveGState(gc_); + CGContextTranslateCTM(gc_, cx, cy); + CGContextScaleCTM(gc_, w, h); + CGContextAddArc(gc_, 0, 0, 0.5, a1, a2, 1); + CGContextAddLineToPoint(gc_, 0, 0); + CGContextClosePath(gc_); + CGContextRestoreGState(gc_); } else { float r = (w+h)*0.25f; - CGContextAddArc(gc, cx, cy, r, a1, a2, 1); - CGContextAddLineToPoint(gc, cx, cy); - CGContextClosePath(gc); + CGContextAddArc(gc_, cx, cy, r, a1, a2, 1); + CGContextAddLineToPoint(gc_, cx, cy); + CGContextClosePath(gc_); } - CGContextFillPath(gc); - CGContextSetShouldAntialias(gc, false); + CGContextFillPath(gc_); + CGContextSetShouldAntialias(gc_, false); } #endif // FL_CFG_GFX_QUARTZ diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_color.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_color.cxx index c321419ee..f9dc9e484 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_color.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_color.cxx @@ -53,12 +53,12 @@ void Fl_Quartz_Graphics_Driver::color(Fl_Color i) { g = c>>16; b = c>> 8; } - if (!gc) return; // no context yet? We will assign the color later. + if (!gc_) return; // no context yet? We will assign the color later. float fr = r/255.0f; float fg = g/255.0f; float fb = b/255.0f; - CGContextSetRGBFillColor(gc, fr, fg, fb, 1.0f); - CGContextSetRGBStrokeColor(gc, fr, fg, fb, 1.0f); + CGContextSetRGBFillColor(gc_, fr, fg, fb, 1.0f); + CGContextSetRGBStrokeColor(gc_, fr, fg, fb, 1.0f); } void Fl_Quartz_Graphics_Driver::color(uchar r, uchar g, uchar b) { @@ -66,9 +66,9 @@ void Fl_Quartz_Graphics_Driver::color(uchar r, uchar g, uchar b) { float fr = r/255.0f; float fg = g/255.0f; float fb = b/255.0f; - if (!gc) return; // no context yet? We will assign the color later. - CGContextSetRGBFillColor(gc, fr, fg, fb, 1.0f); - CGContextSetRGBStrokeColor(gc, fr, fg, fb, 1.0f); + if (!gc_) return; // no context yet? We will assign the color later. + CGContextSetRGBFillColor(gc_, fr, fg, fb, 1.0f); + CGContextSetRGBStrokeColor(gc_, fr, fg, fb, 1.0f); } // FIXME: this function should not be here! It's not part of the driver. diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx index 1d909b488..48e2c8f19 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx @@ -580,7 +580,7 @@ if (fl_mac_os_version >= Fl_X::CoreText_threshold) { // activate the current GC iSize = sizeof(CGContextRef); iTag = kATSUCGContextTag; - iValuePtr = &gc; + iValuePtr = &gc_; ATSUSetLayoutControls(layout, 1, &iTag, &iSize, &iValuePtr); // now measure the bounding box err = ATSUSetTextPointerLocation(layout, txt, kATSUFromTextBeginning, n, n); @@ -632,10 +632,10 @@ if (fl_mac_os_version >= Fl_X::CoreText_threshold) { CFRelease(str16); CTLineRef ctline = CTLineCreateWithAttributedString(mastr); CFRelease(mastr); - CGContextSetTextPosition(gc, 0, 0); - CGContextSetShouldAntialias(gc, true); - CGRect rect = CTLineGetImageBounds(ctline, gc); - CGContextSetShouldAntialias(gc, false); + CGContextSetTextPosition(gc_, 0, 0); + CGContextSetShouldAntialias(gc_, true); + CGRect rect = CTLineGetImageBounds(ctline, gc_); + CGContextSetShouldAntialias(gc_, false); CFRelease(ctline); dx = floor(rect.origin.x + 0.5); dy = floor(- rect.origin.y - rect.size.height + 0.5); @@ -657,7 +657,7 @@ else { // activate the current GC iSize = sizeof(CGContextRef); iTag = kATSUCGContextTag; - iValuePtr = &gc; + iValuePtr = &gc_; ATSUSetLayoutControls(layout, 1, &iTag, &iSize, &iValuePtr); // now measure the bounding box err = ATSUSetTextPointerLocation(layout, txt, kATSUFromTextBeginning, n, n); @@ -692,6 +692,7 @@ static CGColorRef flcolortocgcolor(Fl_Color i) static void fl_mac_draw(const char *str, int n, float x, float y, Fl_Graphics_Driver *driver) { // convert to UTF-16 first UniChar *uniStr = mac_Utf8_to_Utf16(str, n, &n); + CGContextRef gc = (CGContextRef)driver->gc(); #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 if (fl_mac_os_version >= Fl_X::CoreText_threshold) { CFMutableStringRef str16 = CFStringCreateMutableWithExternalCharactersNoCopy(NULL, uniStr, n, n, kCFAllocatorNull); @@ -704,7 +705,6 @@ static void fl_mac_draw(const char *str, int n, float x, float y, Fl_Graphics_Dr CFRelease(color); CTLineRef ctline = CTLineCreateWithAttributedString(mastr); CFRelease(mastr); - CGContextRef gc = (CGContextRef)driver->get_gc(); CGContextSetTextMatrix(gc, font_mx); CGContextSetTextPosition(gc, x, y); CGContextSetShouldAntialias(gc, true); @@ -746,11 +746,11 @@ void Fl_Quartz_Graphics_Driver::draw(const char* str, int n, int x, int y) { } void Fl_Quartz_Graphics_Driver::draw(int angle, const char *str, int n, int x, int y) { - CGContextSaveGState(gc); - CGContextTranslateCTM(gc, x, y); - CGContextRotateCTM(gc, - angle*(M_PI/180) ); + CGContextSaveGState(gc_); + CGContextTranslateCTM(gc_, x, y); + CGContextRotateCTM(gc_, - angle*(M_PI/180) ); draw(str, n, 0, 0); - CGContextRestoreGState(gc); + CGContextRestoreGState(gc_); } void Fl_Quartz_Graphics_Driver::rtl_draw(const char* c, int n, int x, int y) { diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx index a36f34c82..e45e1abcb 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx @@ -3,7 +3,7 @@ // // MacOS image drawing code for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2012 by Bill Spitzak and others. +// Copyright 1998-2016 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -142,18 +142,18 @@ static void innards(const uchar *buf, int X, int Y, int W, int H, } void Fl_Quartz_Graphics_Driver::draw_image(const uchar* buf, int x, int y, int w, int h, int d, int l){ - innards(buf,x,y,w,h,d,l,(d<3&&d>-3),0,0,gc); + innards(buf,x,y,w,h,d,l,(d<3&&d>-3),0,0,gc_); } void Fl_Quartz_Graphics_Driver::draw_image(Fl_Draw_Image_Cb cb, void* data, int x, int y, int w, int h,int d) { - innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data,gc); + innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data,gc_); } void Fl_Quartz_Graphics_Driver::draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int l){ - innards(buf,x,y,w,h,d,l,1,0,0,gc); + innards(buf,x,y,w,h,d,l,1,0,0,gc_); } void Fl_Quartz_Graphics_Driver::draw_image_mono(Fl_Draw_Image_Cb cb, void* data, int x, int y, int w, int h,int d) { - innards(0,x,y,w,h,d,0,1,cb,data,gc); + innards(0,x,y,w,h,d,0,1,cb,data,gc_); } void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b) { @@ -166,7 +166,7 @@ void Fl_Quartz_Graphics_Driver::draw(Fl_Bitmap *bm, int XP, int YP, int WP, int if (bm->start(XP, YP, WP, HP, cx, cy, X, Y, W, H)) { return; } - if (bm->id_ && gc) { + if (bm->id_ && gc_) { draw_CGImage((CGImageRef)bm->id_, X,Y,W,H, cx, cy, bm->w(), bm->h()); } } @@ -223,7 +223,7 @@ void Fl_Quartz_Graphics_Driver::draw(Fl_RGB_Image *img, int XP, int YP, int WP, CGColorSpaceRelease(lut); CGDataProviderRelease(src); } - if (img->id_ && gc) { + if (img->id_ && gc_) { if (!img->alloc_array && has_feature(PRINTER) && !CGImageGetShouldInterpolate((CGImageRef)img->id_)) { // When printing, the image data is used when the page is completed, that is, after return from this function. // If the image has alloc_array = 0, we must protect against image data being freed before it is used: @@ -252,12 +252,12 @@ int Fl_Quartz_Graphics_Driver::draw_scaled(Fl_Image *img, int XP, int YP, int WP fl_clip_box(XP,YP,WP,HP,X,Y,W,H); // X,Y,W,H will give the unclipped area of XP,YP,WP,HP if (W == 0 || H == 0) return 1; fl_push_no_clip(); // remove the FLTK clip that can't be rescaled - CGContextSaveGState(gc); - CGContextClipToRect(gc, CGRectMake(X, Y, W, H)); // this clip path will be rescaled & translated - CGContextTranslateCTM(gc, XP, YP); - CGContextScaleCTM(gc, float(WP)/img->w(), float(HP)/img->h()); + CGContextSaveGState(gc_); + CGContextClipToRect(gc_, CGRectMake(X, Y, W, H)); // this clip path will be rescaled & translated + CGContextTranslateCTM(gc_, XP, YP); + CGContextScaleCTM(gc_, float(WP)/img->w(), float(HP)/img->h()); img->draw(0, 0, img->w(), img->h(), 0, 0); - CGContextRestoreGState(gc); + CGContextRestoreGState(gc_); fl_pop_clip(); // restore FLTK's clip return 1; } @@ -317,14 +317,14 @@ fl_uintptr_t Fl_Quartz_Graphics_Driver::cache(Fl_Pixmap *img, int w, int h, cons void Fl_Quartz_Graphics_Driver::draw_CGImage(CGImageRef cgimg, int x, int y, int w, int h, int srcx, int srcy, int sw, int sh) { CGRect rect = CGRectMake(x, y, w, h); - CGContextSaveGState(gc); - CGContextClipToRect(gc, CGRectOffset(rect, -0.5, -0.5 )); + CGContextSaveGState(gc_); + CGContextClipToRect(gc_, CGRectOffset(rect, -0.5, -0.5 )); // move graphics context to origin of vertically reversed image // The 0.5 here cancels the 0.5 offset present in Quartz graphics contexts. // Thus, image and surface pixels are in phase if there's no scaling. - CGContextTranslateCTM(gc, rect.origin.x - srcx - 0.5, rect.origin.y - srcy + sh - 0.5); - CGContextScaleCTM(gc, 1, -1); - CGAffineTransform at = CGContextGetCTM(gc); + CGContextTranslateCTM(gc_, rect.origin.x - srcx - 0.5, rect.origin.y - srcy + sh - 0.5); + CGContextScaleCTM(gc_, 1, -1); + CGAffineTransform at = CGContextGetCTM(gc_); if (at.a == at.d && at.b == 0 && at.c == 0) { // proportional scaling, no rotation // We handle x2 and /2 scalings that occur when drawing to // a double-resolution bitmap, and when drawing a double-resolution bitmap to display. @@ -345,10 +345,10 @@ void Fl_Quartz_Graphics_Driver::draw_CGImage(CGImageRef cgimg, int x, int y, int deltay = (at.ty - round(at.ty))*2; } } - if (doit) CGContextTranslateCTM(gc, -deltax, -deltay); + if (doit) CGContextTranslateCTM(gc_, -deltax, -deltay); } - CGContextDrawImage(gc, CGRectMake(0, 0, sw, sh), cgimg); - CGContextRestoreGState(gc); + CGContextDrawImage(gc_, CGRectMake(0, 0, sw, sh), cgimg); + CGContextRestoreGState(gc_); } // diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_line_style.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_line_style.cxx index 9231b0581..134f6b2be 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_line_style.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_line_style.cxx @@ -94,7 +94,7 @@ void Fl_Quartz_Graphics_Driver::line_style(int style, int width, char* dashes) { fl_quartz_line_pattern = 0; fl_quartz_line_pattern_size = 0; } - fl_quartz_restore_line_style_((CGContextRef)get_gc()); + fl_quartz_restore_line_style_((CGContextRef)gc()); } #endif // FL_CFG_GFX_QUARTZ diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_rect.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_rect.cxx index e641767d4..277abfdfb 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_rect.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_rect.cxx @@ -38,162 +38,162 @@ extern float fl_quartz_line_width_; // --- line and polygon drawing with integer coordinates void Fl_Quartz_Graphics_Driver::point(int x, int y) { - CGContextFillRect(gc, CGRectMake(x - 0.5, y - 0.5, 1, 1) ); + CGContextFillRect(gc_, CGRectMake(x - 0.5, y - 0.5, 1, 1) ); } void Fl_Quartz_Graphics_Driver::rect(int x, int y, int w, int h) { if (w<=0 || h<=0) return; - if ( (!has_feature(PRINTER)) && fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); + if ( (!has_feature(PRINTER)) && fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); CGRect rect = CGRectMake(x, y, w-1, h-1); - CGContextStrokeRect(gc, rect); - if ( (!has_feature(PRINTER)) && fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + CGContextStrokeRect(gc_, rect); + if ( (!has_feature(PRINTER)) && fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::rectf(int x, int y, int w, int h) { if (w<=0 || h<=0) return; CGRect rect = CGRectMake(x - 0.5, y - 0.5, w , h); - CGContextFillRect(gc, rect); + CGContextFillRect(gc_, rect); } void Fl_Quartz_Graphics_Driver::line(int x, int y, int x1, int y1) { - if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x1, y1); - CGContextStrokePath(gc); - if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x1, y1); + CGContextStrokePath(gc_); + if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::line(int x, int y, int x1, int y1, int x2, int y2) { - if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x1, y1); - CGContextAddLineToPoint(gc, x2, y2); - CGContextStrokePath(gc); - if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x1, y1); + CGContextAddLineToPoint(gc_, x2, y2); + CGContextStrokePath(gc_); + if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::xyline(int x, int y, int x1) { - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x1, y); - CGContextStrokePath(gc); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x1, y); + CGContextStrokePath(gc_); if (Fl_Display_Device::high_resolution()) { /* On retina displays, all xyline() and yxline() functions produce lines that are half-unit (or one pixel) too short at both ends. This is corrected by filling at both ends rectangles of size one unit by line-width. */ - CGContextFillRect(gc, CGRectMake(x-0.5 , y - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); - CGContextFillRect(gc, CGRectMake(x1-0.5 , y - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); + CGContextFillRect(gc_, CGRectMake(x-0.5 , y - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); + CGContextFillRect(gc_, CGRectMake(x1-0.5 , y - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); } - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::xyline(int x, int y, int x1, int y2) { - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x1, y); - CGContextAddLineToPoint(gc, x1, y2); - CGContextStrokePath(gc); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x1, y); + CGContextAddLineToPoint(gc_, x1, y2); + CGContextStrokePath(gc_); if (Fl_Display_Device::high_resolution()) { - CGContextFillRect(gc, CGRectMake(x-0.5, y - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); - CGContextFillRect(gc, CGRectMake(x1 - fl_quartz_line_width_/2, y2-0.5, fl_quartz_line_width_, 1)); + CGContextFillRect(gc_, CGRectMake(x-0.5, y - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); + CGContextFillRect(gc_, CGRectMake(x1 - fl_quartz_line_width_/2, y2-0.5, fl_quartz_line_width_, 1)); } - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::xyline(int x, int y, int x1, int y2, int x3) { - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x1, y); - CGContextAddLineToPoint(gc, x1, y2); - CGContextAddLineToPoint(gc, x3, y2); - CGContextStrokePath(gc); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x1, y); + CGContextAddLineToPoint(gc_, x1, y2); + CGContextAddLineToPoint(gc_, x3, y2); + CGContextStrokePath(gc_); if (Fl_Display_Device::high_resolution()) { - CGContextFillRect(gc, CGRectMake(x-0.5, y - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); - CGContextFillRect(gc, CGRectMake(x3-0.5, y2 - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); + CGContextFillRect(gc_, CGRectMake(x-0.5, y - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); + CGContextFillRect(gc_, CGRectMake(x3-0.5, y2 - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); } - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::yxline(int x, int y, int y1) { - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x, y1); - CGContextStrokePath(gc); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x, y1); + CGContextStrokePath(gc_); if (Fl_Display_Device::high_resolution()) { - CGContextFillRect(gc, CGRectMake(x - fl_quartz_line_width_/2, y-0.5, fl_quartz_line_width_, 1)); - CGContextFillRect(gc, CGRectMake(x - fl_quartz_line_width_/2, y1-0.5, fl_quartz_line_width_, 1)); + CGContextFillRect(gc_, CGRectMake(x - fl_quartz_line_width_/2, y-0.5, fl_quartz_line_width_, 1)); + CGContextFillRect(gc_, CGRectMake(x - fl_quartz_line_width_/2, y1-0.5, fl_quartz_line_width_, 1)); } - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::yxline(int x, int y, int y1, int x2) { - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x, y1); - CGContextAddLineToPoint(gc, x2, y1); - CGContextStrokePath(gc); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x, y1); + CGContextAddLineToPoint(gc_, x2, y1); + CGContextStrokePath(gc_); if (Fl_Display_Device::high_resolution()) { - CGContextFillRect(gc, CGRectMake(x - fl_quartz_line_width_/2, y-0.5, fl_quartz_line_width_, 1)); - CGContextFillRect(gc, CGRectMake(x2-0.5, y1 - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); + CGContextFillRect(gc_, CGRectMake(x - fl_quartz_line_width_/2, y-0.5, fl_quartz_line_width_, 1)); + CGContextFillRect(gc_, CGRectMake(x2-0.5, y1 - fl_quartz_line_width_/2, 1 , fl_quartz_line_width_)); } - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::yxline(int x, int y, int y1, int x2, int y3) { - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x, y1); - CGContextAddLineToPoint(gc, x2, y1); - CGContextAddLineToPoint(gc, x2, y3); - CGContextStrokePath(gc); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x, y1); + CGContextAddLineToPoint(gc_, x2, y1); + CGContextAddLineToPoint(gc_, x2, y3); + CGContextStrokePath(gc_); if (Fl_Display_Device::high_resolution()) { - CGContextFillRect(gc, CGRectMake(x - fl_quartz_line_width_/2, y-0.5, fl_quartz_line_width_, 1)); - CGContextFillRect(gc, CGRectMake(x2 - fl_quartz_line_width_/2, y3-0.5, fl_quartz_line_width_, 1)); + CGContextFillRect(gc_, CGRectMake(x - fl_quartz_line_width_/2, y-0.5, fl_quartz_line_width_, 1)); + CGContextFillRect(gc_, CGRectMake(x2 - fl_quartz_line_width_/2, y3-0.5, fl_quartz_line_width_, 1)); } - if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + if (has_feature(PRINTER) || fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::loop(int x, int y, int x1, int y1, int x2, int y2) { - CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x1, y1); - CGContextAddLineToPoint(gc, x2, y2); - CGContextClosePath(gc); - CGContextStrokePath(gc); - CGContextSetShouldAntialias(gc, false); + CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x1, y1); + CGContextAddLineToPoint(gc_, x2, y2); + CGContextClosePath(gc_); + CGContextStrokePath(gc_); + CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) { - CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x1, y1); - CGContextAddLineToPoint(gc, x2, y2); - CGContextAddLineToPoint(gc, x3, y3); - CGContextClosePath(gc); - CGContextStrokePath(gc); - CGContextSetShouldAntialias(gc, false); + CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x1, y1); + CGContextAddLineToPoint(gc_, x2, y2); + CGContextAddLineToPoint(gc_, x3, y3); + CGContextClosePath(gc_); + CGContextStrokePath(gc_); + CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int y2) { - CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x1, y1); - CGContextAddLineToPoint(gc, x2, y2); - CGContextClosePath(gc); - CGContextFillPath(gc); - CGContextSetShouldAntialias(gc, false); + CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x1, y1); + CGContextAddLineToPoint(gc_, x2, y2); + CGContextClosePath(gc_); + CGContextFillPath(gc_); + CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) { - CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, x, y); - CGContextAddLineToPoint(gc, x1, y1); - CGContextAddLineToPoint(gc, x2, y2); - CGContextAddLineToPoint(gc, x3, y3); - CGContextClosePath(gc); - CGContextFillPath(gc); - CGContextSetShouldAntialias(gc, false); + CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, x, y); + CGContextAddLineToPoint(gc_, x1, y1); + CGContextAddLineToPoint(gc_, x2, y2); + CGContextAddLineToPoint(gc_, x3, y3); + CGContextClosePath(gc_); + CGContextFillPath(gc_); + CGContextSetShouldAntialias(gc_, false); } // --- clipping @@ -271,28 +271,28 @@ extern void fl_quartz_restore_line_style_(CGContextRef gc); void Fl_Quartz_Graphics_Driver::restore_clip() { fl_clip_state_number++; Fl_Region r = rstack[rstackptr]; - if ( fl_window || gc ) { // clipping for a true window or an offscreen buffer - if (gc) { - CGContextRestoreGState(gc); - CGContextSaveGState(gc); + if ( fl_window || gc_ ) { // clipping for a true window or an offscreen buffer + if (gc_) { + CGContextRestoreGState(gc_); + CGContextSaveGState(gc_); } // FLTK has only one global graphics state. // This copies the FLTK state into the current Quartz context if ( ! fl_window ) { // a bitmap context - CGFloat hgt = CGBitmapContextGetHeight(gc); - CGAffineTransform at = CGContextGetCTM(gc); + CGFloat hgt = CGBitmapContextGetHeight(gc_); + CGAffineTransform at = CGContextGetCTM(gc_); CGFloat offset = 0.5; if (at.a != 1 && at.a == at.d && at.b == 0 && at.c == 0) { // proportional scaling, no rotation hgt /= at.a; offset /= at.a; } - CGContextTranslateCTM(gc, offset, hgt-offset); - CGContextScaleCTM(gc, 1.0f, -1.0f); // now 0,0 is top-left point of the context + CGContextTranslateCTM(gc_, offset, hgt-offset); + CGContextScaleCTM(gc_, 1.0f, -1.0f); // now 0,0 is top-left point of the context } color(color()); - fl_quartz_restore_line_style_(gc); + fl_quartz_restore_line_style_(gc_); if (r) { //apply program clip - CGContextClipToRects(gc, r->rects, r->count); + CGContextClipToRects(gc_, r->rects, r->count); } } } diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx index 6400c5056..1ff8755e8 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx @@ -41,13 +41,13 @@ void Fl_Quartz_Graphics_Driver::vertex(double x,double y) { } void Fl_Quartz_Graphics_Driver::end_points() { - if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, true); + if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, true); for (int i=0; i<n; i++) { - CGContextMoveToPoint(gc, p[i].x, p[i].y); - CGContextAddLineToPoint(gc, p[i].x, p[i].y); - CGContextStrokePath(gc); + CGContextMoveToPoint(gc_, p[i].x, p[i].y); + CGContextAddLineToPoint(gc_, p[i].x, p[i].y); + CGContextStrokePath(gc_); } - if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc, false); + if (fl_quartz_line_width_ > 1.5f) CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::end_line() { @@ -56,12 +56,12 @@ void Fl_Quartz_Graphics_Driver::end_line() { return; } if (n<=1) return; - CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, p[0].x, p[0].y); + CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, p[0].x, p[0].y); for (int i=1; i<n; i++) - CGContextAddLineToPoint(gc, p[i].x, p[i].y); - CGContextStrokePath(gc); - CGContextSetShouldAntialias(gc, false); + CGContextAddLineToPoint(gc_, p[i].x, p[i].y); + CGContextStrokePath(gc_); + CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::end_loop() { @@ -77,13 +77,13 @@ void Fl_Quartz_Graphics_Driver::end_polygon() { return; } if (n<=1) return; - CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, p[0].x, p[0].y); + CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, p[0].x, p[0].y); for (int i=1; i<n; i++) - CGContextAddLineToPoint(gc, p[i].x, p[i].y); - CGContextClosePath(gc); - CGContextFillPath(gc); - CGContextSetShouldAntialias(gc, false); + CGContextAddLineToPoint(gc_, p[i].x, p[i].y); + CGContextClosePath(gc_); + CGContextFillPath(gc_); + CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::begin_complex_polygon() { @@ -108,13 +108,13 @@ void Fl_Quartz_Graphics_Driver::end_complex_polygon() { return; } if (n<=1) return; - CGContextSetShouldAntialias(gc, true); - CGContextMoveToPoint(gc, p[0].x, p[0].y); + CGContextSetShouldAntialias(gc_, true); + CGContextMoveToPoint(gc_, p[0].x, p[0].y); for (int i=1; i<n; i++) - CGContextAddLineToPoint(gc, p[i].x, p[i].y); - CGContextClosePath(gc); - CGContextFillPath(gc); - CGContextSetShouldAntialias(gc, false); + CGContextAddLineToPoint(gc_, p[i].x, p[i].y); + CGContextClosePath(gc_); + CGContextFillPath(gc_); + CGContextSetShouldAntialias(gc_, false); } void Fl_Quartz_Graphics_Driver::circle(double x, double y,double r) { @@ -129,10 +129,10 @@ void Fl_Quartz_Graphics_Driver::circle(double x, double y,double r) { // Quartz warning: circle won't scale to current matrix! // Last argument must be 0 (counter-clockwise) or it draws nothing under __LP64__ !!!! - CGContextSetShouldAntialias(gc, true); - CGContextAddArc(gc, xt, yt, (w+h)*0.25f, 0, 2.0f*M_PI, 0); - (what == POLYGON ? CGContextFillPath : CGContextStrokePath)(gc); - CGContextSetShouldAntialias(gc, false); + CGContextSetShouldAntialias(gc_, true); + CGContextAddArc(gc_, xt, yt, (w+h)*0.25f, 0, 2.0f*M_PI, 0); + (what == POLYGON ? CGContextFillPath : CGContextStrokePath)(gc_); + CGContextSetShouldAntialias(gc_, false); } #endif // FL_CFG_GFX_QUARTZ diff --git a/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx index cc0df0957..bc642fdde 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx @@ -59,7 +59,7 @@ int Fl_WinAPI_Screen_Driver::visual(int flags) { fl_GetDC(0); if (flags & FL_DOUBLE) return 0; - HDC gc = (HDC)Fl_Display_Device::display_device()->driver()->get_gc(); + HDC gc = (HDC)Fl_Display_Device::display_device()->driver()->gc(); if (!(flags & FL_INDEX) && GetDeviceCaps(gc,BITSPIXEL) <= 8) return 0; if ((flags & FL_RGB8) && GetDeviceCaps(gc,BITSPIXEL)<24) return 0; diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx index 0a7950388..477ec91bf 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx @@ -31,7 +31,7 @@ const char *Fl_Xlib_Graphics_Driver::class_id = "Fl_Xlib_Graphics_Driver"; /* Reference to the current graphics context For back-compatibility only. The preferred procedure to get this pointer is - Fl_Surface_Device::surface()->driver()->get_gc(). + Fl_Surface_Device::surface()->driver()->gc(). */ GC fl_gc = 0; @@ -49,14 +49,14 @@ Fl_Graphics_Driver *Fl_Graphics_Driver::newMainGraphicsDriver() return new Fl_Xlib_Graphics_Driver(); } -GC Fl_Xlib_Graphics_Driver::gc = NULL; +GC Fl_Xlib_Graphics_Driver::gc_ = NULL; Fl_Xlib_Graphics_Driver::Fl_Xlib_Graphics_Driver(void) { - if (!gc) { + if (!gc_) { 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; + gc_ = XCreateGC(fl_display, RootWindow(fl_display, fl_screen), 0, 0); + fl_gc = gc_; } } @@ -66,7 +66,7 @@ char Fl_Xlib_Graphics_Driver::can_do_alpha_blending() { void Fl_Xlib_Graphics_Driver::copy_offscreen(int x, int y, int w, int h, Fl_Offscreen pixmap, int srcx, int srcy) { - XCopyArea(fl_display, pixmap, fl_window, gc, srcx, srcy, w, h, x, y); + XCopyArea(fl_display, pixmap, fl_window, gc_, srcx, srcy, w, h, x, y); } void Fl_Xlib_Graphics_Driver::copy_offscreen_with_alpha(int x, int y, int w, int h, diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.h b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.h index f1e34cc38..19078c366 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.h +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver.h @@ -34,13 +34,13 @@ */ class FL_EXPORT Fl_Xlib_Graphics_Driver : public Fl_Graphics_Driver { protected: - static GC gc; + static GC gc_; public: static const char *class_id; Fl_Xlib_Graphics_Driver(void); const char *class_name() {return class_id;}; virtual int has_feature(driver_feature mask) { return mask & NATIVE; } - virtual void *get_gc() { return gc; } + virtual void *gc() { return gc_; } char can_do_alpha_blending(); // --- bitmap stuff diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx index d7ee9a8e2..e667fd9ba 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx @@ -3,7 +3,7 @@ // // Arc (integer) drawing functions for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2016 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -26,13 +26,13 @@ void Fl_Xlib_Graphics_Driver::arc(int x,int y,int w,int h,double a1,double a2) { if (w <= 0 || h <= 0) return; - XDrawArc(fl_display, fl_window, gc, x,y,w-1,h-1, int(a1*64),int((a2-a1)*64)); + XDrawArc(fl_display, fl_window, gc_, x,y,w-1,h-1, int(a1*64),int((a2-a1)*64)); } void Fl_Xlib_Graphics_Driver::pie(int x,int y,int w,int h,double a1,double a2) { if (w <= 0 || h <= 0) return; - XDrawArc(fl_display, fl_window, gc, x,y,w-1,h-1, int(a1*64),int((a2-a1)*64)); - XFillArc(fl_display, fl_window, gc, x,y,w-1,h-1, int(a1*64),int((a2-a1)*64)); + XDrawArc(fl_display, fl_window, gc_, x,y,w-1,h-1, int(a1*64),int((a2-a1)*64)); + XFillArc(fl_display, fl_window, gc_, x,y,w-1,h-1, int(a1*64),int((a2-a1)*64)); } // diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx index 56c24bdef..53768e236 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx @@ -3,7 +3,7 @@ // // Color functions for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2016 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -115,15 +115,15 @@ void Fl_Xlib_Graphics_Driver::color(Fl_Color i) { fl_color((uchar)(rgb >> 24), (uchar)(rgb >> 16), (uchar)(rgb >> 8)); } else { Fl_Graphics_Driver::color(i); - if(!gc) return; // don't get a default gc if current window is not yet created/valid - XSetForeground(fl_display, gc, fl_xpixel(i)); + if(!gc_) return; // don't get a default gc if current window is not yet created/valid + XSetForeground(fl_display, gc_, fl_xpixel(i)); } } void Fl_Xlib_Graphics_Driver::color(uchar r,uchar g,uchar b) { Fl_Graphics_Driver::color( fl_rgb_color(r, g, b) ); - if(!gc) return; // don't get a default gc if current window is not yet created/valid - XSetForeground(fl_display, gc, fl_xpixel(r,g,b)); + if(!gc_) return; // don't get a default gc if current window is not yet created/valid + XSetForeground(fl_display, gc_, fl_xpixel(r,g,b)); } /** \addtogroup fl_attributes diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx index d275d7bba..cdf304894 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx @@ -3,7 +3,7 @@ // // X11 font utilities for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2016 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -642,14 +642,14 @@ double Fl_Xlib_Graphics_Driver::width(unsigned int c) { } void Fl_Xlib_Graphics_Driver::text_extents(const char *c, int n, int &dx, int &dy, int &W, int &H) { - if (font_gc != gc) { + if (font_gc != gc_) { if (!font_descriptor()) font(FL_HELVETICA, FL_NORMAL_SIZE); - font_gc = gc; - XSetFont(fl_display, gc, font_descriptor()->font->fid); + font_gc = gc_; + XSetFont(fl_display, gc_, font_descriptor()->font->fid); } int xx, yy, ww, hh; xx = yy = ww = hh = 0; - if (gc) XUtf8_measure_extents(fl_display, fl_window, font_descriptor()->font, gc, &xx, &yy, &ww, &hh, c, n); + if (gc_) XUtf8_measure_extents(fl_display, fl_window, font_descriptor()->font, gc_, &xx, &yy, &ww, &hh, c, n); W = ww; H = hh; dx = xx; dy = yy; // This is the safe but mostly wrong thing we used to do... @@ -660,12 +660,12 @@ void Fl_Xlib_Graphics_Driver::text_extents(const char *c, int n, int &dx, int &d } void Fl_Xlib_Graphics_Driver::draw(const char* c, int n, int x, int y) { - if (font_gc != gc) { + if (font_gc != gc_) { if (!font_descriptor()) this->font(FL_HELVETICA, FL_NORMAL_SIZE); - font_gc = gc; - XSetFont(fl_display, gc, font_descriptor()->font->fid); + font_gc = gc_; + XSetFont(fl_display, gc_, font_descriptor()->font->fid); } - if (gc) XUtf8DrawString(fl_display, fl_window, font_descriptor()->font, gc, x, y, c, n); + if (gc_) XUtf8DrawString(fl_display, fl_window, font_descriptor()->font, gc_, x, y, c, n); } void Fl_Xlib_Graphics_Driver::draw(int angle, const char *str, int n, int x, int y) { @@ -674,11 +674,11 @@ void Fl_Xlib_Graphics_Driver::draw(int angle, const char *str, int n, int x, int } void Fl_Xlib_Graphics_Driver::rtl_draw(const char* c, int n, int x, int y) { - if (font_gc != gc) { + if (font_gc != gc_) { if (!font_descriptor()) this->font(FL_HELVETICA, FL_NORMAL_SIZE); - font_gc = gc; + font_gc = gc_; } - if (gc) XUtf8DrawRtlString(fl_display, fl_window, font_descriptor()->font, gc, x, y, c, n); + if (gc_) XUtf8DrawRtlString(fl_display, fl_window, font_descriptor()->font, gc_, x, y, c, n); } #endif // FL_DOXYGEN // diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx index 7e41bcb47..a653ca54d 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx @@ -3,7 +3,7 @@ // // Image drawing routines for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2010 by Bill Spitzak and others. +// Copyright 1998-2016 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -568,7 +568,7 @@ void Fl_Xlib_Graphics_Driver::draw_image(const uchar* buf, int x, int y, int w, const bool alpha = !!(d & FL_IMAGE_WITH_ALPHA); d &= ~FL_IMAGE_WITH_ALPHA; - innards(buf,x,y,w,h,d,l,(d<3&&d>-3),0,0,alpha,gc); + innards(buf,x,y,w,h,d,l,(d<3&&d>-3),0,0,alpha,gc_); } void Fl_Xlib_Graphics_Driver::draw_image(Fl_Draw_Image_Cb cb, void* data, int x, int y, int w, int h,int d) { @@ -576,14 +576,14 @@ void Fl_Xlib_Graphics_Driver::draw_image(Fl_Draw_Image_Cb cb, void* data, const bool alpha = !!(d & FL_IMAGE_WITH_ALPHA); d &= ~FL_IMAGE_WITH_ALPHA; - innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data,alpha,gc); + innards(0,x,y,w,h,d,0,(d<3&&d>-3),cb,data,alpha,gc_); } void Fl_Xlib_Graphics_Driver::draw_image_mono(const uchar* buf, int x, int y, int w, int h, int d, int l){ - innards(buf,x,y,w,h,d,l,1,0,0,0,gc); + innards(buf,x,y,w,h,d,l,1,0,0,0,gc_); } void Fl_Xlib_Graphics_Driver::draw_image_mono(Fl_Draw_Image_Cb cb, void* data, int x, int y, int w, int h,int d) { - innards(0,x,y,w,h,d,0,1,cb,data,0,gc); + innards(0,x,y,w,h,d,0,1,cb,data,0,gc_); } void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b) { @@ -593,7 +593,7 @@ void fl_rectf(int x, int y, int w, int h, uchar r, uchar g, uchar b) { } else { uchar c[3]; c[0] = r; c[1] = g; c[2] = b; - innards(c,x,y,w,h,0,0,0,0,0,0,(GC)fl_graphics_driver->get_gc()); + innards(c,x,y,w,h,0,0,0,0,0,0,(GC)fl_graphics_driver->gc()); } } @@ -612,13 +612,13 @@ void Fl_Xlib_Graphics_Driver::draw(Fl_Bitmap *bm, int XP, int YP, int WP, int HP return; } - XSetStipple(fl_display, gc, bm->id_); + XSetStipple(fl_display, gc_, bm->id_); int ox = X-cx; if (ox < 0) ox += bm->w(); int oy = Y-cy; if (oy < 0) oy += bm->h(); - XSetTSOrigin(fl_display, gc, ox, oy); - XSetFillStyle(fl_display, gc, FillStippled); - XFillRectangle(fl_display, fl_window, gc, X, Y, W, H); - XSetFillStyle(fl_display, gc, FillSolid); + XSetTSOrigin(fl_display, gc_, ox, oy); + XSetFillStyle(fl_display, gc_, FillStippled); + XFillRectangle(fl_display, fl_window, gc_, X, Y, W, H); + XSetFillStyle(fl_display, gc_, FillSolid); } @@ -729,10 +729,10 @@ void Fl_Xlib_Graphics_Driver::draw(Fl_RGB_Image *img, int XP, int YP, int WP, in cx += nx-X; X = nx; cy += ny-Y; Y = ny; // make X use the bitmap as a mask: - XSetClipMask(fl_display, gc, img->mask_); + XSetClipMask(fl_display, gc_, img->mask_); int ox = X-cx; if (ox < 0) ox += img->w(); int oy = Y-cy; if (oy < 0) oy += img->h(); - XSetClipOrigin(fl_display, gc, X-cx, Y-cy); + XSetClipOrigin(fl_display, gc_, X-cx, Y-cy); } if (img->d() == 4 && fl_can_do_alpha_blending()) @@ -742,7 +742,7 @@ void Fl_Xlib_Graphics_Driver::draw(Fl_RGB_Image *img, int XP, int YP, int WP, in if (img->mask_) { // put the old clip region back - XSetClipOrigin(fl_display, gc, 0, 0); + XSetClipOrigin(fl_display, gc_, 0, 0); fl_restore_clip(); } } else { @@ -778,8 +778,8 @@ void Fl_Xlib_Graphics_Driver::draw(Fl_Pixmap *pxm, int XP, int YP, int WP, int H if (pxm->prepare(XP, YP, WP, HP, cx, cy, X, Y, W, H)) return; if (pxm->mask_) { // make X use the bitmap as a mask: - XSetClipMask(fl_display, gc, pxm->mask_); - XSetClipOrigin(fl_display, gc, X-cx, Y-cy); + XSetClipMask(fl_display, gc_, pxm->mask_); + XSetClipOrigin(fl_display, gc_, X-cx, Y-cy); if (clip_region()) { // At this point, XYWH is the bounding box of the intersection between // the current clip region and the (portion of the) pixmap we have to draw. @@ -805,7 +805,7 @@ void Fl_Xlib_Graphics_Driver::draw(Fl_Pixmap *pxm, int XP, int YP, int WP, int H copy_offscreen(X, Y, W, H, pxm->id_, cx, cy); } // put the old clip region back - XSetClipOrigin(fl_display, gc, 0, 0); + XSetClipOrigin(fl_display, gc_, 0, 0); restore_clip(); } else copy_offscreen(X, Y, W, H, pxm->id_, cx, cy); diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx index 4aabe44b5..5763ea70f 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx @@ -71,10 +71,10 @@ void Fl_Xlib_Graphics_Driver::line_style(int style, int width, char* dashes) { } static int Cap[4] = {CapButt, CapButt, CapRound, CapProjecting}; static int Join[4] = {JoinMiter, JoinMiter, JoinRound, JoinBevel}; - XSetLineAttributes(fl_display, gc, width, + XSetLineAttributes(fl_display, gc_, width, ndashes ? LineOnOffDash : LineSolid, Cap[(style>>8)&3], Join[(style>>12)&3]); - if (ndashes) XSetDashes(fl_display, gc, 0, dashes, ndashes); + if (ndashes) XSetDashes(fl_display, gc_, 0, dashes, ndashes); } #endif // FL_CFG_GFX_XLIB_LINE_STYLE_CXX diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx index 04dbb5b05..8fee467c3 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx @@ -3,7 +3,7 @@ // // Rectangle drawing routines for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2012 by Bill Spitzak and others. +// Copyright 1998-2016 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -162,23 +162,23 @@ Fl_Region XRectangleRegion(int x, int y, int w, int h) { // --- line and polygon drawing with integer coordinates void Fl_Xlib_Graphics_Driver::point(int x, int y) { - XDrawPoint(fl_display, fl_window, gc, clip_x(x), clip_x(y)); + XDrawPoint(fl_display, fl_window, gc_, clip_x(x), clip_x(y)); } void Fl_Xlib_Graphics_Driver::rect(int x, int y, int w, int h) { if (w<=0 || h<=0) return; if (!clip_to_short(x, y, w, h)) - XDrawRectangle(fl_display, fl_window, gc, x, y, w-1, h-1); + XDrawRectangle(fl_display, fl_window, gc_, x, y, w-1, h-1); } void Fl_Xlib_Graphics_Driver::rectf(int x, int y, int w, int h) { if (w<=0 || h<=0) return; if (!clip_to_short(x, y, w, h)) - XFillRectangle(fl_display, fl_window, gc, x, y, w, h); + XFillRectangle(fl_display, fl_window, gc_, x, y, w, h); } void Fl_Xlib_Graphics_Driver::line(int x, int y, int x1, int y1) { - XDrawLine(fl_display, fl_window, gc, x, y, x1, y1); + XDrawLine(fl_display, fl_window, gc_, x, y, x1, y1); } void Fl_Xlib_Graphics_Driver::line(int x, int y, int x1, int y1, int x2, int y2) { @@ -186,18 +186,18 @@ void Fl_Xlib_Graphics_Driver::line(int x, int y, int x1, int y1, int x2, int y2) p[0].x = x; p[0].y = y; p[1].x = x1; p[1].y = y1; p[2].x = x2; p[2].y = y2; - XDrawLines(fl_display, fl_window, gc, p, 3, 0); + XDrawLines(fl_display, fl_window, gc_, p, 3, 0); } void Fl_Xlib_Graphics_Driver::xyline(int x, int y, int x1) { - XDrawLine(fl_display, fl_window, gc, clip_x(x), clip_x(y), clip_x(x1), clip_x(y)); + XDrawLine(fl_display, fl_window, gc_, clip_x(x), clip_x(y), clip_x(x1), clip_x(y)); } void Fl_Xlib_Graphics_Driver::xyline(int x, int y, int x1, int y2) { XPoint p[3]; p[0].x = clip_x(x); p[0].y = p[1].y = clip_x(y); p[1].x = p[2].x = clip_x(x1); p[2].y = clip_x(y2); - XDrawLines(fl_display, fl_window, gc, p, 3, 0); + XDrawLines(fl_display, fl_window, gc_, p, 3, 0); } void Fl_Xlib_Graphics_Driver::xyline(int x, int y, int x1, int y2, int x3) { @@ -205,18 +205,18 @@ void Fl_Xlib_Graphics_Driver::xyline(int x, int y, int x1, int y2, int x3) { p[0].x = clip_x(x); p[0].y = p[1].y = clip_x(y); p[1].x = p[2].x = clip_x(x1); p[2].y = p[3].y = clip_x(y2); p[3].x = clip_x(x3); - XDrawLines(fl_display, fl_window, gc, p, 4, 0); + XDrawLines(fl_display, fl_window, gc_, p, 4, 0); } void Fl_Xlib_Graphics_Driver::yxline(int x, int y, int y1) { - XDrawLine(fl_display, fl_window, gc, clip_x(x), clip_x(y), clip_x(x), clip_x(y1)); + XDrawLine(fl_display, fl_window, gc_, clip_x(x), clip_x(y), clip_x(x), clip_x(y1)); } void Fl_Xlib_Graphics_Driver::yxline(int x, int y, int y1, int x2) { XPoint p[3]; p[0].x = p[1].x = clip_x(x); p[0].y = clip_x(y); p[1].y = p[2].y = clip_x(y1); p[2].x = clip_x(x2); - XDrawLines(fl_display, fl_window, gc, p, 3, 0); + XDrawLines(fl_display, fl_window, gc_, p, 3, 0); } void Fl_Xlib_Graphics_Driver::yxline(int x, int y, int y1, int x2, int y3) { @@ -224,7 +224,7 @@ void Fl_Xlib_Graphics_Driver::yxline(int x, int y, int y1, int x2, int y3) { p[0].x = p[1].x = clip_x(x); p[0].y = clip_x(y); p[1].y = p[2].y = clip_x(y1); p[2].x = p[3].x = clip_x(x2); p[3].y = clip_x(y3); - XDrawLines(fl_display, fl_window, gc, p, 4, 0); + XDrawLines(fl_display, fl_window, gc_, p, 4, 0); } void Fl_Xlib_Graphics_Driver::loop(int x, int y, int x1, int y1, int x2, int y2) { @@ -233,7 +233,7 @@ void Fl_Xlib_Graphics_Driver::loop(int x, int y, int x1, int y1, int x2, int y2) p[1].x = x1; p[1].y = y1; p[2].x = x2; p[2].y = y2; p[3].x = x; p[3].y = y; - XDrawLines(fl_display, fl_window, gc, p, 4, 0); + XDrawLines(fl_display, fl_window, gc_, p, 4, 0); } void Fl_Xlib_Graphics_Driver::loop(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) { @@ -243,7 +243,7 @@ void Fl_Xlib_Graphics_Driver::loop(int x, int y, int x1, int y1, int x2, int y2, p[2].x = x2; p[2].y = y2; p[3].x = x3; p[3].y = y3; p[4].x = x; p[4].y = y; - XDrawLines(fl_display, fl_window, gc, p, 5, 0); + XDrawLines(fl_display, fl_window, gc_, p, 5, 0); } void Fl_Xlib_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int y2) { @@ -252,8 +252,8 @@ void Fl_Xlib_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int p[1].x = x1; p[1].y = y1; p[2].x = x2; p[2].y = y2; p[3].x = x; p[3].y = y; - XFillPolygon(fl_display, fl_window, gc, p, 3, Convex, 0); - XDrawLines(fl_display, fl_window, gc, p, 4, 0); + XFillPolygon(fl_display, fl_window, gc_, p, 3, Convex, 0); + XDrawLines(fl_display, fl_window, gc_, p, 4, 0); } void Fl_Xlib_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int y2, int x3, int y3) { @@ -263,8 +263,8 @@ void Fl_Xlib_Graphics_Driver::polygon(int x, int y, int x1, int y1, int x2, int p[2].x = x2; p[2].y = y2; p[3].x = x3; p[3].y = y3; p[4].x = x; p[4].y = y; - XFillPolygon(fl_display, fl_window, gc, p, 4, Convex, 0); - XDrawLines(fl_display, fl_window, gc, p, 5, 0); + XFillPolygon(fl_display, fl_window, gc_, p, 4, Convex, 0); + XDrawLines(fl_display, fl_window, gc_, p, 5, 0); } // --- clipping @@ -340,8 +340,8 @@ void Fl_Xlib_Graphics_Driver::pop_clip() { void Fl_Xlib_Graphics_Driver::restore_clip() { fl_clip_state_number++; Fl_Region r = rstack[rstackptr]; - if (r) XSetRegion(fl_display, gc, r); - else XSetClipMask(fl_display, gc, 0); + if (r) XSetRegion(fl_display, gc_, r); + else XSetClipMask(fl_display, gc_, 0); } #endif // FL_CFG_GFX_XLIB_RECT_CXX diff --git a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx index b7d927873..7b7f20f1f 100644 --- a/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx +++ b/src/drivers/Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx @@ -41,7 +41,7 @@ void Fl_Xlib_Graphics_Driver::vertex(double x,double y) { } void Fl_Xlib_Graphics_Driver::end_points() { - if (n>1) XDrawPoints(fl_display, fl_window, gc, p, n, 0); + if (n>1) XDrawPoints(fl_display, fl_window, gc_, p, n, 0); } void Fl_Xlib_Graphics_Driver::end_line() { @@ -49,7 +49,7 @@ void Fl_Xlib_Graphics_Driver::end_line() { end_points(); return; } - if (n>1) XDrawLines(fl_display, fl_window, gc, p, n, 0); + if (n>1) XDrawLines(fl_display, fl_window, gc_, p, n, 0); } void Fl_Xlib_Graphics_Driver::end_loop() { @@ -64,7 +64,7 @@ void Fl_Xlib_Graphics_Driver::end_polygon() { end_line(); return; } - if (n>2) XFillPolygon(fl_display, fl_window, gc, p, n, Convex, 0); + if (n>2) XFillPolygon(fl_display, fl_window, gc_, p, n, Convex, 0); } void Fl_Xlib_Graphics_Driver::begin_complex_polygon() { @@ -88,7 +88,7 @@ void Fl_Xlib_Graphics_Driver::end_complex_polygon() { end_line(); return; } - if (n>2) XFillPolygon(fl_display, fl_window, gc, p, n, 0, 0); + if (n>2) XFillPolygon(fl_display, fl_window, gc_, p, n, 0, 0); } // shortcut the closed circles so they use XDrawArc: @@ -106,7 +106,7 @@ void Fl_Xlib_Graphics_Driver::circle(double x, double y,double r) { int h = (int)rint(yt+ry)-lly; (what == POLYGON ? XFillArc : XDrawArc) - (fl_display, fl_window, gc, llx, lly, w, h, 0, 360*64); + (fl_display, fl_window, gc_, llx, lly, w, h, 0, 360*64); } #endif // FL_CFG_GFX_XLIB_VERTEX_CXX |
