Move function draw_layer_to_context() from Fl_Cocoa_Screen_Driver to Fl_Cocoa_Window_Driver

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11515 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
Manolo Gouy 2016-04-02 16:24:57 +00:00
parent 64c96b9098
commit c88af210e7
4 changed files with 12 additions and 13 deletions

View File

@ -4287,7 +4287,7 @@ static CALayer *get_titlebar_layer(Fl_Window *win)
}
void Fl_Cocoa_Screen_Driver::draw_layer_to_context(CALayer *layer, CGContextRef gc, int w, int h)
void Fl_Cocoa_Window_Driver::draw_layer_to_context(CALayer *layer, CGContextRef gc, int w, int h)
{
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
CGContextSaveGState(gc);
@ -4315,7 +4315,7 @@ void Fl_Cocoa_Window_Driver::capture_titlebar_and_borders(Fl_Shared_Image*& top,
CGColorSpaceRelease(cspace);
CGContextScaleCTM(auxgc, 2, 2);
if (layer) {
Fl_Cocoa_Screen_Driver::draw_layer_to_context(layer, auxgc, w(), htop);
Fl_Cocoa_Window_Driver::draw_layer_to_context(layer, auxgc, w(), htop);
} else {
CGImageRef img = Fl_X::CGImage_from_window_rect(pWindow, 0, -htop, w(), htop);
CGContextSaveGState(auxgc);

View File

@ -21,7 +21,7 @@
#include <FL/Fl_Window_Driver.H>
#include "../Quartz/Fl_Quartz_Printer_Graphics_Driver.H"
#include "../Darwin/Fl_Darwin_System_Driver.H"
#include "Fl_Cocoa_Screen_Driver.H"
#include "Fl_Cocoa_Window_Driver.H"
#include <FL/Fl.H>
#include <FL/x.H>
@ -404,7 +404,7 @@ void Fl_Cocoa_Printer_Driver::draw_decorated_window(Fl_Window *win, int x_offset
CGContextSaveGState(gc);
CGContextTranslateCTM(gc, x_offset - 0.5, y_offset + bt - 0.5);
CGContextScaleCTM(gc, 1, -1);
Fl_Cocoa_Screen_Driver::draw_layer_to_context(layer, gc, win->w(), bt);
Fl_Cocoa_Window_Driver::draw_layer_to_context(layer, gc, win->w(), bt);
CGContextRestoreGState(gc);
}
else {
@ -412,7 +412,7 @@ void Fl_Cocoa_Printer_Driver::draw_decorated_window(Fl_Window *win, int x_offset
CGContextRef gc = CGBitmapContextCreate(NULL, 2*win->w(), 2*bt, 8, 0, cspace, kCGImageAlphaPremultipliedLast);
CGColorSpaceRelease(cspace);
CGContextScaleCTM(gc, 2, 2);
Fl_Cocoa_Screen_Driver::draw_layer_to_context(layer, gc, win->w(), bt);
Fl_Cocoa_Window_Driver::draw_layer_to_context(layer, gc, win->w(), bt);
Fl_RGB_Image *image = new Fl_RGB_Image((const uchar*)CGBitmapContextGetData(gc), 2*win->w(), 2*bt, 4,
CGBitmapContextGetBytesPerRow(gc)); // 10.2
int ori_x, ori_y;

View File

@ -26,7 +26,6 @@
#define FL_COCOA_SCREEN_DRIVER_H
#include <FL/Fl_Screen_Driver.H>
#include <ApplicationServices/ApplicationServices.h>
/*
Move everything here that manages the native screen interface.
@ -40,12 +39,6 @@
class Fl_Window;
#ifdef __OBJC__
@class CALayer;
#else
class CALayer;
#endif // __OBJC__
class FL_EXPORT Fl_Cocoa_Screen_Driver : public Fl_Screen_Driver
{
@ -93,7 +86,6 @@ public:
int insertion_point_location(int *px, int *py, int *pheight);
virtual int dnd(int use_selection);
virtual int compose(int &del);
static void draw_layer_to_context(CALayer *layer, CGContextRef gc, int w, int h);
};

View File

@ -30,6 +30,12 @@
class Fl_Image;
class Fl_Window;
#ifdef __OBJC__
@class CALayer;
#else
class CALayer;
#endif // __OBJC__
/*
Move everything here that manages the native window interface.
@ -91,6 +97,7 @@ public:
virtual void capture_titlebar_and_borders(Fl_Shared_Image*& top, Fl_Shared_Image*& left, Fl_Shared_Image*& bottom, Fl_Shared_Image*& right);
//this one is in Fl_cocoa.mm because it uses Objective-c
virtual void wait_for_expose();
static void draw_layer_to_context(CALayer *layer, CGContextRef gc, int w, int h);
};