/* File: CGColorSpace.h Contains: CoreGraphics color space Version: QuickTime 7.3 Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved. Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef CGCOLORSPACE_H_ #define CGCOLORSPACE_H_ #ifndef __CGBASE__ #include #endif #ifndef __CGDATAPROVIDER__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_ENUM_ALWAYSINT #if defined(__fourbyteints__) && !__fourbyteints__ #define __CGCOLORSPACE__RESTORE_TWOBYTEINTS #pragma fourbyteints on #endif #pragma enumsalwaysint on #elif PRAGMA_ENUM_OPTIONS #pragma option enum=int #elif PRAGMA_ENUM_PACK #if __option(pack_enums) #define __CGCOLORSPACE__RESTORE_PACKED_ENUMS #pragma options(!pack_enums) #endif #endif typedef struct CGColorSpace* CGColorSpaceRef; enum CGColorRenderingIntent { kCGRenderingIntentDefault = 0, kCGRenderingIntentAbsoluteColorimetric = 1, kCGRenderingIntentRelativeColorimetric = 2, kCGRenderingIntentPerceptual = 3, kCGRenderingIntentSaturation = 4 }; typedef enum CGColorRenderingIntent CGColorRenderingIntent; /** Device-dependent color spaces. **/ /* Create a DeviceGray colorspace. */ /* * CGColorSpaceCreateDeviceGray() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreateDeviceGray(void); /* Create a DeviceRGB colorspace. */ /* * CGColorSpaceCreateDeviceRGB() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreateDeviceRGB(void); /* Create a DeviceCMYK colorspace. */ /* * CGColorSpaceCreateDeviceCMYK() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreateDeviceCMYK(void); /** Device-independent color spaces. **/ /* Create a calibrated gray colorspace. `whitePoint' is an array of 3 * numbers specifying the tristimulus value, in the CIE 1931 XYZ-space, of * the diffuse white point. `blackPoint' is an array of 3 numbers * specifying the tristimulus value, in CIE 1931 XYZ-space, of the diffuse * black point. `gamma' defines the gamma for the gray component. */ /* * CGColorSpaceCreateCalibratedGray() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreateCalibratedGray( const float whitePoint[3], const float blackPoint[3], float gamma); /* Create a calibrated RGB colorspace. `whitePoint' is an array of 3 * numbers specifying the tristimulus value, in the CIE 1931 XYZ-space, of * the diffuse white point. `blackPoint' is an array of 3 numbers * specifying the tristimulus value, in CIE 1931 XYZ-space, of the diffuse * black point. `gamma' is an array of 3 numbers specifying the gamma for * the red, green, and blue components of the color space. `matrix' is an * array of 9 numbers specifying the linear interpretation of the * gamma-modified RGB values of the colorspace with respect to the final * XYZ representation. */ /* * CGColorSpaceCreateCalibratedRGB() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreateCalibratedRGB( const float whitePoint[3], const float blackPoint[3], const float gamma[3], const float matrix[9]); /* Create an L*a*b* colorspace. `whitePoint' is an array of 3 numbers * specifying the tristimulus value, in the CIE 1931 XYZ-space, of the * diffuse white point. `blackPoint' is an array of 3 numbers specifying * the tristimulus value, in CIE 1931 XYZ-space, of the diffuse black * point. `range' is an array of four numbers specifying the range of valid * values for the a* and b* components of the color space. */ /* * CGColorSpaceCreateLab() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreateLab( const float whitePoint[3], const float blackPoint[3], const float range[4]); /* Create an ICC-based colorspace. `nComponents' specifies the number of * color components in the color space defined by the ICC profile data. * This must match the number of components actually in the ICC profile, * and must be 1, 3, or 4. `range' is an array of 2*nComponents numbers * specifying the minimum and maximum valid values of the corresponding * color components, so that for color component k, range[2*k] <= c[k] <= * range[2*k+1], where c[k] is the k'th color component. `profile' is a * data provider specifying the ICC profile. `alternate' specifies an * alternate colorspace to be used in case the ICC profile is not * supported. It must have `nComponents' color components. If `alternate' * is NULL, then the color space used will be DeviceGray, DeviceRGB, or * DeviceCMYK, depending on whether `nComponents' is 1, 3, or 4, * respectively. */ /* * CGColorSpaceCreateICCBased() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreateICCBased( size_t nComponents, const float * range, CGDataProviderRef profile, CGColorSpaceRef alternateSpace); /** Special colorspaces. **/ /* Create an indexed colorspace. A sample value in an indexed color space * is treated as an index into the color table of the color space. `base' * specifies the base color space in which the values in the color table * are to be interpreted. `lastIndex' is an integer which specifies the * maximum valid index value; it must be less than or equal to 255. * `colorTable' is an array of m * (lastIndex + 1) bytes, where m is * the number of color components in the base color space. Each byte * is an unsigned integer in the range 0 to 255 that is scaled to the * range of the corresponding color component in the base color space. */ /* * CGColorSpaceCreateIndexed() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreateIndexed( CGColorSpaceRef baseSpace, size_t lastIndex, const unsigned char * colorTable); /* Create a pattern colorspace. `baseSpace' is the underlying colorspace of * the pattern colorspace. For colored patterns, `baseSpace' should be * NULL; for uncolored patterns, `baseSpace' specifies the colorspace of * colors which will be painted through the pattern. */ /* * CGColorSpaceCreatePattern() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.1 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreatePattern(CGColorSpaceRef baseSpace); /* Create a CGColorSpace using `platformColorSpaceReference', a pointer to * a platform-specific color space reference. For MacOS X, * `platformColorSpaceReference' should be a pointer to a CMProfileRef. */ /* * CGColorSpaceCreateWithPlatformColorSpace() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.1 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceCreateWithPlatformColorSpace(void * platformColorSpaceReference); /** Colorspace information. **/ /* Return the number of color components supported by the colorspace `cs'. */ /* * CGColorSpaceGetNumberOfComponents() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( size_t ) CGColorSpaceGetNumberOfComponents(CGColorSpaceRef cs); /** Retaining & releasing colorspaces. **/ /* Increment the retain count of `cs' and return it. All colorspaces are * created with an initial retain count of 1. */ /* * CGColorSpaceRetain() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( CGColorSpaceRef ) CGColorSpaceRetain(CGColorSpaceRef cs); /* Decrement the retain count of `cs'. If the retain count reaches 0, then * release it and any associated resources. */ /* * CGColorSpaceRelease() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) CGColorSpaceRelease(CGColorSpaceRef cs); #if PRAGMA_ENUM_ALWAYSINT #pragma enumsalwaysint reset #ifdef __CGCOLORSPACE__RESTORE_TWOBYTEINTS #pragma fourbyteints off #endif #elif PRAGMA_ENUM_OPTIONS #pragma option enum=reset #elif defined(__CGCOLORSPACE__RESTORE_PACKED_ENUMS) #pragma options(pack_enums) #endif #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* CGCOLORSPACE_H_ */