1 /** <title>NSGraphicsContext</title>
2 
3    <abstract>Abstract drawing context class.</abstract>
4 
5    Copyright (C) 1998,1999 Free Software Foundation, Inc.
6 
7    Author: Richard Frith-Macdonald <richard@brainstorm.co.uk>
8    Date: Feb 1999
9    Based on code by:  Adam Fedor <fedor@gnu.org>
10    Date: Nov 1998
11 
12    This file is part of the GNU Objective C User interface library.
13 
14    This library is free software; you can redistribute it and/or
15    modify it under the terms of the GNU Lesser General Public
16    License as published by the Free Software Foundation; either
17    version 2 of the License, or (at your option) any later version.
18 
19    This library is distributed in the hope that it will be useful,
20    but WITHOUT ANY WARRANTY; without even the implied warranty of
21    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
22    Lesser General Public License for more details.
23 
24    You should have received a copy of the GNU Lesser General Public
25    License along with this library; see the file COPYING.LIB.
26    If not, see <http://www.gnu.org/licenses/> or write to the
27    Free Software Foundation, 51 Franklin Street, Fifth Floor,
28    Boston, MA 02110-1301, USA.
29 */
30 
31 #ifndef _NSGraphicsContext_h_INCLUDE
32 #define _NSGraphicsContext_h_INCLUDE
33 #import <GNUstepBase/GSVersionMacros.h>
34 
35 #import <Foundation/NSObject.h>
36 #import <Foundation/NSMapTable.h>
37 
38 #import <AppKit/AppKitDefines.h>
39 
40 @class NSDate;
41 @class NSDictionary;
42 @class NSMutableArray;
43 @class NSMutableData;
44 @class NSMutableSet;
45 @class NSString;
46 @class NSView;
47 @class NSWindow;
48 @class NSFont;
49 @class NSSet;
50 @class NSBitmapImageRep;
51 @class NSGradient;
52 
53 typedef struct CGContext *CGContextRef;
54 
55 /*
56  * Backing Store Types
57  */
58 enum _NSBackingStoreType
59 {
60   NSBackingStoreRetained,
61   NSBackingStoreNonretained,
62   NSBackingStoreBuffered
63 
64 };
65 typedef NSUInteger NSBackingStoreType;
66 
67 /** NSCompositingOperation defines how an image is drawn or composited onto another.
68  * <list>
69  *  <item>NSCompositeClear: Cleans out an area</item>
70  *  <item> NSCompositeCopy: <em>(Common)</em> Draws over the destination replacing it and carrying over transparency to the destination</item>
71  *  <item> NSCompositeSourceOver: <em>(Common)</em> Draws over the destination with transparency</item>
72  *  <item> NSCompositeSourceIn</item>
73  *  <item> NSCompositeSourceOut</item>
74  *  <item> NSCompositeSourceAtop</item>
75  *  <item> NSCompositeDestinationOver</item>
76  *  <item> NSCompositeDestinationIn</item>
77  *  <item> NSCompositeDestinationOut</item>
78  *  <item> NSCompositeDestinationAtop</item>
79  *  <item> NSCompositeXOR</item>
80  *  <item> NSCompositePlusDarker</item>
81  *  <item> NSCompositeHighlight</item>
82  *  <item> NSCompositePlusLighter</item>
83  * </list>
84  */
85 enum _NSCompositingOperation
86 {
87 
88   NSCompositeClear,
89   NSCompositeCopy,
90   NSCompositeSourceOver,
91   NSCompositeSourceIn,
92   NSCompositeSourceOut,
93   NSCompositeSourceAtop,
94   NSCompositeDestinationOver,
95   NSCompositeDestinationIn,
96   NSCompositeDestinationOut,
97   NSCompositeDestinationAtop,
98   NSCompositeXOR,
99   NSCompositePlusDarker,
100   NSCompositeHighlight,
101   NSCompositePlusLighter
102 
103 #if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
104   , GSCompositeHighlight = 100
105 #endif
106 };
107 typedef NSUInteger NSCompositingOperation;
108 
109 typedef int NSWindowDepth;
110 
111 /* Image interpolation */
112 typedef enum _NSImageInterpolation
113 {
114   NSImageInterpolationDefault,
115   NSImageInterpolationNone,
116   NSImageInterpolationLow,
117   NSImageInterpolationHigh
118 } NSImageInterpolation;
119 
120 
121 /*
122  * The following graphics context stuff is needed by inline functions,
123  * so it must always be available even when compiling for MACOSX or OPENSTEP
124  */
125 
126 
127 typedef enum _GSTextDrawingMode
128 {
129   GSTextFill,
130   GSTextStroke,
131   GSTextClip
132 } GSTextDrawingMode;
133 
134 // We have to load this after the NSCompositingOperation are defined!!!
135 #import <GNUstepGUI/GSMethodTable.h>
136 
137 /*
138  * Window ordering
139  */
140 typedef enum _NSWindowOrderingMode
141 {
142   NSWindowAbove,
143   NSWindowBelow,
144   NSWindowOut
145 
146 } NSWindowOrderingMode;
147 
148 /*
149  * Window input state
150  */
151 typedef enum _GSWindowInputState
152 {
153   GSTitleBarKey = 0,
154   GSTitleBarNormal = 1,
155   GSTitleBarMain = 2
156 
157 } GSWindowInputState;
158 
159 /* Color spaces */
160 typedef enum _GSColorSpace
161 {
162   GSDeviceGray,
163   GSDeviceRGB,
164   GSDeviceCMYK,
165   GSCalibratedGray,
166   GSCalibratedRGB,
167   GSCIELab,
168   GSICC
169 } GSColorSpace;
170 
171 @interface NSGraphicsContext : NSObject
172 {
173   /* Make the one public instance variable first in the object so that, if we
174    * add or remove others, we don't necessarily need to recompile everything.
175    */
176 @public
177   const gsMethodTable	*methods;
178 
179 @protected
180   NSDictionary		*context_info;
181   NSMutableData		*context_data;
182   NSMutableArray	*focus_stack;
183   NSMutableSet          *usedFonts;
184   NSImageInterpolation  _interp;
185   BOOL                  _antialias;
186   NSPoint _patternPhase;
187   void *_graphicsPort;
188   BOOL _isFlipped;
189   NSCompositingOperation _compositingOperation;
190 }
191 
192 + (BOOL) currentContextDrawingToScreen;
193 + (NSGraphicsContext *) graphicsContextWithAttributes: (NSDictionary *)attributes;
194 + (NSGraphicsContext *) graphicsContextWithWindow: (NSWindow *)aWindow;
195 
196 + (void) restoreGraphicsState;
197 + (void) saveGraphicsState;
198 + (void) setGraphicsState: (NSInteger)graphicsState;
199 + (void) setCurrentContext: (NSGraphicsContext*)context;
200 + (NSGraphicsContext*) currentContext;
201 #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
202 + (NSGraphicsContext *) graphicsContextWithBitmapImageRep: (NSBitmapImageRep *)bitmap;
203 + (NSGraphicsContext *) graphicsContextWithGraphicsPort: (void *)port
204                                                 flipped: (BOOL)flag;
205 #endif
206 
207 #if OS_API_VERSION(MAC_OS_X_VERSION_10_10, GS_API_LATEST)
208 - (CGContextRef) CGContext;
209 + (NSGraphicsContext *) graphicsContextWithCGContext: (CGContextRef)ctx
210                                              flipped: (BOOL)flipped;
211 #endif
212 
213 - (NSDictionary *) attributes;
214 - (void *) graphicsPort;
215 
216 - (BOOL) isDrawingToScreen;
217 - (void) flushGraphics;
218 - (void) restoreGraphicsState;
219 - (void) saveGraphicsState;
220 
221 - (void *) focusStack;
222 - (void) setFocusStack: (void *)stack;
223 
224 - (void) setImageInterpolation: (NSImageInterpolation)interpolation;
225 - (NSImageInterpolation) imageInterpolation;
226 - (void) setShouldAntialias: (BOOL)antialias;
227 - (BOOL) shouldAntialias;
228 
229 #if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
230 - (NSPoint) patternPhase;
231 - (void) setPatternPhase: (NSPoint)phase;
232 #endif
233 
234 #if OS_API_VERSION(MAC_OS_X_VERSION_10_4, GS_API_LATEST)
235 - (NSCompositingOperation) compositingOperation;
236 - (void) setCompositingOperation:(NSCompositingOperation) operation;
237 
238 - (BOOL) isFlipped;
239 #endif
240 
241 @end
242 
243 APPKIT_EXPORT NSGraphicsContext	*GSCurrentContext(void);
244 
245 #if OS_API_VERSION(GS_API_NONE, GS_API_NONE)
246 
247 @interface NSGraphicsContext (GNUstep)
248 + (void) setDefaultContextClass: (Class)defaultContextClass;
249 
250 - (id) initWithContextInfo: (NSDictionary*)info;
251 - (id) initWithGraphicsPort: (void *)port
252                     flipped: (BOOL)flag;
253 
254 /*
255  * Focus management methods - lock and unlock should only be used by NSView
256  * in it's implementation of lockFocus and unlockFocus.
257  */
258 - (NSView*) focusView;
259 - (void) lockFocusView: (NSView*)aView inRect: (NSRect)rect;
260 - (void) unlockFocusView: (NSView*)aView needsFlush: (BOOL)flush;
261 
262 /* Private methods for printing */
263 - (void) useFont: (NSString *)fontName;
264 - (void) resetUsedFonts;
265 - (NSSet *) usedFonts;
266 
267 /* Private backend methods */
268 + (void) handleExposeRect: (NSRect)rect forDriver: (void *)driver;
269 @end
270 #endif
271 
272 
273 /*
274  *	GNUstep drawing engine extensions - these are the methods actually
275  *	called when one of the inline PostScript functions (like PSlineto())
276  *	is called.
277  */
278 @interface NSGraphicsContext (Ops)
279 /* ----------------------------------------------------------------------- */
280 /* Color operations */
281 /* ----------------------------------------------------------------------- */
282 - (void) DPScurrentalpha: (CGFloat*)a;
283 - (void) DPScurrentcmykcolor: (CGFloat*)c : (CGFloat*)m : (CGFloat*)y : (CGFloat*)k;
284 - (void) DPScurrentgray: (CGFloat*)gray;
285 - (void) DPScurrenthsbcolor: (CGFloat*)h : (CGFloat*)s : (CGFloat*)b;
286 - (void) DPScurrentrgbcolor: (CGFloat*)r : (CGFloat*)g : (CGFloat*)b;
287 - (void) DPSsetalpha: (CGFloat)a;
288 - (void) DPSsetcmykcolor: (CGFloat)c : (CGFloat)m : (CGFloat)y : (CGFloat)k;
289 - (void) DPSsetgray: (CGFloat)gray;
290 - (void) DPSsethsbcolor: (CGFloat)h : (CGFloat)s : (CGFloat)b;
291 - (void) DPSsetrgbcolor: (CGFloat)r : (CGFloat)g : (CGFloat)b;
292 
293 - (void) GSSetPatterColor: (NSImage*)image;
294 
295 - (void) GSSetFillColorspace: (void *)spaceref;
296 - (void) GSSetStrokeColorspace: (void *)spaceref;
297 - (void) GSSetFillColor: (const CGFloat *)values;
298 - (void) GSSetStrokeColor: (const CGFloat *)values;
299 
300 /* ----------------------------------------------------------------------- */
301 /* Text operations */
302 /* ----------------------------------------------------------------------- */
303 - (void) DPSashow: (CGFloat)x : (CGFloat)y : (const char*)s;
304 - (void) DPSawidthshow: (CGFloat)cx : (CGFloat)cy : (int)c
305                       : (CGFloat)ax : (CGFloat)ay : (const char*)s;
306 - (void) DPScharpath: (const char*)s : (int)b;
307 - (void) appendBezierPathWithPackedGlyphs: (const char *)packedGlyphs
308                                      path: (NSBezierPath*)aPath;
309 - (void) DPSshow: (const char*)s;
310 - (void) DPSwidthshow: (CGFloat)x : (CGFloat)y : (int)c : (const char*)s;
311 - (void) DPSxshow: (const char*)s : (const CGFloat*)numarray : (int)size;
312 - (void) DPSxyshow: (const char*)s : (const CGFloat*)numarray : (int)size;
313 - (void) DPSyshow: (const char*)s : (const CGFloat*)numarray : (int)size;
314 
315 - (void) GSSetCharacterSpacing: (CGFloat)extra;
316 - (void) GSSetFont: (void *)fontref;
317 - (void) GSSetFontSize: (CGFloat)size;
318 - (NSAffineTransform *) GSGetTextCTM;
319 - (NSPoint) GSGetTextPosition;
320 - (void) GSSetTextCTM: (NSAffineTransform *)ctm;
321 - (void) GSSetTextDrawingMode: (GSTextDrawingMode)mode;
322 - (void) GSSetTextPosition: (NSPoint)loc;
323 - (void) GSShowText: (const char *)string : (size_t) length;
324 - (void) GSShowGlyphs: (const NSGlyph *)glyphs : (size_t) length;
325 - (void) GSShowGlyphsWithAdvances: (const NSGlyph *)glyphs : (const NSSize *)advances : (size_t) length;
326 
327 /* ----------------------------------------------------------------------- */
328 /* Gstate Handling */
329 /* ----------------------------------------------------------------------- */
330 - (void) DPSgrestore;
331 - (void) DPSgsave;
332 - (void) DPSinitgraphics;
333 - (void) DPSsetgstate: (NSInteger)gst;
334 
335 - (NSInteger)  GSDefineGState;
336 - (void) GSUndefineGState: (NSInteger)gst;
337 - (void) GSReplaceGState: (NSInteger)gst;
338 
339 /* ----------------------------------------------------------------------- */
340 /* Gstate operations */
341 /* ----------------------------------------------------------------------- */
342 - (void) DPScurrentflat: (CGFloat*)flatness;
343 - (void) DPScurrentlinecap: (int*)linecap;
344 - (void) DPScurrentlinejoin: (int*)linejoin;
345 - (void) DPScurrentlinewidth: (CGFloat*)width;
346 - (void) DPScurrentmiterlimit: (CGFloat*)limit;
347 - (void) DPScurrentpoint: (CGFloat*)x : (CGFloat*)y;
348 - (void) DPScurrentstrokeadjust: (int*)b;
349 - (void) DPSsetdash: (const CGFloat*)pat : (NSInteger)size : (CGFloat)offset;
350 - (void) DPSsetflat: (CGFloat)flatness;
351 - (void) DPSsethalftonephase: (CGFloat)x : (CGFloat)y;
352 - (void) DPSsetlinecap: (int)linecap;
353 - (void) DPSsetlinejoin: (int)linejoin;
354 - (void) DPSsetlinewidth: (CGFloat)width;
355 - (void) DPSsetmiterlimit: (CGFloat)limit;
356 - (void) DPSsetstrokeadjust: (int)b;
357 
358 /* ----------------------------------------------------------------------- */
359 /* Matrix operations */
360 /* ----------------------------------------------------------------------- */
361 - (void) DPSconcat: (const CGFloat*)m;
362 - (void) DPSinitmatrix;
363 - (void) DPSrotate: (CGFloat)angle;
364 - (void) DPSscale: (CGFloat)x : (CGFloat)y;
365 - (void) DPStranslate: (CGFloat)x : (CGFloat)y;
366 
367 - (NSAffineTransform *) GSCurrentCTM;
368 - (void) GSSetCTM: (NSAffineTransform *)ctm;
369 - (void) GSConcatCTM: (NSAffineTransform *)ctm;
370 
371 /* ----------------------------------------------------------------------- */
372 /* Paint operations */
373 /* ----------------------------------------------------------------------- */
374 - (void) DPSarc: (CGFloat)x : (CGFloat)y : (CGFloat)r : (CGFloat)angle1
375 	       : (CGFloat)angle2;
376 - (void) DPSarcn: (CGFloat)x : (CGFloat)y : (CGFloat)r : (CGFloat)angle1
377 		: (CGFloat)angle2;
378 - (void) DPSarct: (CGFloat)x1 : (CGFloat)y1 : (CGFloat)x2 : (CGFloat)y2 : (CGFloat)r;
379 - (void) DPSclip;
380 - (void) DPSclosepath;
381 - (void) DPScurveto: (CGFloat)x1 : (CGFloat)y1 : (CGFloat)x2 : (CGFloat)y2
382 		   : (CGFloat)x3 : (CGFloat)y3;
383 - (void) DPSeoclip;
384 - (void) DPSeofill;
385 - (void) DPSfill;
386 - (void) DPSflattenpath;
387 - (void) DPSinitclip;
388 - (void) DPSlineto: (CGFloat)x : (CGFloat)y;
389 - (void) DPSmoveto: (CGFloat)x : (CGFloat)y;
390 - (void) DPSnewpath;
391 - (void) DPSpathbbox: (CGFloat*)llx : (CGFloat*)lly : (CGFloat*)urx : (CGFloat*)ury;
392 - (void) DPSrcurveto: (CGFloat)x1 : (CGFloat)y1 : (CGFloat)x2 : (CGFloat)y2
393 		    : (CGFloat)x3 : (CGFloat)y3;
394 - (void) DPSrectclip: (CGFloat)x : (CGFloat)y : (CGFloat)w : (CGFloat)h;
395 - (void) DPSrectfill: (CGFloat)x : (CGFloat)y : (CGFloat)w : (CGFloat)h;
396 - (void) DPSrectstroke: (CGFloat)x : (CGFloat)y : (CGFloat)w : (CGFloat)h;
397 - (void) DPSreversepath;
398 - (void) DPSrlineto: (CGFloat)x : (CGFloat)y;
399 - (void) DPSrmoveto: (CGFloat)x : (CGFloat)y;
400 - (void) DPSstroke;
401 - (void) DPSshfill: (NSDictionary *)shaderDictionary;
402 
403 - (void) GSSendBezierPath: (NSBezierPath *)path;
404 - (void) GSRectClipList: (const NSRect *)rects : (int) count;
405 - (void) GSRectFillList: (const NSRect *)rects : (int) count;
406 
407 /* ----------------------------------------------------------------------- */
408 /* Window system ops */
409 /* ----------------------------------------------------------------------- */
410 - (void) GSCurrentDevice: (void**)device : (int*)x : (int*)y;
411 - (void) GSSetDevice: (void*)device : (int)x : (int)y;
412 - (void) DPScurrentoffset: (int*)x : (int*)y;
413 - (void) DPSsetoffset: (short int)x : (short int)y;
414 
415 /*-------------------------------------------------------------------------*/
416 /* Graphics Extensions Ops */
417 /*-------------------------------------------------------------------------*/
418 - (void) DPScomposite: (CGFloat)x : (CGFloat)y : (CGFloat)w : (CGFloat)h
419 		     : (NSInteger)gstateNum : (CGFloat)dx : (CGFloat)dy : (NSCompositingOperation)op;
420 - (void) DPScompositerect: (CGFloat)x : (CGFloat)y : (CGFloat)w : (CGFloat)h : (NSCompositingOperation)op;
421 - (void) DPSdissolve: (CGFloat)x : (CGFloat)y : (CGFloat)w : (CGFloat)h
422 		    : (NSInteger)gstateNum : (CGFloat)dx : (CGFloat)dy : (CGFloat)delta;
423 
424 - (void) GScomposite: (NSInteger)gstateNum
425              toPoint: (NSPoint)aPoint
426 	    fromRect: (NSRect)srcRect
427 	   operation: (NSCompositingOperation)op
428 	    fraction: (CGFloat)delta;
429 - (BOOL) supportsDrawGState;
430 - (void) GSdraw: (NSInteger)gstateNum
431         toPoint: (NSPoint)aPoint
432        fromRect: (NSRect)srcRect
433       operation: (NSCompositingOperation)op
434        fraction: (CGFloat)delta;
435 - (void) GSDrawImage: (NSRect)rect : (void *)imageref;
436 
437 /* ----------------------------------------------------------------------- */
438 /* Postscript Client functions */
439 /* ----------------------------------------------------------------------- */
440 - (void) DPSPrintf: (const char *)fmt : (va_list)args;
441 - (void) DPSWriteData: (const char *)buf : (unsigned int)count;
442 
443 @end
444 
445 /* ----------------------------------------------------------------------- */
446 /* NSGraphics Ops */
447 /* ----------------------------------------------------------------------- */
448 @interface NSGraphicsContext (NSGraphics)
449 
450 /**
451 <p>
452 Read raw pixels from the device and return the information as a bitmap.
453 Pixels are read from the smallest device-pixel aligned rectangle
454 containing rect (defined in the current graphics state and clipped to
455 the current window, but not against the clipping path). If the resulting
456 device rectangle is degenerate, Size will be (0,0) and Data will be nil,
457 but the other entries in the dictionary will be filled in.
458 </p><p>
459 If the device does not support the operation, returns nil.
460 </p><p>
461 The returned dictionary contains at least the following keys:
462 </p>
463 <deflist>
464 <term>Data</term><desc>An NSData-instance with the image data.</desc>
465 
466 <term>Size</term><desc>An NSValue/NSSize with the size in pixels of the
467 returned image data.</desc>
468 
469 <term>BitsPerSample</term><desc>An NSValue/unsigned int.</desc>
470 
471 <term>SamplesPerPixel</term><desc>An NSValue/unsigned int.</desc>
472 
473 <term>ColorSpace</term><desc>An NSString with the name of the color space the
474 data is in.</desc>
475 
476 <term>HasAlpha</term><desc>An NSValue/unsigned int. 0 if the returned image
477 does not have an alpha channel, 1 if it does.</desc>
478 
479 <term>Matrix</term><desc>An NSAffineTransform-instance that contains the
480 transform between current user space and image space for this image.</desc>
481 </deflist>
482 */
483 - (NSDictionary *) GSReadRect: (NSRect)rect;
484 
485 /* Soon to be obsolete */
486 - (void) NSDrawBitmap: (NSRect) rect : (NSInteger) pixelsWide : (NSInteger) pixelsHigh
487 		     : (NSInteger) bitsPerSample : (NSInteger) samplesPerPixel
488 		     : (NSInteger) bitsPerPixel : (NSInteger) bytesPerRow : (BOOL) isPlanar
489 		     : (BOOL) hasAlpha : (NSString *) colorSpaceName
490 		     : (const unsigned char *const [5]) data;
491 
492 - (void) NSBeep;
493 
494 /* Context helper wraps */
495 - (void) GSWSetViewIsFlipped: (BOOL) flipped;
496 - (BOOL) GSWViewIsFlipped;
497 
498 @end
499 
500 /* ----------------------------------------------------------------------- */
501 /* Printing Ops */
502 /* ----------------------------------------------------------------------- */
503 @interface NSGraphicsContext (Printing)
504 
505 - (void) beginPage: (int)ordinalNum
506              label: (NSString*)aString
507               bBox: (NSRect)pageRect
508              fonts: (NSString*)fontNames;
509 - (void) beginPrologueBBox: (NSRect)boundingBox
510               creationDate: (NSString*)dateCreated
511                  createdBy: (NSString*)anApplication
512                      fonts: (NSString*)fontNames
513                    forWhom: (NSString*)user
514                      pages: (int)numPages
515                      title: (NSString*)aTitle;
516 - (void) beginSetup;
517 - (void) beginTrailer;
518 - (void) endDocumentPages: (int)pages
519             documentFonts: (NSSet*)fontNames;
520 - (void) endHeaderComments;
521 - (void) endPageSetup;
522 - (void) endPrologue;
523 - (void) endSetup;
524 - (void) endSheet;
525 - (void) endTrailer;
526 - (void) printerProlog;
527 - (void) showPage;
528 
529 @end
530 
531 @interface NSGraphicsContext (NSGradient)
532 - (void) drawGradient: (NSGradient*)gradient
533            fromCenter: (NSPoint)startCenter
534                radius: (CGFloat)startRadius
535              toCenter: (NSPoint)endCenter
536                radius: (CGFloat)endRadius
537               options: (NSUInteger)options;
538 
539 - (void) drawGradient: (NSGradient*)gradient
540             fromPoint: (NSPoint)startPoint
541               toPoint: (NSPoint)endPoint
542               options: (NSUInteger)options;
543 @end
544 
545 /* NSGraphicContext constants */
546 APPKIT_EXPORT NSString *NSGraphicsContextDestinationAttributeName;
547 APPKIT_EXPORT NSString *NSGraphicsContextPDFFormat;
548 APPKIT_EXPORT NSString *NSGraphicsContextPSFormat;
549 APPKIT_EXPORT NSString *NSGraphicsContextRepresentationFormatAttributeName;
550 
551 /* Colorspace constants */
552 APPKIT_EXPORT NSString *GSColorSpaceName;
553 APPKIT_EXPORT NSString *GSColorSpaceWhitePoint;
554 APPKIT_EXPORT NSString *GSColorSpaceBlackPoint;
555 APPKIT_EXPORT NSString *GSColorSpaceGamma;
556 APPKIT_EXPORT NSString *GSColorSpaceMatrix;
557 APPKIT_EXPORT NSString *GSColorSpaceRange;
558 APPKIT_EXPORT NSString *GSColorSpaceComponents;
559 APPKIT_EXPORT NSString *GSColorSpaceProfile;
560 APPKIT_EXPORT NSString *GSAlternateColorSpace;
561 APPKIT_EXPORT NSString *GSBaseColorSpace;
562 APPKIT_EXPORT NSString *GSColorSpaceColorTable;
563 
564 #endif /* _NSGraphicsContext_h_INCLUDE */
565 
566