| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- //
- // "$Id: cgdebug.h 6951 2009-12-06 22:21:55Z matt $"
- //
- // OS X Core Graphics debugging help for the Fast Light Tool Kit (FLTK).
- //
- // Copyright 1998-2009 by Bill Spitzak and others.
- //
- // This library is free software; you can redistribute it and/or
- // modify it under the terms of the GNU Library General Public
- // License as published by the Free Software Foundation; either
- // version 2 of the License, or (at your option) any later version.
- //
- // This library is distributed in the hope that it will be useful,
- // but WITHOUT ANY WARRANTY; without even the implied warranty of
- // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- // Library General Public License for more details.
- //
- // You should have received a copy of the GNU Library General Public
- // License along with this library; if not, write to the Free Software
- // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- // USA.
- //
- // Please report all bugs and problems on the following page:
- //
- // http://www.fltk.org/str.php
- //
- // This file allows easier debugging of Mac OS X Core Graphics
- // code. This file is normally not included into any FLTK builds,
- // but since it has proven to be tremendously useful in debugging
- // the FLTK port to "Quartz", I decided to add this file in case
- // more bugs show up.
- //
- // This header is activated by adding the following
- // line to "config.h"
- // #include "src/cgdebug.h"
- //
- // Running "./configure" will remove this line from "config.h".
- //
- // When used erreanously, Core Graphics prints warnings to
- // stderr. This is helpful, however it is not possible to
- // associate a line number or source file with the warning message.
- // This headr file outputs a trace of CG calls, interweaveing
- // them with CG warnings.
- //
- // Matthias
- #ifndef CGDEBUG
- #define CGDEBUG
- #include <stdio.h>
- #include <Carbon/Carbon.h>
- //+BitmapContextCreate
- //+BitmapContextGetData
- // ClipCGContextToRegion
- // QDBeginCGContext
- // QDEndCGContext
- //+AddArc
- //+AddLineToPoint
- // ClipToRect
- // ClosePath
- //+ConcatCTM
- //+DrawImage
- // FillPath
- // FillRect
- // Flush
- //+GetCTM
- // MoveToPoint
- //+Release
- // RestoreGState
- // SaveGState
- //+ScaleCTM
- //+SetLineCap
- //+SetLineDash
- //+SetLineJoin
- //+SetLineWidth
- //+SetRGBFillColor
- //+SetRGBStrokeColor
- //+SetShouldAntialias
- //+SetTextMatrix
- //+StrokePath
- //+TranslateCTM
- inline OSStatus dbgLocation(const char *file, int line)
- {
- fprintf(stderr, "%s:%d ", file, line);
- return 0;
- }
- inline OSStatus dbgEndl()
- {
- fprintf(stderr, "\n");
- return 0;
- }
- inline void dbgCGContextClipToRect(CGContextRef a, CGRect b)
- {
- CGContextClipToRect(a, b);
- }
- #define CGContextClipToRect(a, b) { \
- fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
- dbgCGContextClipToRect(a, b); \
- fprintf(stderr, "\n"); }
- inline void dbgCGContextFillRect(CGContextRef a, CGRect b)
- {
- CGContextFillRect(a, b);
- }
- #define CGContextFillRect(a, b) { \
- fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
- dbgCGContextFillRect(a, b); \
- fprintf(stderr, "\n"); }
- inline OSStatus dbgQDEndCGContext(CGrafPtr a, CGContextRef *b)
- {
- return QDEndCGContext(a, b);
- }
- #define QDEndCGContext(a, b) ( \
- dbgLocation(__FILE__, __LINE__) + \
- dbgQDEndCGContext(a, b) + \
- dbgEndl() )
- inline OSStatus dbgQDBeginCGContext(CGrafPtr a, CGContextRef *b)
- {
- return QDBeginCGContext(a, b);
- }
- #define QDBeginCGContext(a, b) ( \
- dbgLocation(__FILE__, __LINE__) + \
- dbgQDBeginCGContext(a, b) + \
- dbgEndl() )
- inline void dbgClipCGContextToRegion(CGContextRef a, const Rect *b, RgnHandle c)
- {
- ClipCGContextToRegion(a, b, c);
- }
- #define ClipCGContextToRegion(a, b, c) { \
- fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
- dbgClipCGContextToRegion(a, b, c); \
- fprintf(stderr, "\n"); }
- inline void dbgCGContextMoveToPoint(CGContextRef context, float x, float y)
- {
- CGContextMoveToPoint(context, x, y);
- }
- #define CGContextMoveToPoint(a, b, c) { \
- fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
- dbgCGContextMoveToPoint(a, b, c); \
- fprintf(stderr, "\n"); }
- inline void dbgCGContextFillPath(CGContextRef context)
- {
- CGContextFillPath(context);
- }
- #define CGContextFillPath(a) { \
- fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
- dbgCGContextFillPath(a); \
- fprintf(stderr, "\n"); }
- inline void dbgCGContextClosePath(CGContextRef context)
- {
- CGContextClosePath(context);
- }
- #define CGContextClosePath(a) { \
- fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
- dbgCGContextClosePath(a); \
- fprintf(stderr, "\n"); }
- inline void dbgCGContextFlush(CGContextRef context)
- {
- CGContextFlush(context);
- }
- #define CGContextFlush(a) { \
- fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
- dbgCGContextFlush(a); \
- fprintf(stderr, "\n"); }
- inline void dbgCGContextSaveGState(CGContextRef context)
- {
- CGContextSaveGState(context);
- }
- #define CGContextSaveGState(a) { \
- fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
- dbgCGContextSaveGState(a); \
- fprintf(stderr, "\n"); }
- inline void dbgCGContextRestoreGState(CGContextRef context)
- {
- CGContextRestoreGState(context);
- }
- #define CGContextRestoreGState(a) { \
- fprintf(stderr, "%s:%d ", __FILE__, __LINE__); \
- dbgCGContextRestoreGState(a); \
- fprintf(stderr, "\n"); }
- #endif
- //
- // End of "$Id: cgdebug.h 6951 2009-12-06 22:21:55Z matt $".
- //
|