mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-06 08:08:04 +02:00
[quartz] Rename nquartz to quartz
This commit is contained in:
parent
641f0919d5
commit
4c201723ce
11 changed files with 1842 additions and 2213 deletions
|
|
@ -700,31 +700,17 @@ cleanup_cairo_glitz_wgl (void *closure)
|
|||
|
||||
#endif /* CAIRO_HAS_GLITZ_SURFACE */
|
||||
|
||||
#if 0 && CAIRO_HAS_QUARTZ_SURFACE
|
||||
static cairo_surface_t *
|
||||
create_quartz_surface (int width, int height, void **closure)
|
||||
{
|
||||
#error Not yet implemented
|
||||
}
|
||||
#if CAIRO_HAS_QUARTZ_SURFACE
|
||||
|
||||
static void
|
||||
cleanup_quartz (void *closure)
|
||||
{
|
||||
#error Not yet implemented
|
||||
}
|
||||
#endif
|
||||
|
||||
#if CAIRO_HAS_NQUARTZ_SURFACE
|
||||
|
||||
#include <cairo-nquartz.h>
|
||||
#include <cairo-quartz.h>
|
||||
|
||||
static cairo_surface_t *
|
||||
create_nquartz_surface (const char *name,
|
||||
cairo_content_t content,
|
||||
int width,
|
||||
int height,
|
||||
cairo_boilerplate_mode_t mode,
|
||||
void **closure)
|
||||
create_quartz_surface (const char *name,
|
||||
cairo_content_t content,
|
||||
int width,
|
||||
int height,
|
||||
cairo_boilerplate_mode_t mode,
|
||||
void **closure)
|
||||
{
|
||||
cairo_format_t format;
|
||||
|
||||
|
|
@ -739,11 +725,11 @@ create_nquartz_surface (const char *name,
|
|||
|
||||
*closure = NULL;
|
||||
|
||||
return cairo_nquartz_surface_create (format, width, height);
|
||||
return cairo_quartz_surface_create (format, width, height);
|
||||
}
|
||||
|
||||
static void
|
||||
cleanup_nquartz (void *closure)
|
||||
cleanup_quartz (void *closure)
|
||||
{
|
||||
/* nothing */
|
||||
}
|
||||
|
|
@ -1430,19 +1416,14 @@ cairo_boilerplate_target_t targets[] =
|
|||
cleanup_cairo_glitz_wgl },
|
||||
#endif
|
||||
#endif /* CAIRO_HAS_GLITZ_SURFACE */
|
||||
#if 0 && CAIRO_HAS_QUARTZ_SURFACE
|
||||
#if CAIRO_HAS_QUARTZ_SURFACE
|
||||
{ "quartz", CAIRO_SURFACE_TYPE_QUARTZ, CAIRO_CONTENT_COLOR_ALPHA, 0,
|
||||
create_quartz_surface, cairo_surface_write_to_png,
|
||||
cleanup_quartz },
|
||||
{ "quartz", CAIRO_SURFACE_TYPE_QUARTZ, CAIRO_CONTENT_COLOR, 0,
|
||||
create_quartz_surface, cairo_surface_write_to_png,
|
||||
cleanup_quartz },
|
||||
#endif
|
||||
#if CAIRO_HAS_NQUARTZ_SURFACE
|
||||
{ "nquartz", CAIRO_SURFACE_TYPE_NQUARTZ, CAIRO_CONTENT_COLOR_ALPHA, 0,
|
||||
create_nquartz_surface, cairo_surface_write_to_png,
|
||||
cleanup_nquartz },
|
||||
{ "nquartz", CAIRO_SURFACE_TYPE_NQUARTZ, CAIRO_CONTENT_COLOR, 0,
|
||||
create_nquartz_surface, cairo_surface_write_to_png,
|
||||
cleanup_nquartz },
|
||||
#endif
|
||||
#if CAIRO_HAS_WIN32_SURFACE
|
||||
{ "win32", CAIRO_SURFACE_TYPE_WIN32, CAIRO_CONTENT_COLOR, 0,
|
||||
create_win32_surface, cairo_surface_write_to_png, cleanup_win32 },
|
||||
|
|
|
|||
|
|
@ -278,12 +278,6 @@ CAIRO_BACKEND_ENABLE(quartz, Quartz, quartz, QUARTZ_SURFACE, no, [
|
|||
quartz_LIBS="-Xlinker -framework -Xlinker Carbon"
|
||||
])
|
||||
|
||||
CAIRO_BACKEND_ENABLE(nquartz, NativeQuartz, nquartz, NQUARTZ_SURFACE, no, [
|
||||
dnl There is no pkgconfig for quartz; lets do a header check
|
||||
AC_CHECK_HEADER(Carbon/Carbon.h, , [use_nquartz="no (Carbon headers not found)"])
|
||||
quartz_LIBS="-Xlinker -framework -Xlinker Carbon"
|
||||
])
|
||||
|
||||
dnl ===========================================================================
|
||||
|
||||
AC_MSG_CHECKING([for native Win32])
|
||||
|
|
@ -889,7 +883,6 @@ echo " image: yes (always builtin)"
|
|||
echo " Xlib: $use_xlib"
|
||||
echo " Xlib Xrender: $use_xlib_xrender"
|
||||
echo " Quartz: $use_quartz"
|
||||
echo " Native Quartz: $use_nquartz"
|
||||
echo " XCB: $use_xcb"
|
||||
echo " Win32: $use_win32"
|
||||
echo " OS2: $use_os2"
|
||||
|
|
|
|||
|
|
@ -66,12 +66,6 @@ libcairo_quartz_sources = cairo-quartz-surface.c cairo-quartz-private.h
|
|||
backend_pkgconfigs += cairo-quartz.pc
|
||||
endif
|
||||
|
||||
if CAIRO_HAS_NQUARTZ_SURFACE
|
||||
libcairo_nquartz_headers = cairo-nquartz.h
|
||||
libcairo_nquartz_sources = cairo-nquartz-surface.c cairo-quartz-private.h
|
||||
backend_pkgconfigs += cairo-nquartz.pc
|
||||
endif
|
||||
|
||||
if OS_WIN32
|
||||
export_symbols = -export-symbols cairo.def
|
||||
cairo_def_dependency = cairo.def
|
||||
|
|
|
|||
|
|
@ -935,7 +935,7 @@ _cairo_atsui_font_old_show_glyphs (void *abstract_font,
|
|||
CGFontRef cgFont;
|
||||
CGAffineTransform textTransform;
|
||||
|
||||
if (!_cairo_surface_is_quartz (generic_surface))
|
||||
if (cairo_surface_get_type (generic_surface) != CAIRO_SURFACE_TYPE_QUARTZ)
|
||||
return CAIRO_INT_STATUS_UNSUPPORTED;
|
||||
|
||||
/* Check if we can draw directly to the destination surface */
|
||||
|
|
@ -961,7 +961,7 @@ _cairo_atsui_font_old_show_glyphs (void *abstract_font,
|
|||
CGContextTranslateCTM(drawingContext, 0, destImageSurface->height);
|
||||
CGContextScaleCTM(drawingContext, 1.0f, -1.0f);
|
||||
} else {
|
||||
drawingContext = ((cairo_quartz_surface_t *)generic_surface)->context;
|
||||
drawingContext = ((cairo_quartz_surface_t *)generic_surface)->cgContext;
|
||||
CGContextSaveGState (drawingContext);
|
||||
}
|
||||
|
||||
|
|
@ -992,35 +992,6 @@ _cairo_atsui_font_old_show_glyphs (void *abstract_font,
|
|||
CGContextSetRGBFillColor(drawingContext, 0.0f, 0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
|
||||
if (surface->clip_region) {
|
||||
pixman_box16_t *boxes = pixman_region_rects (surface->clip_region);
|
||||
int num_boxes = pixman_region_num_rects (surface->clip_region);
|
||||
CGRect stack_rects[10];
|
||||
CGRect *rects;
|
||||
int i;
|
||||
|
||||
/* XXX: Return-value of malloc needs to be checked for
|
||||
* NULL. Can someone fix this who is more familiar with
|
||||
* the cleanup needed in this function?
|
||||
*/
|
||||
if (num_boxes > 10)
|
||||
rects = malloc (sizeof (CGRect) * num_boxes);
|
||||
else
|
||||
rects = stack_rects;
|
||||
|
||||
for (i = 0; i < num_boxes; i++) {
|
||||
rects[i].origin.x = boxes[i].x1;
|
||||
rects[i].origin.y = boxes[i].y1;
|
||||
rects[i].size.width = boxes[i].x2 - boxes[i].x1;
|
||||
rects[i].size.height = boxes[i].y2 - boxes[i].y1;
|
||||
}
|
||||
|
||||
CGContextClipToRects (drawingContext, rects, num_boxes);
|
||||
|
||||
if (rects != stack_rects)
|
||||
free(rects);
|
||||
}
|
||||
|
||||
/* TODO - bold and italic text
|
||||
*
|
||||
* We could draw the text using ATSUI and get bold, italics
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,80 +0,0 @@
|
|||
/* cairo - a vector graphics library with display and print output
|
||||
*
|
||||
* Copyright © 2006 Mozilla Corporation
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it either under the terms of the GNU Lesser General Public
|
||||
* License version 2.1 as published by the Free Software Foundation
|
||||
* (the "LGPL") or, at your option, under the terms of the Mozilla
|
||||
* Public License Version 1.1 (the "MPL"). If you do not alter this
|
||||
* notice, a recipient may use your version of this file under either
|
||||
* the MPL or the LGPL.
|
||||
*
|
||||
* You should have received a copy of the LGPL along with this library
|
||||
* in the file COPYING-LGPL-2.1; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
* You should have received a copy of the MPL along with this library
|
||||
* in the file COPYING-MPL-1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License
|
||||
* Version 1.1 (the "License"); you may not use this file except in
|
||||
* compliance with the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY
|
||||
* OF ANY KIND, either express or implied. See the LGPL or the MPL for
|
||||
* the specific language governing rights and limitations.
|
||||
*
|
||||
* The Original Code is the cairo graphics library.
|
||||
*
|
||||
* The Initial Developer of the Original Code is Mozilla Corporation.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Vladimir Vukicevic <vladimir@mozilla.com>
|
||||
*/
|
||||
|
||||
#ifndef CAIRO_NQUARTZ_H
|
||||
#define CAIRO_NQUARTZ_H
|
||||
|
||||
#include <cairo.h>
|
||||
|
||||
#if CAIRO_HAS_NQUARTZ_SURFACE
|
||||
|
||||
#include <Carbon/Carbon.h>
|
||||
|
||||
#include <AGL/agl.h>
|
||||
|
||||
CAIRO_BEGIN_DECLS
|
||||
|
||||
cairo_public cairo_surface_t *
|
||||
cairo_nquartz_surface_create (cairo_format_t format,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
#ifdef CAIRO_NQUARTZ_SUPPORT_AGL
|
||||
cairo_public cairo_surface_t *
|
||||
cairo_nquartz_surface_create_for_agl_context (AGLContext aglContext,
|
||||
unsigned int width,
|
||||
unsigned int height,
|
||||
cairo_bool_t y_grows_down);
|
||||
#endif
|
||||
|
||||
cairo_public cairo_surface_t *
|
||||
cairo_nquartz_surface_create_for_cg_context (CGContextRef cgContext,
|
||||
unsigned int width,
|
||||
unsigned int height,
|
||||
cairo_bool_t y_grows_down);
|
||||
|
||||
cairo_public cairo_bool_t
|
||||
cairo_surface_is_nquartz (cairo_surface_t *surf);
|
||||
|
||||
cairo_public CGContextRef
|
||||
cairo_nquartz_surface_get_cg_context (cairo_surface_t *surf);
|
||||
|
||||
CAIRO_END_DECLS
|
||||
|
||||
#else /* CAIRO_HAS_NQUARTZ_SURFACE */
|
||||
# error Cairo was not compiled with support for the nquartz backend
|
||||
#endif /* CAIRO_HAS_NQUARTZ_SURFACE */
|
||||
|
||||
#endif /* CAIRO_NQUARTZ_H */
|
||||
|
|
@ -39,20 +39,34 @@
|
|||
#include <cairoint.h>
|
||||
#include <cairo-quartz.h>
|
||||
|
||||
typedef struct cairo_quartz_surface {
|
||||
#ifdef CAIRO_NQUARTZ_SUPPORT_AGL
|
||||
#include <AGL/agl.h>
|
||||
#include <OpenGL/gl.h>
|
||||
|
||||
typedef AGLContext nquartz_agl_context_type;
|
||||
#else
|
||||
typedef void* nquartz_agl_context_type;
|
||||
#endif
|
||||
|
||||
typedef struct cairo_nquartz_surface {
|
||||
cairo_surface_t base;
|
||||
|
||||
CGContextRef context;
|
||||
void *imageData;
|
||||
|
||||
cairo_bool_t y_grows_down;
|
||||
CGContextRef cgContext;
|
||||
CGAffineTransform cgContextBaseCTM;
|
||||
|
||||
cairo_rectangle_int16_t extents;
|
||||
|
||||
pixman_region16_t *clip_region;
|
||||
} cairo_quartz_surface_t;
|
||||
|
||||
cairo_bool_t
|
||||
_cairo_surface_is_quartz (cairo_surface_t *surface);
|
||||
/* These are stored while drawing operations are in place, set up
|
||||
* by nquartz_setup_source() and nquartz_finish_source()
|
||||
*/
|
||||
CGAffineTransform imageTransform;
|
||||
CGImageRef sourceImage;
|
||||
CGShadingRef sourceShading;
|
||||
CGPatternRef sourcePattern;
|
||||
nquartz_agl_context_type aglContext;
|
||||
} cairo_nquartz_surface_t, cairo_quartz_surface_t;
|
||||
|
||||
cairo_bool_t
|
||||
_cairo_scaled_font_is_atsui (cairo_scaled_font_t *sfont);
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,6 @@
|
|||
/* cairo - a vector graphics library with display and print output
|
||||
*
|
||||
* Copyright © 2002 University of Southern California
|
||||
* Copyright © 2006, 2007 Mozilla Corporation
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it either under the terms of the GNU Lesser General Public
|
||||
|
|
@ -27,15 +27,14 @@
|
|||
*
|
||||
* The Original Code is the cairo graphics library.
|
||||
*
|
||||
* The Initial Developer of the Original Code is University of Southern
|
||||
* California.
|
||||
* The Initial Developer of the Original Code is Mozilla Corporation.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Carl D. Worth <cworth@cworth.org>
|
||||
* Vladimir Vukicevic <vladimir@mozilla.com>
|
||||
*/
|
||||
|
||||
#ifndef CAIRO_QUARTZ_H
|
||||
#define CAIRO_QUARTZ_H
|
||||
#ifndef CAIRO_NQUARTZ_H
|
||||
#define CAIRO_NQUARTZ_H
|
||||
|
||||
#include <cairo.h>
|
||||
|
||||
|
|
@ -43,13 +42,31 @@
|
|||
|
||||
#include <Carbon/Carbon.h>
|
||||
|
||||
#ifdef CAIRO_NQUARTZ_SUPPORT_AGL
|
||||
#include <AGL/agl.h>
|
||||
#endif
|
||||
|
||||
CAIRO_BEGIN_DECLS
|
||||
|
||||
cairo_public cairo_surface_t *
|
||||
cairo_quartz_surface_create (CGContextRef context,
|
||||
int width,
|
||||
int height,
|
||||
cairo_bool_t y_grows_down);
|
||||
cairo_quartz_surface_create (cairo_format_t format,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
#ifdef CAIRO_NQUARTZ_SUPPORT_AGL
|
||||
cairo_public cairo_surface_t *
|
||||
cairo_quartz_surface_create_for_agl_context (AGLContext aglContext,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
#endif
|
||||
|
||||
cairo_public cairo_surface_t *
|
||||
cairo_quartz_surface_create_for_cg_context (CGContextRef cgContext,
|
||||
unsigned int width,
|
||||
unsigned int height);
|
||||
|
||||
cairo_public CGContextRef
|
||||
cairo_quartz_surface_get_cg_context (cairo_surface_t *surf);
|
||||
|
||||
CAIRO_END_DECLS
|
||||
|
||||
|
|
@ -57,4 +74,4 @@ CAIRO_END_DECLS
|
|||
# error Cairo was not compiled with support for the quartz backend
|
||||
#endif /* CAIRO_HAS_QUARTZ_SURFACE */
|
||||
|
||||
#endif /* CAIRO_QUARTZ_H */
|
||||
#endif /* CAIRO_NQUARTZ_H */
|
||||
|
|
|
|||
|
|
@ -1321,7 +1321,6 @@ typedef enum _cairo_surface_type {
|
|||
CAIRO_SURFACE_TYPE_BEOS,
|
||||
CAIRO_SURFACE_TYPE_DIRECTFB,
|
||||
CAIRO_SURFACE_TYPE_SVG,
|
||||
CAIRO_SURFACE_TYPE_NQUARTZ,
|
||||
CAIRO_SURFACE_TYPE_OS2
|
||||
} cairo_surface_type_t;
|
||||
|
||||
|
|
|
|||
|
|
@ -135,16 +135,15 @@ draw (cairo_t *cr, int width, int height)
|
|||
case CAIRO_SURFACE_TYPE_XLIB:
|
||||
case CAIRO_SURFACE_TYPE_XCB:
|
||||
case CAIRO_SURFACE_TYPE_GLITZ:
|
||||
case CAIRO_SURFACE_TYPE_QUARTZ:
|
||||
case CAIRO_SURFACE_TYPE_WIN32:
|
||||
case CAIRO_SURFACE_TYPE_BEOS:
|
||||
case CAIRO_SURFACE_TYPE_DIRECTFB:
|
||||
uses_clip_rects = TRUE;
|
||||
break;
|
||||
case CAIRO_SURFACE_TYPE_QUARTZ:
|
||||
case CAIRO_SURFACE_TYPE_PDF:
|
||||
case CAIRO_SURFACE_TYPE_PS:
|
||||
case CAIRO_SURFACE_TYPE_SVG:
|
||||
case CAIRO_SURFACE_TYPE_NQUARTZ:
|
||||
case CAIRO_SURFACE_TYPE_OS2:
|
||||
default:
|
||||
uses_clip_rects = FALSE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue