diff options
| author | Manolo Gouy <Manolo> | 2018-04-13 13:22:15 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2018-04-13 13:22:15 +0000 |
| commit | 2abe8bd413f97da1beb5c144e1a1f6cb3db25290 (patch) | |
| tree | 6ec8ad0471f4fde2a475a555a5823be6c592a0bc /src/drivers/Quartz | |
| parent | e440b8859f84b65517e016b5b623d09f99289ab9 (diff) | |
Homogenise and simplify the API of Fl_Graphics_Driver::cache(image-type *) virtual member functions.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12833 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/drivers/Quartz')
| -rw-r--r-- | src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H | 6 | ||||
| -rw-r--r-- | src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx | 14 |
2 files changed, 10 insertions, 10 deletions
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H index 97389d15a..bf53877ff 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver.H @@ -74,9 +74,9 @@ public: void draw_image(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D=3); void draw_image_mono(const uchar* buf, int X,int Y,int W,int H, int D=1, int L=0); void draw_image_mono(Fl_Draw_Image_Cb cb, void* data, int X,int Y,int W,int H, int D=1); - fl_uintptr_t cache(Fl_Pixmap *img); - fl_uintptr_t cache(Fl_Bitmap *img); - fl_uintptr_t cache(Fl_RGB_Image *img); + void cache(Fl_Pixmap *img); + void cache(Fl_Bitmap *img); + void cache(Fl_RGB_Image *img); void uncache(Fl_RGB_Image *img, fl_uintptr_t &id_, fl_uintptr_t &mask_); void copy_offscreen(int x, int y, int w, int h, Fl_Offscreen pixmap, int srcx, int srcy); void draw_CGImage(CGImageRef cgimg, int x, int y, int w, int h, int srcx, int srcy, int sw, int sh); diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx index 2d8c1074f..b0cab9733 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_image.cxx @@ -142,7 +142,7 @@ void Fl_Quartz_Graphics_Driver::draw_bitmap(Fl_Bitmap *bm, int XP, int YP, int W } } -fl_uintptr_t Fl_Quartz_Graphics_Driver::cache(Fl_RGB_Image *rgb) { +void Fl_Quartz_Graphics_Driver::cache(Fl_RGB_Image *rgb) { CGColorSpaceRef lut = rgb->d()<=2 ? CGColorSpaceCreateDeviceGray() : CGColorSpaceCreateDeviceRGB(); int ld = rgb->ld(); if (!ld) ld = rgb->data_w() * rgb->d(); @@ -170,7 +170,6 @@ fl_uintptr_t Fl_Quartz_Graphics_Driver::cache(Fl_RGB_Image *rgb) { *Fl_Graphics_Driver::id(rgb) = (fl_uintptr_t)cgimg; CGColorSpaceRelease(lut); CGDataProviderRelease(src); - return (fl_uintptr_t)cgimg; } void Fl_Quartz_Graphics_Driver::draw_rgb(Fl_RGB_Image *img, int XP, int YP, int WP, int HP, int cx, int cy) { @@ -190,7 +189,8 @@ void Fl_Quartz_Graphics_Driver::draw_rgb(Fl_RGB_Image *img, int XP, int YP, int cgimg = NULL; } if (!cgimg) { - cgimg = (CGImageRef)cache(img); + cache(img); + cgimg = (CGImageRef)*Fl_Graphics_Driver::id(img); } if (cgimg && gc_) { draw_CGImage(cgimg, X,Y,W,H, cx,cy, img->w(), img->h()); @@ -233,8 +233,8 @@ void Fl_Quartz_Graphics_Driver::uncache(Fl_RGB_Image*, fl_uintptr_t &id_, fl_uin } } -fl_uintptr_t Fl_Quartz_Graphics_Driver::cache(Fl_Bitmap *bm) { - return (fl_uintptr_t)create_bitmask(bm->data_w(), bm->data_h(), bm->array); +void Fl_Quartz_Graphics_Driver::cache(Fl_Bitmap *bm) { + *Fl_Graphics_Driver::id(bm) = (fl_uintptr_t)create_bitmask(bm->data_w(), bm->data_h(), bm->array); } @@ -242,7 +242,7 @@ static void pmProviderRelease (void *ctxt, const void *data, size_t size) { CFRelease(ctxt); } -fl_uintptr_t Fl_Quartz_Graphics_Driver::cache(Fl_Pixmap *img) { +void Fl_Quartz_Graphics_Driver::cache(Fl_Pixmap *img) { Fl_Image_Surface *surf = new Fl_Image_Surface(img->data_w(), img->data_h()); Fl_Surface_Device::push_current(surf); fl_draw_pixmap(img->data(), 0, 0, FL_BLACK); @@ -259,7 +259,7 @@ fl_uintptr_t Fl_Quartz_Graphics_Driver::cache(Fl_Pixmap *img) { src_bytes, 0L, false, kCGRenderingIntentDefault); CGColorSpaceRelease(lut); CGDataProviderRelease(src_bytes); - return (fl_uintptr_t)cgimg; + *Fl_Graphics_Driver::id(img) = (fl_uintptr_t)cgimg; } 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) |
