Support of macOS 10.14 Mojave: better implementation of the Cairo-FLTK interface.
This implementation puts all code related to Cairo support under Mojave in the Cairo-specific source file cairo/Fl_Cairo.cxx, which is preferable. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@13116 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
63626c8f26
commit
2eea5d5856
@ -106,6 +106,13 @@ static cairo_surface_t * cairo_create_surface(void * gc, int W, int H) {
|
||||
# elif defined(WIN32)
|
||||
return cairo_win32_surface_create((HDC) gc);
|
||||
# elif defined(__APPLE_QUARTZ__)
|
||||
CGAffineTransform mat = CGContextGetCTM((CGContextRef)gc);
|
||||
if (mat.d > 0) { // necessary for layer-backed Cairo windows
|
||||
CGContextRestoreGState((CGContextRef)gc);
|
||||
CGContextRestoreGState((CGContextRef)gc);
|
||||
CGContextSaveGState((CGContextRef)gc);
|
||||
CGContextSaveGState((CGContextRef)gc);
|
||||
}
|
||||
return cairo_quartz_surface_create_for_cg_context((CGContext*) gc, W, H);
|
||||
# else
|
||||
# error Cairo is not supported under this platform.
|
||||
|
@ -3537,13 +3537,6 @@ void Fl_Window::make_current()
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_8
|
||||
if (views_use_CA) {
|
||||
i->gc = ((FLView*)[fl_window contentView])->layer_gc;
|
||||
# ifdef FLTK_HAVE_CAIRO
|
||||
// make sure the GC starts with an identity transformation matrix as do native Cocoa GC's
|
||||
CGAffineTransform mat = CGContextGetCTM(i->gc);
|
||||
if (!CGAffineTransformIsIdentity(mat)) { // 10.4
|
||||
CGContextConcatCTM(i->gc, CGAffineTransformInvert(mat));
|
||||
}
|
||||
# endif
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user