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