You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
329 lines
9.6 KiB
329 lines
9.6 KiB
5 years ago
|
/*
|
||
|
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 <CGBase.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __CGDATAPROVIDER__
|
||
|
#include <CGDataProvider.h>
|
||
|
#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_ */
|
||
|
|