diff options
Diffstat (limited to 'src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx')
| -rw-r--r-- | src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx | 133 |
1 files changed, 0 insertions, 133 deletions
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx deleted file mode 100644 index 21c5eda4c..000000000 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.cxx +++ /dev/null @@ -1,133 +0,0 @@ -// -// Rectangle drawing routines for the Fast Light Tool Kit (FLTK). -// -// Copyright 1998-2026 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 -// file is missing or damaged, see the license at: -// -// https://www.fltk.org/COPYING.php -// -// Please see the following page on how to report bugs and issues: -// -// https://www.fltk.org/bugs.php -// - -#include <config.h> -#include "Fl_Quartz_Graphics_Driver.H" -#include "../Darwin/Fl_Darwin_System_Driver.H" -#include "../Cocoa/Fl_Cocoa_Screen_Driver.H" -#include <FL/platform.H> -#include <FL/fl_draw.H> -#include <FL/Fl_Image_Surface.H> - - -void Fl_Quartz_Graphics_Driver::antialias(int state) { -} - -int Fl_Quartz_Graphics_Driver::antialias() { - return 1; -} - -Fl_Quartz_Graphics_Driver::Fl_Quartz_Graphics_Driver() : Fl_Graphics_Driver(), gc_(NULL) { - quartz_line_width_ = 1.f; - quartz_line_cap_ = kCGLineCapButt; - quartz_line_join_ = kCGLineJoinMiter; - quartz_line_pattern = 0; - quartz_line_pattern_size = 0; - high_resolution_ = false; -} - -char Fl_Quartz_Graphics_Driver::can_do_alpha_blending() { - return 1; -} - -static void bmProviderRelease (void *src, const void *data, size_t size) { - CFIndex count = CFGetRetainCount(src); - CFRelease(src); - if(count == 1) free((void*)data); -} - -/* Reference to the current CGContext - For back-compatibility only. The preferred procedure to get this reference is - Fl_Surface_Device::surface()->driver()->gc(). - */ -CGContextRef fl_gc = 0; - -void Fl_Quartz_Graphics_Driver::global_gc() -{ - fl_gc = (CGContextRef)gc(); -} - - -CGContextRef fl_mac_gc() { return fl_gc; } - - -void Fl_Quartz_Graphics_Driver::copy_offscreen(int x, int y, int w, int h, Fl_Offscreen osrc, int srcx, int srcy) { - // draw portion srcx,srcy,w,h of osrc to position x,y (top-left) of the graphics driver's surface - CGContextRef src = (CGContextRef)osrc; - int sw = (int)CGBitmapContextGetWidth(src); - int sh = (int)CGBitmapContextGetHeight(src); - CGImageRef img; - img = CGBitmapContextCreateImage(src); // requires 10.4 - CGAffineTransform at = CGContextGetCTM(src); - float s = at.a; - draw_CGImage(img, x, y, w, h, srcx, srcy, sw/s, sh/s); - CGImageRelease(img); -} - -// so a CGRect matches exactly what is denoted x,y,w,h for clipping purposes -CGRect Fl_Quartz_Graphics_Driver::fl_cgrectmake_cocoa(int x, int y, int w, int h) { - return CGRectMake(x - 0.5, y - 0.5, w, h); -} - -void Fl_Quartz_Graphics_Driver::add_rectangle_to_region(Fl_Region r_, int X, int Y, int W, int H) { - struct flCocoaRegion *r = (struct flCocoaRegion*)r_; - CGRect arg = Fl_Quartz_Graphics_Driver::fl_cgrectmake_cocoa(X, Y, W, H); - int j; // don't add a rectangle totally inside the Fl_Region - for(j = 0; j < r->count; j++) { - if(CGRectContainsRect(r->rects[j], arg)) break; - } - if( j >= r->count) { - r->rects = (CGRect*)realloc(r->rects, (++(r->count)) * sizeof(CGRect)); - r->rects[r->count - 1] = arg; - } -} - -Fl_Region Fl_Quartz_Graphics_Driver::XRectangleRegion(int x, int y, int w, int h) { - struct flCocoaRegion* R = (struct flCocoaRegion*)malloc(sizeof(struct flCocoaRegion)); - R->count = 1; - R->rects = (CGRect *)malloc(sizeof(CGRect)); - *(R->rects) = Fl_Quartz_Graphics_Driver::fl_cgrectmake_cocoa(x, y, w, h); - return R; -} - -void Fl_Quartz_Graphics_Driver::XDestroyRegion(Fl_Region r_) { - if (r_) { - struct flCocoaRegion *r = (struct flCocoaRegion*)r_; - free(r->rects); - free(r); - } -} - -void Fl_Quartz_Graphics_Driver::cache_size(Fl_Image *img, int &width, int &height) { - width *= 2 * scale(); - height *= 2 * scale(); -} - -float Fl_Quartz_Graphics_Driver::override_scale() { - float s = scale(); - if (s != 1.f && Fl_Display_Device::display_device()->is_current()) { - CGContextScaleCTM(gc_, 1./s, 1./s); - Fl_Graphics_Driver::scale(1); - } - return s; -} - -void Fl_Quartz_Graphics_Driver::restore_scale(float s) { - if (s != 1.f && Fl_Display_Device::display_device()->is_current()) { - CGContextScaleCTM(gc_, s, s); - Fl_Graphics_Driver::scale(s); - } -} |
