From 1b5e231c902ab198c577989db44946797ebd4893 Mon Sep 17 00:00:00 2001 From: Manolo Gouy Date: Fri, 19 Feb 2016 12:40:24 +0000 Subject: 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 --- FL/Fl_Graphics_Driver.H | 4 +- FL/win32.H | 8 +- src/Fl.cxx | 6 +- src/Fl_Copy_Surface.cxx | 14 +- src/Fl_Double_Window.cxx | 6 +- src/Fl_GDI_Printer.cxx | 14 +- src/Fl_Gl_Choice.cxx | 2 +- src/Fl_Gl_Device_Plugin.cxx | 2 +- src/Fl_Gl_Window.cxx | 4 +- src/Fl_Image_Surface.cxx | 14 +- src/Fl_Menu_Window.cxx | 2 +- src/Fl_Paged_Device.cxx | 4 +- src/Fl_Quartz_Printer.mm | 16 +- src/Fl_Window_shape.cxx | 2 +- src/Fl_cocoa.mm | 10 +- src/Fl_win32.cxx | 18 +- src/drivers/Cocoa/Fl_Cocoa_Screen_Driver.cxx | 2 +- src/drivers/GDI/Fl_GDI_Graphics_Driver.cxx | 16 +- src/drivers/GDI/Fl_GDI_Graphics_Driver.h | 6 +- src/drivers/GDI/Fl_GDI_Graphics_Driver_arci.cxx | 18 +- src/drivers/GDI/Fl_GDI_Graphics_Driver_color.cxx | 16 +- src/drivers/GDI/Fl_GDI_Graphics_Driver_font.cxx | 54 +++--- src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx | 54 +++--- .../GDI/Fl_GDI_Graphics_Driver_line_style.cxx | 2 +- src/drivers/GDI/Fl_GDI_Graphics_Driver_rect.cxx | 92 ++++----- src/drivers/GDI/Fl_GDI_Graphics_Driver_vertex.cxx | 18 +- src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx | 12 +- src/drivers/Quartz/Fl_Quartz_Graphics_Driver.h | 7 +- .../Quartz/Fl_Quartz_Graphics_Driver_arci.cxx | 44 ++--- .../Quartz/Fl_Quartz_Graphics_Driver_color.cxx | 12 +- .../Quartz/Fl_Quartz_Graphics_Driver_font.cxx | 22 +-- .../Quartz/Fl_Quartz_Graphics_Driver_image.cxx | 40 ++-- .../Fl_Quartz_Graphics_Driver_line_style.cxx | 2 +- .../Quartz/Fl_Quartz_Graphics_Driver_rect.cxx | 208 ++++++++++----------- .../Quartz/Fl_Quartz_Graphics_Driver_vertex.cxx | 52 +++--- src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx | 2 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver.cxx | 12 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver.h | 4 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_arci.cxx | 8 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_color.cxx | 10 +- .../Xlib/Fl_Xlib_Graphics_Driver_font_x.cxx | 24 +-- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_image.cxx | 34 ++-- .../Xlib/Fl_Xlib_Graphics_Driver_line_style.cxx | 4 +- src/drivers/Xlib/Fl_Xlib_Graphics_Driver_rect.cxx | 40 ++-- .../Xlib/Fl_Xlib_Graphics_Driver_vertex.cxx | 10 +- src/fl_overlay.cxx | 6 +- src/fl_read_image_mac.cxx | 2 +- src/fl_read_image_win32.cxx | 2 +- src/fl_scroll_area.cxx | 4 +- src/gl_draw.cxx | 18 +- 50 files changed, 492 insertions(+), 491 deletions(-) diff --git a/FL/Fl_Graphics_Driver.H b/FL/Fl_Graphics_Driver.H index 75a840d6d..dfe408872 100644 --- a/FL/Fl_Graphics_Driver.H +++ b/FL/Fl_Graphics_Driver.H @@ -252,9 +252,9 @@ public: virtual void copy_offscreen(int x, int y, int w, int h, Fl_Offscreen pixmap, int srcx, int srcy); /** Sets the value of the driver-specific graphics context. */ - virtual void set_gc(void*) {} + virtual void gc(void*) {} /** Returns the driver-specific graphics context, of NULL if there's none. */ - virtual void *get_gc(void) {return NULL;} + virtual void *gc(void) {return NULL;} 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); diff --git a/FL/win32.H b/FL/win32.H index 3707f81f7..a71ef97fa 100644 --- a/FL/win32.H +++ b/FL/win32.H @@ -132,17 +132,17 @@ extern FL_EXPORT HDC fl_makeDC(HBITMAP); // off-screen pixmaps: create, destroy, draw into, copy to window typedef HBITMAP Fl_Offscreen; #define fl_create_offscreen(w, h) \ - CreateCompatibleBitmap( (fl_graphics_driver->get_gc() ? (HDC)fl_graphics_driver->get_gc() : fl_GetDC(0) ) , w, h) + CreateCompatibleBitmap( (fl_graphics_driver->gc() ? (HDC)fl_graphics_driver->gc() : fl_GetDC(0) ) , w, h) # define fl_begin_offscreen(b) \ - void* _sgc=fl_graphics_driver->get_gc(); Window _sw=fl_window; \ + void* _sgc=fl_graphics_driver->gc(); Window _sw=fl_window; \ Fl_Surface_Device *_ss = Fl_Surface_Device::surface(); \ HDC _tmp_gc = fl_makeDC(b); int _savedc = SaveDC(_tmp_gc); \ Fl_Display_Device::display_device()->set_current(); \ - fl_graphics_driver->set_gc(_tmp_gc); fl_window=(HWND)b; fl_push_no_clip() + fl_graphics_driver->gc(_tmp_gc); fl_window=(HWND)b; fl_push_no_clip() # define fl_end_offscreen() \ - fl_pop_clip(); RestoreDC((HDC)fl_graphics_driver->get_gc(), _savedc); DeleteDC((HDC)fl_graphics_driver->get_gc()); _ss->set_current(); fl_window=_sw; fl_graphics_driver->set_gc(_sgc); + fl_pop_clip(); RestoreDC((HDC)fl_graphics_driver->gc(), _savedc); DeleteDC((HDC)fl_graphics_driver->gc()); _ss->set_current(); fl_window=_sw; fl_graphics_driver->gc(_sgc); FL_EXPORT void fl_copy_offscreen(int x,int y,int w,int h,HBITMAP pixmap,int srcx,int srcy); diff --git a/src/Fl.cxx b/src/Fl.cxx index 8556424ed..2bf37f064 100644 --- a/src/Fl.cxx +++ b/src/Fl.cxx @@ -1619,10 +1619,10 @@ void Fl_Window::hide() { // Send a message to myself so that I'll get out of the event loop... PostMessage(ip->xid, WM_APP, 0, 0); if (ip->private_dc) fl_release_dc(ip->xid, ip->private_dc); - if (ip->xid == fl_window && fl_graphics_driver->get_gc()) { - fl_release_dc(fl_window, (HDC)fl_graphics_driver->get_gc()); + if (ip->xid == fl_window && fl_graphics_driver->gc()) { + fl_release_dc(fl_window, (HDC)fl_graphics_driver->gc()); fl_window = (HWND)-1; - fl_graphics_driver->set_gc(0); + fl_graphics_driver->gc(0); # ifdef FLTK_USE_CAIRO if (Fl::cairo_autolink_context()) Fl::cairo_make_current((Fl_Window*) 0); # endif diff --git a/src/Fl_Copy_Surface.cxx b/src/Fl_Copy_Surface.cxx index c91695883..cb051d3c3 100644 --- a/src/Fl_Copy_Surface.cxx +++ b/src/Fl_Copy_Surface.cxx @@ -49,15 +49,15 @@ Fl_GDI_Surface_::~Fl_GDI_Surface_() { } void Fl_GDI_Surface_::translate(int x, int y) { - GetWindowOrgEx((HDC)driver()->get_gc(), origins+depth); - SetWindowOrgEx((HDC)driver()->get_gc(), origins[depth].x - x, origins[depth].y - y, NULL); + GetWindowOrgEx((HDC)driver()->gc(), origins+depth); + SetWindowOrgEx((HDC)driver()->gc(), origins[depth].x - x, origins[depth].y - y, NULL); if (depth < sizeof(origins)/sizeof(POINT)) depth++; else Fl::warning("Fl_GDI_Surface_: translate stack overflow!"); } void Fl_GDI_Surface_::untranslate() { if (depth > 0) depth--; - SetWindowOrgEx((HDC)driver()->get_gc(), origins[depth].x, origins[depth].y, NULL); + SetWindowOrgEx((HDC)driver()->gc(), origins[depth].x, origins[depth].y, NULL); } const char *Fl_GDI_Surface_::class_id = "Fl_GDI_Surface_"; @@ -82,7 +82,7 @@ Fl_Copy_Surface::Fl_Copy_Surface(int w, int h) : Fl_Surface_Device(NULL) #elif defined(WIN32) helper = new Fl_GDI_Surface_(); driver(helper->driver()); - oldgc = (HDC)Fl_Surface_Device::surface()->driver()->get_gc(); + oldgc = (HDC)Fl_Surface_Device::surface()->driver()->gc(); // exact computation of factor from screen units to EnhMetaFile units (0.01 mm) HDC hdc = GetDC(NULL); int hmm = GetDeviceCaps(hdc, HORZSIZE); @@ -123,7 +123,7 @@ Fl_Copy_Surface::~Fl_Copy_Surface() complete_copy_pdf_and_tiff(); delete (Fl_Quartz_Surface_*)helper; #elif defined(WIN32) - if (oldgc == (HDC)Fl_Surface_Device::surface()->driver()->get_gc()) oldgc = NULL; + if (oldgc == (HDC)Fl_Surface_Device::surface()->driver()->gc()) oldgc = NULL; HENHMETAFILE hmf = CloseEnhMetaFile (gc); if ( hmf != NULL ) { if ( OpenClipboard (NULL) ){ @@ -134,7 +134,7 @@ Fl_Copy_Surface::~Fl_Copy_Surface() DeleteEnhMetaFile(hmf); } DeleteDC(gc); - Fl_Surface_Device::surface()->driver()->set_gc(oldgc); + Fl_Surface_Device::surface()->driver()->gc(oldgc); delete (Fl_GDI_Surface_*)helper; #elif defined(FL_PORTING) # pragma message "FL_PORTING: free resources in destructor of Fl_Copy_Surface" @@ -164,7 +164,7 @@ void Fl_Copy_Surface::draw(Fl_Widget* widget, int delta_x, int delta_y) void Fl_Copy_Surface::set_current() { #if defined(__APPLE__) || defined(WIN32) // PORTME: Fl_Surface_Driver - platform copy surface - driver()->set_gc(gc); + driver()->gc(gc); fl_window = (Window)1; Fl_Surface_Device::set_current(); #elif defined(FL_PORTING) diff --git a/src/Fl_Double_Window.cxx b/src/Fl_Double_Window.cxx index 79e848a46..975c23dd4 100644 --- a/src/Fl_Double_Window.cxx +++ b/src/Fl_Double_Window.cxx @@ -176,15 +176,15 @@ void Fl_Double_Window::flush(int eraseoverlay) { if (damage() & ~FL_DAMAGE_EXPOSE) { fl_clip_region(myi->region); myi->region = 0; #ifdef WIN32 - void* _sgc = fl_graphics_driver->get_gc(); + void* _sgc = fl_graphics_driver->gc(); HDC gc = fl_makeDC(myi->other_xid); - fl_graphics_driver->set_gc(gc); + fl_graphics_driver->gc(gc); int save = SaveDC(gc); fl_restore_clip(); // duplicate region into new gc draw(); RestoreDC(gc, save); DeleteDC(gc); - fl_graphics_driver->set_gc(_sgc); + fl_graphics_driver->gc(_sgc); //# if defined(FLTK_USE_CAIRO) //if Fl::cairo_autolink_context() Fl::cairo_make_current(this); // capture gc changes automatically to update the cairo context adequately //# endif diff --git a/src/Fl_GDI_Printer.cxx b/src/Fl_GDI_Printer.cxx index 4f69b290b..195579436 100644 --- a/src/Fl_GDI_Printer.cxx +++ b/src/Fl_GDI_Printer.cxx @@ -109,7 +109,7 @@ int Fl_System_Printer::start_job (int pagecount, int *frompage, int *topage) x_offset = 0; y_offset = 0; WIN_SetupPrinterDeviceContext (hPr); - driver()->set_gc(hPr); + driver()->gc(hPr); this->set_current(); } return err; @@ -143,7 +143,7 @@ void Fl_System_Printer::absolute_printable_rect(int *x, int *y, int *w, int *h) XFORM transform; if (hPr == NULL) return; - HDC gc = (HDC)driver()->get_gc(); + HDC gc = (HDC)driver()->gc(); GetWorldTransform(gc, &transform); ModifyWorldTransform(gc, NULL, MWT_IDENTITY); SetWindowOrgEx(gc, 0, 0, NULL); @@ -205,7 +205,7 @@ int Fl_System_Printer::start_page (void) void Fl_System_Printer::origin (int deltax, int deltay) { - SetWindowOrgEx( (HDC)driver()->get_gc(), - left_margin - deltax, - top_margin - deltay, NULL); + SetWindowOrgEx( (HDC)driver()->gc(), - left_margin - deltax, - top_margin - deltay, NULL); x_offset = deltax; y_offset = deltay; } @@ -214,7 +214,7 @@ void Fl_System_Printer::scale (float scalex, float scaley) { if (scaley == 0.) scaley = scalex; int w, h; - SetWindowExtEx((HDC)driver()->get_gc(), (int)(720 / scalex + 0.5), (int)(720 / scaley + 0.5), NULL); + SetWindowExtEx((HDC)driver()->gc(), (int)(720 / scalex + 0.5), (int)(720 / scaley + 0.5), NULL); printable_rect(&w, &h); origin(0, 0); } @@ -229,7 +229,7 @@ void Fl_System_Printer::rotate (float rot_angle) mat.eM21 = - mat.eM12; mat.eM22 = mat.eM11; mat.eDx = mat.eDy = 0; - SetWorldTransform((HDC)driver()->get_gc(), &mat); + SetWorldTransform((HDC)driver()->gc(), &mat); } int Fl_System_Printer::end_page (void) @@ -265,7 +265,7 @@ static void do_translate(int x, int y, HDC gc) void Fl_System_Printer::translate (int x, int y) { - do_translate(x, y, (HDC)driver()->get_gc()); + do_translate(x, y, (HDC)driver()->gc()); if (translate_stack_depth < translate_stack_max) { translate_stack_x[translate_stack_depth] = x; translate_stack_y[translate_stack_depth] = y; @@ -277,7 +277,7 @@ void Fl_System_Printer::untranslate (void) { if (translate_stack_depth > 0) { translate_stack_depth--; - do_translate( - translate_stack_x[translate_stack_depth], - translate_stack_y[translate_stack_depth], (HDC)driver()->get_gc() ); + do_translate( - translate_stack_x[translate_stack_depth], - translate_stack_y[translate_stack_depth], (HDC)driver()->gc() ); } } diff --git a/src/Fl_Gl_Choice.cxx b/src/Fl_Gl_Choice.cxx index 25ef78a5c..b3e615adb 100644 --- a/src/Fl_Gl_Choice.cxx +++ b/src/Fl_Gl_Choice.cxx @@ -119,7 +119,7 @@ Fl_Gl_Choice *Fl_Gl_Choice::find(int m, const int *alistp) { // Replacement for ChoosePixelFormat() that finds one with an overlay // if possible: - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); if (!gc) gc = fl_GetDC(0); int pixelformat = 0; PIXELFORMATDESCRIPTOR chosen_pfd; diff --git a/src/Fl_Gl_Device_Plugin.cxx b/src/Fl_Gl_Device_Plugin.cxx index 709a1a0ad..cdfa6391b 100644 --- a/src/Fl_Gl_Device_Plugin.cxx +++ b/src/Fl_Gl_Device_Plugin.cxx @@ -126,7 +126,7 @@ public: provider, NULL, false, kCGRenderingIntentDefault); CGColorSpaceRelease(cSpace); CGDataProviderRelease(provider); - CGContextDrawImage((CGContextRef)Fl_Surface_Device::surface()->driver()->get_gc(), + CGContextDrawImage((CGContextRef)Fl_Surface_Device::surface()->driver()->gc(), CGRectMake(0, 0, glw->w(), glw->h()), cgimg); CFRelease(cgimg); return 1; diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx index 933c7f341..7cf1e294e 100644 --- a/src/Fl_Gl_Window.cxx +++ b/src/Fl_Gl_Window.cxx @@ -211,8 +211,8 @@ void Fl_Gl_Window::make_current() { #if defined(WIN32) && USE_COLORMAP if (fl_palette) { fl_GetDC(fl_xid(this)); - SelectPalette((HDC)fl_graphics_driver->get_gc(), fl_palette, FALSE); - RealizePalette((HDC)fl_graphics_driver->get_gc()); + SelectPalette((HDC)fl_graphics_driver->gc(), fl_palette, FALSE); + RealizePalette((HDC)fl_graphics_driver->gc()); } #endif // USE_COLORMAP if (mode_ & FL_FAKE_SINGLE) { diff --git a/src/Fl_Image_Surface.cxx b/src/Fl_Image_Surface.cxx index 90bea2bbc..a40a4f716 100644 --- a/src/Fl_Image_Surface.cxx +++ b/src/Fl_Image_Surface.cxx @@ -107,12 +107,12 @@ Fl_RGB_Image* Fl_Image_Surface::image() #elif defined(WIN32) fl_pop_clip(); data = fl_read_image(NULL, 0, 0, width, height, 0); - HDC gc = (HDC)driver()->get_gc(); + HDC gc = (HDC)driver()->gc(); RestoreDC(gc, _savedc); DeleteDC(gc); _ss->set_current(); fl_window=_sw; - _ss->driver()->set_gc(_sgc); + _ss->driver()->gc(_sgc); #elif defined(FL_PORTING) # pragma message "FL_PORTING: implement Fl_Image_Surface" #else @@ -156,17 +156,17 @@ void Fl_Image_Surface::draw(Fl_Widget *widget, int delta_x, int delta_y) void Fl_Image_Surface::set_current() { #if defined(__APPLE__) // PORTME: Fl_Surface_Driver - platform image surface - driver()->set_gc(offscreen); + driver()->gc(offscreen); fl_window = 0; Fl_Surface_Device::set_current(); Fl_X::set_high_resolution( CGBitmapContextGetWidth(offscreen) > width ); #elif defined(WIN32) _sw = fl_window; _ss = Fl_Surface_Device::surface(); - _sgc = (HDC)_ss->driver()->get_gc(); + _sgc = (HDC)_ss->driver()->gc(); HDC gc = fl_makeDC(offscreen); Fl_Surface_Device::set_current(); - driver()->set_gc(gc); + driver()->gc(gc); _savedc = SaveDC(gc); fl_window=(HWND)offscreen; fl_push_no_clip(); @@ -187,7 +187,7 @@ Fl_Quartz_Flipped_Surface_::Fl_Quartz_Flipped_Surface_(int w, int h) : Fl_Quartz } void Fl_Quartz_Flipped_Surface_::translate(int x, int y) { - CGContextRef gc = (CGContextRef)driver()->get_gc(); + CGContextRef gc = (CGContextRef)driver()->gc(); CGContextRestoreGState(gc); CGContextSaveGState(gc); CGContextTranslateCTM(gc, x, -y); @@ -197,7 +197,7 @@ void Fl_Quartz_Flipped_Surface_::translate(int x, int y) { } void Fl_Quartz_Flipped_Surface_::untranslate() { - CGContextRestoreGState((CGContextRef)driver()->get_gc()); + CGContextRestoreGState((CGContextRef)driver()->gc()); } const char *Fl_Quartz_Flipped_Surface_::class_id = "Fl_Quartz_Flipped_Surface_"; diff --git a/src/Fl_Menu_Window.cxx b/src/Fl_Menu_Window.cxx index f170cb7fa..3a51b8657 100644 --- a/src/Fl_Menu_Window.cxx +++ b/src/Fl_Menu_Window.cxx @@ -60,7 +60,7 @@ void Fl_Menu_Window::flush() { fl_window = myi->xid; # if defined(FLTK_USE_CAIRO) // capture gc changes automatically to update the cairo context adequately - if(Fl::autolink_context()) Fl::cairo_make_current(fl_graphics_driver->get_gc()); + if(Fl::autolink_context()) Fl::cairo_make_current(fl_graphics_driver->gc()); # endif fl_overlay = 1; fl_clip_region(myi->region); myi->region = 0; current_ = this; diff --git a/src/Fl_Paged_Device.cxx b/src/Fl_Paged_Device.cxx index 8fadd7b73..9e2523cd5 100644 --- a/src/Fl_Paged_Device.cxx +++ b/src/Fl_Paged_Device.cxx @@ -65,7 +65,7 @@ void Fl_Paged_Device::print_widget(Fl_Widget* widget, int delta_x, int delta_y) fl_push_clip(0, 0, widget->w(), widget->h() ); #ifdef __APPLE__ // for Mac OS X 10.6 and above, make window with rounded bottom corners if ( fl_mac_os_version >= 100600 && driver()->has_feature(Fl_Graphics_Driver::NATIVE) ) { - Fl_X::clip_to_rounded_corners((CGContextRef)driver()->get_gc(), widget->w(), widget->h()); + Fl_X::clip_to_rounded_corners((CGContextRef)driver()->gc(), widget->w(), widget->h()); } #endif } @@ -150,7 +150,7 @@ void Fl_Paged_Device::print_window_part(Fl_Window *win, int x, int y, int w, int delete[] image_data; #ifdef WIN32 HDC gc = GetDC(fl_xid(win)); - fl_graphics_driver->set_gc(gc); + fl_graphics_driver->gc(gc); ReleaseDC(fl_xid(win), gc); #endif } diff --git a/src/Fl_Quartz_Printer.mm b/src/Fl_Quartz_Printer.mm index 65ee90055..c12777131 100644 --- a/src/Fl_Quartz_Printer.mm +++ b/src/Fl_Quartz_Printer.mm @@ -188,7 +188,7 @@ void Fl_System_Printer::origin(int x, int y) { x_offset = x; y_offset = y; - CGContextRef gc = (CGContextRef)driver()->get_gc(); + CGContextRef gc = (CGContextRef)driver()->gc(); CGContextRestoreGState(gc); CGContextRestoreGState(gc); CGContextSaveGState(gc); @@ -203,7 +203,7 @@ void Fl_System_Printer::scale (float s_x, float s_y) if (s_y == 0.) s_y = s_x; scale_x = s_x; scale_y = s_y; - CGContextRef gc = (CGContextRef)driver()->get_gc(); + CGContextRef gc = (CGContextRef)driver()->gc(); CGContextRestoreGState(gc); CGContextRestoreGState(gc); CGContextSaveGState(gc); @@ -216,7 +216,7 @@ void Fl_System_Printer::scale (float s_x, float s_y) void Fl_System_Printer::rotate (float rot_angle) { angle = - rot_angle * M_PI / 180.; - CGContextRef gc = (CGContextRef)driver()->get_gc(); + CGContextRef gc = (CGContextRef)driver()->gc(); CGContextRestoreGState(gc); CGContextRestoreGState(gc); CGContextSaveGState(gc); @@ -228,7 +228,7 @@ void Fl_System_Printer::rotate (float rot_angle) void Fl_System_Printer::translate(int x, int y) { - CGContextRef gc = (CGContextRef)driver()->get_gc(); + CGContextRef gc = (CGContextRef)driver()->gc(); CGContextSaveGState(gc); CGContextTranslateCTM(gc, x, y ); CGContextSaveGState(gc); @@ -236,7 +236,7 @@ void Fl_System_Printer::translate(int x, int y) void Fl_System_Printer::untranslate(void) { - CGContextRef gc = (CGContextRef)driver()->get_gc(); + CGContextRef gc = (CGContextRef)driver()->gc(); CGContextRestoreGState(gc); CGContextRestoreGState(gc); } @@ -258,7 +258,7 @@ int Fl_System_Printer::start_page (void) status = PMSessionGetGraphicsContext(printSession, NULL, (void **)&gc); #endif } - driver()->set_gc(gc); + driver()->gc(gc); PMRect pmRect; float win_scale_x, win_scale_y; @@ -293,7 +293,7 @@ int Fl_System_Printer::start_page (void) int Fl_System_Printer::end_page (void) { - CGContextRef gc = (CGContextRef)driver()->get_gc(); + CGContextRef gc = (CGContextRef)driver()->gc(); CGContextFlush(gc); CGContextRestoreGState(gc); CGContextRestoreGState(gc); @@ -319,7 +319,7 @@ void Fl_System_Printer::end_job (void) } #endif Fl_Display_Device::display_device()->set_current(); - driver()->set_gc(0); + driver()->gc(0); Fl_Window *w = Fl::first_window(); if (w) w->show(); } diff --git a/src/Fl_Window_shape.cxx b/src/Fl_Window_shape.cxx index 5dee92238..e02131429 100644 --- a/src/Fl_Window_shape.cxx +++ b/src/Fl_Window_shape.cxx @@ -343,7 +343,7 @@ void Fl_Window::shape(const Fl_Image* img) { void Fl_Window::draw() { #if defined(__APPLE__) - CGContextRef gc = (CGContextRef)Fl_Display_Device::display_device()->driver()->get_gc(); + CGContextRef gc = (CGContextRef)Fl_Display_Device::display_device()->driver()->gc(); #endif if (shape_data_) { # if defined(__APPLE__) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index f4d6fd094..19542d9b3 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -3276,7 +3276,7 @@ void Fl_Window::make_current() #endif nsgc = through_Fl_X_flush ? [NSGraphicsContext currentContext] : [NSGraphicsContext graphicsContextWithWindow:fl_window]; i->gc = (CGContextRef)[nsgc graphicsPort]; - Fl_Display_Device::display_device()->driver()->set_gc(i->gc); + Fl_Display_Device::display_device()->driver()->gc(i->gc); CGContextSaveGState(i->gc); // native context // antialiasing must be deactivated because it applies to rectangles too // and escapes even clipping!!! @@ -3304,14 +3304,14 @@ void Fl_Window::make_current() // Give the Quartz context back to the system void Fl_X::q_release_context(Fl_X *x) { - CGContextRef gc = (CGContextRef)Fl_Display_Device::display_device()->driver()->get_gc(); + CGContextRef gc = (CGContextRef)Fl_Display_Device::display_device()->driver()->gc(); if (x && x->gc!=gc) return; if (!gc) return; CGContextRestoreGState(gc); // match the CGContextSaveGState's of make_current CGContextRestoreGState(gc); Fl_X::set_high_resolution(false); CGContextFlush(gc); - Fl_Display_Device::display_device()->driver()->set_gc(0); + Fl_Display_Device::display_device()->driver()->gc(0); #if defined(FLTK_USE_CAIRO) if (Fl::cairo_autolink_context()) Fl::cairo_make_current((Fl_Window*) 0); // capture gc changes automatically to update the cairo context adequately #endif @@ -4378,7 +4378,7 @@ void Fl_Paged_Device::print_window(Fl_Window *win, int x_offset, int y_offset) CALayer *layer = get_titlebar_layer(win); if (layer) { // if title bar uses a layer if (to_quartz) { // to Quartz printer - CGContextRef gc = (CGContextRef)driver()->get_gc(); + CGContextRef gc = (CGContextRef)driver()->gc(); CGContextSaveGState(gc); CGContextTranslateCTM(gc, x_offset - 0.5, y_offset + bt - 0.5); CGContextScaleCTM(gc, 1, -1); @@ -4424,7 +4424,7 @@ void Fl_Paged_Device::print_window(Fl_Window *win, int x_offset, int y_offset) if (fl_mac_os_version >= 100400 && to_quartz) { // use Cocoa string drawing with exact title bar font // the exact font is LucidaGrande 13 pts (and HelveticaNeueDeskInterface-Regular with 10.10) NSGraphicsContext *current = [NSGraphicsContext currentContext]; - [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithGraphicsPort:driver()->get_gc() flipped:YES]];//10.4 + [NSGraphicsContext setCurrentContext:[NSGraphicsContext graphicsContextWithGraphicsPort:driver()->gc() flipped:YES]];//10.4 NSDictionary *attr = [NSDictionary dictionaryWithObject:[NSFont titleBarFontOfSize:0] forKey:NSFontAttributeName]; NSString *title_s = [fl_xid(win) title]; diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx index 057bc5362..7e757b2fe 100644 --- a/src/Fl_win32.cxx +++ b/src/Fl_win32.cxx @@ -740,7 +740,7 @@ void Fl::paste(Fl_Widget &receiver, int clipboard, const char *type) { else if (lpBI->bmiHeader.biClrUsed > 0) pDIBBits = (void*)(lpBI->bmiColors + lpBI->bmiHeader.biClrUsed); Fl_Offscreen off = fl_create_offscreen(width, height); fl_begin_offscreen(off); - SetDIBitsToDevice((HDC)fl_graphics_driver->get_gc(), 0, 0, width, height, 0, 0, 0, height, pDIBBits, lpBI, DIB_RGB_COLORS); + SetDIBitsToDevice((HDC)fl_graphics_driver->gc(), 0, 0, width, height, 0, 0, 0, height, pDIBBits, lpBI, DIB_RGB_COLORS); rgb = fl_read_image(NULL, 0, 0, width, height); depth = 3; fl_end_offscreen(); @@ -766,7 +766,7 @@ void Fl::paste(Fl_Widget &receiver, int clipboard, const char *type) { Fl_Offscreen off = fl_create_offscreen(width, height); fl_begin_offscreen(off); fl_color(FL_WHITE); fl_rectf(0,0,width, height); // draw white background - PlayEnhMetaFile((HDC)fl_graphics_driver->get_gc(), (HENHMETAFILE)h, &rect); // draw metafile to offscreen buffer + PlayEnhMetaFile((HDC)fl_graphics_driver->gc(), (HENHMETAFILE)h, &rect); // draw metafile to offscreen buffer rgb = fl_read_image(NULL, 0, 0, width, height); // read pixels from offscreen buffer depth = 3; fl_end_offscreen(); @@ -2528,13 +2528,13 @@ HWND fl_window = NULL; // Here we ensure only one GetDC is ever in place. HDC fl_GetDC(HWND w) { - HDC gc = (HDC)Fl_Display_Device::display_device()->driver()->get_gc(); + HDC gc = (HDC)Fl_Display_Device::display_device()->driver()->gc(); if (gc) { if (w == fl_window && fl_window != NULL) return gc; if (fl_window) fl_release_dc(fl_window, gc); // ReleaseDC } gc = GetDC(w); - Fl_Display_Device::display_device()->driver()->set_gc(gc); + Fl_Display_Device::display_device()->driver()->gc(gc); fl_save_dc(w, gc); fl_window = w; // calling GetDC seems to always reset these: (?) @@ -2662,7 +2662,7 @@ Fl_Region XRectangleRegion(int x, int y, int w, int h) { if (Fl_Surface_Device::surface() == Fl_Display_Device::display_device()) return CreateRectRgn(x,y,x+w,y+h); // because rotation may apply, the rectangle becomes a polygon in device coords POINT pt[4] = { {x, y}, {x + w, y}, {x + w, y + h}, {x, y + h} }; - LPtoDP((HDC)fl_graphics_driver->get_gc(), pt, 4); + LPtoDP((HDC)fl_graphics_driver->gc(), pt, 4); return CreatePolygonRgn(pt, 4, ALTERNATE); } @@ -2728,8 +2728,8 @@ void Fl_Window::capture_titlebar_and_borders(Fl_Shared_Image*& top, Fl_Shared_Im Fl_Display_Device::display_device()->set_current(); show(); Fl::check(); - void* save_gc = fl_graphics_driver->get_gc(); - fl_graphics_driver->set_gc(GetDC(NULL)); + void* save_gc = fl_graphics_driver->gc(); + fl_graphics_driver->gc(GetDC(NULL)); int ww = w() + 2 * wsides; // capture the 4 window sides from screen fl_window = NULL; // force use of read_win_rectangle() by fl_read_image() @@ -2754,9 +2754,9 @@ void Fl_Window::capture_titlebar_and_borders(Fl_Shared_Image*& top, Fl_Shared_Im r_bottom->alloc_array = 1; bottom = Fl_Shared_Image::get(r_bottom); } - ReleaseDC(NULL, (HDC)fl_graphics_driver->get_gc()); + ReleaseDC(NULL, (HDC)fl_graphics_driver->gc()); fl_window = save_win; - fl_graphics_driver->set_gc(save_gc); + fl_graphics_driver->gc(save_gc); previous->Fl_Surface_Device::set_current(); } 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(y31) 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_ixget_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_ixset_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 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; idriver()->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 diff --git a/src/fl_overlay.cxx b/src/fl_overlay.cxx index 2f4547607..42a87e707 100644 --- a/src/fl_overlay.cxx +++ b/src/fl_overlay.cxx @@ -40,15 +40,15 @@ static int bgx, bgy, bgw, bgh; static void draw_current_rect() { #ifdef USE_XOR # if defined(USE_X11) - GC gc = (GC)fl_graphics_driver->get_gc(); + GC gc = (GC)fl_graphics_driver->gc(); XSetFunction(fl_display, gc, GXxor); XSetForeground(fl_display, gc, 0xffffffff); XDrawRectangle(fl_display, fl_window, gc, px, py, pw, ph); XSetFunction(fl_display, gc, GXcopy); # elif defined(WIN32) - int old = SetROP2(fl_graphics_driver->get_gc(), R2_NOT); + int old = SetROP2(fl_graphics_driver->gc(), R2_NOT); fl_rect(px, py, pw, ph); - SetROP2(fl_graphics_driver->get_gc(), old); + SetROP2(fl_graphics_driver->gc(), old); # elif defined(__APPLE_QUARTZ__) // PORTME: Fl_Window_Driver - platform overlay // warning: Quartz does not support xor drawing // Use the Fl_Overlay_Window instead. diff --git a/src/fl_read_image_mac.cxx b/src/fl_read_image_mac.cxx index fb1a6cf24..3d84c80a2 100644 --- a/src/fl_read_image_mac.cxx +++ b/src/fl_read_image_mac.cxx @@ -32,7 +32,7 @@ fl_read_image(uchar *p, // I - Pixel buffer or NULL to allocate uchar *base; int rowBytes, delta; if(fl_window == NULL) { // reading from an offscreen buffer - CGContextRef src = (CGContextRef)Fl_Surface_Device::surface()->driver()->get_gc(); // get bitmap context + CGContextRef src = (CGContextRef)Fl_Surface_Device::surface()->driver()->gc(); // get bitmap context base = (uchar *)CGBitmapContextGetData(src); // get data if(!base) return NULL; int sw = CGBitmapContextGetWidth(src); diff --git a/src/fl_read_image_win32.cxx b/src/fl_read_image_win32.cxx index 738d43f49..63159813f 100644 --- a/src/fl_read_image_win32.cxx +++ b/src/fl_read_image_win32.cxx @@ -77,7 +77,7 @@ read_win_rectangle(uchar *p, // I - Pixel buffer or NULL to allocate bi.bmiHeader.biClrImportant = 0; // copy bitmap from original DC (Window, Fl_Offscreen, ...) - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); HDC hdc = CreateCompatibleDC(gc); HBITMAP hbm = CreateCompatibleBitmap(gc,w,h); diff --git a/src/fl_scroll_area.cxx b/src/fl_scroll_area.cxx index e79d1453c..aa63976f7 100644 --- a/src/fl_scroll_area.cxx +++ b/src/fl_scroll_area.cxx @@ -79,7 +79,7 @@ void fl_scroll(int X, int Y, int W, int H, int dx, int dy, } #if defined(USE_X11) - XCopyArea(fl_display, fl_window, fl_window, (GC)fl_graphics_driver->get_gc(), + XCopyArea(fl_display, fl_window, fl_window, (GC)fl_graphics_driver->gc(), src_x, src_y, src_w, src_h, dest_x, dest_y); // we have to sync the display and get the GraphicsExpose events! (sigh) for (;;) { @@ -117,7 +117,7 @@ void fl_scroll(int X, int Y, int W, int H, int dx, int dy, // multi-screen solutions, it will not solve issues scrolling // from a different resolution screen onto another. // Note 3: this has been tested with image maps, too. - HDC gc = (HDC)fl_graphics_driver->get_gc(); + HDC gc = (HDC)fl_graphics_driver->gc(); if (fl_GetRandomRgn) { // get the DC region minus all overlapping windows HRGN sys_rgn = CreateRectRgn(0, 0, 0, 0); diff --git a/src/gl_draw.cxx b/src/gl_draw.cxx index 51f92fd66..10801ae40 100644 --- a/src/gl_draw.cxx +++ b/src/gl_draw.cxx @@ -101,10 +101,10 @@ void gl_font(int fontid, int size) { // this is unused because USE_OksiD_style_GL_font_selection == 1 int base = fl_fontsize->metr.tmFirstChar; int count = fl_fontsize->metr.tmLastChar-base+1; - HFONT oldFid = (HFONT)SelectObject((HDC)fl_graphics_driver->get_gc(), fl_fontsize->fid); + HFONT oldFid = (HFONT)SelectObject((HDC)fl_graphics_driver->gc(), fl_fontsize->fid); fl_fontsize->listbase = glGenLists(256); - wglUseFontBitmaps((HDC)fl_graphics_driver->get_gc(), base, count, fl_fontsize->listbase+base); - SelectObject((HDC)fl_graphics_driver->get_gc(), oldFid); + wglUseFontBitmaps((HDC)fl_graphics_driver->gc(), base, count, fl_fontsize->listbase+base); + SelectObject((HDC)fl_graphics_driver->gc(), oldFid); # endif #endif // USE_OksiD_style_GL_font_selection @@ -132,9 +132,9 @@ static void get_list(int r) { # endif #elif defined(WIN32) unsigned int ii = r * 0x400; - HFONT oldFid = (HFONT)SelectObject((HDC)fl_graphics_driver->get_gc(), gl_fontsize->fid); - wglUseFontBitmapsW((HDC)fl_graphics_driver->get_gc(), ii, ii + 0x03ff, gl_fontsize->listbase+ii); - SelectObject((HDC)fl_graphics_driver->get_gc(), oldFid); + HFONT oldFid = (HFONT)SelectObject((HDC)fl_graphics_driver->gc(), gl_fontsize->fid); + wglUseFontBitmapsW((HDC)fl_graphics_driver->gc(), ii, ii + 0x03ff, gl_fontsize->listbase+ii); + SelectObject((HDC)fl_graphics_driver->gc(), oldFid); #else # error unsupported platform #endif @@ -491,10 +491,10 @@ int gl_texture_fifo::compute_texture(const char* str, int n) CGColorSpaceRef lut = CGColorSpaceCreateDeviceRGB(); void *base = NULL; if (fl_mac_os_version < 100600) base = calloc(4*fifo[current].width, h); - void* save_gc = fl_graphics_driver->get_gc(); + void* save_gc = fl_graphics_driver->gc(); CGContextRef gc = CGBitmapContextCreate(base, fifo[current].width, h, 8, fifo[current].width*4, lut, (CGBitmapInfo)(kCGImageAlphaPremultipliedFirst | kCGBitmapByteOrder32Host)); - fl_graphics_driver->set_gc(gc); + fl_graphics_driver->gc(gc); CGColorSpaceRelease(lut); GLfloat colors[4]; glGetFloatv(GL_CURRENT_COLOR, colors); @@ -510,7 +510,7 @@ int gl_texture_fifo::compute_texture(const char* str, int n) glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA8, fifo[current].width, h, 0, GL_BGRA_EXT, GL_UNSIGNED_INT_8_8_8_8_REV, CGBitmapContextGetData(gc)); glPopAttrib(); CGContextRelease(gc); - fl_graphics_driver->set_gc(save_gc); + fl_graphics_driver->gc(save_gc); if (base) free(base); } else { fifo[current].ratio = float(fifo[current].width)/glutStrokeLength(GLUT_STROKE_ROMAN, (uchar*)fifo[current].utf8); -- cgit v1.2.3