00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #pragma once
00018
00019
00020
00021
00022
00023
00024
00025 #include "AITypes.h"
00026 #include "AIForeignObject.h"
00027 #include "AIFont.h"
00028
00029 #include "AIHeaderBegin.h"
00030
00031
00032
00033
00034
00035
00036
00037
00038 #define kAIFOConversionSuite "AI FO Conversion Suite"
00039 #define kAIFOConversionSuiteVersion4 AIAPI_VERSION(4)
00040 #define kAIFOConversionSuiteVersion kAIFOConversionSuiteVersion4
00041 #define kAIFOConversionVersion kAIFOConversionSuiteVersion
00042
00043
00046 #define kAIFOConversionErr '!FOc'
00047
00048
00049
00050
00051
00052
00053
00056 typedef struct _AIAGMColorSpace *AIAGMColorSpaceHandle;
00057
00058
00066 typedef enum AIFOConversionInfoSelector
00067 {
00070 kAIFOConversionInfoNone,
00073 kAIFOConversionInfoFauxedFont,
00076 kAIFOConversionInfoUnknownAxialShading,
00079 kAIFOConversionInfoUnknownRadialShading,
00082 kAIFOConversionInfoUnknownAIMConstruct,
00085 kAIFOConversionInfoTextOutlined,
00088 kAIFOConversionInfoTextRasterized
00089
00090 } AIFOConversionInfoSelector;
00091
00092
00096 typedef enum AIFOContentInfoSelector
00097 {
00100 kAIFOContentInfoNone,
00103 kAIFOContentInfoHasTransparency,
00106 kAIFOContentInfoMarksProcessPlates,
00111 kAIFOContentInfoMarksCMYKPlates,
00114 kAIFOContentInfoHasOverPrint,
00117 kAIFOContentInfoHasText,
00120 kAIFOContentInfoHasGradient,
00123 kAIFOContentInfoHasGradientMesh,
00126 kAIFOContentInfoSpotColor,
00129 kAIFOContentInfoRasterTransform,
00133 kAIFOContentInfoPaintServerRasterRecord,
00138 kAIFOContentInfoHasNonImage
00139
00140 } AIFOContentInfoSelector;
00141
00142
00143
00147 #define AI_FO_MAKE_CONTENT_INFO_FLAG(f) ((f) == 0 ? 0 : (1 << (f)))
00148 typedef enum AIFOContentInfoSelectorFlag : ai::uint32
00149 {
00151 kAIFOContentInfoNoneFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoNone),
00153 kAIFOContentInfoHasTransparencyFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoHasTransparency),
00155 kAIFOContentInfoMarksProcessPlatesFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoMarksProcessPlates),
00157 kAIFOContentInfoMarksCMYKPlatesFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoMarksCMYKPlates),
00159 kAIFOContentInfoHasOverPrintFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoHasOverPrint),
00161 kAIFOContentInfoHasTextFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoHasText),
00163 kAIFOContentInfoHasGradientFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoHasGradient),
00165 kAIFOContentInfoHasGradientMeshFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoHasGradientMesh),
00167 kAIFOContentInfoSpotColorFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoSpotColor),
00169 kAIFOContentInfoRasterTransformFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoRasterTransform),
00171 kAIFOContentInfoPaintServerRasterRecordFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoPaintServerRasterRecord),
00173 kAIFOContentInfoHasNonImageFlag = AI_FO_MAKE_CONTENT_INFO_FLAG(kAIFOContentInfoHasNonImage),
00175 kAIFOContentInfoAllFlag = kAIFOContentInfoHasTransparencyFlag |
00176 kAIFOContentInfoMarksProcessPlatesFlag |
00177 kAIFOContentInfoMarksCMYKPlatesFlag |
00178 kAIFOContentInfoHasOverPrintFlag |
00179 kAIFOContentInfoHasTextFlag |
00180 kAIFOContentInfoHasGradientFlag |
00181 kAIFOContentInfoHasGradientMeshFlag |
00182 kAIFOContentInfoSpotColorFlag |
00183 kAIFOContentInfoRasterTransformFlag |
00184 kAIFOContentInfoPaintServerRasterRecordFlag |
00185 kAIFOContentInfoHasNonImageFlag,
00186
00187 } AIFOContentInfoSelectorFlag;
00188
00191 typedef ai::int32 AIFOConversionFlags;
00192
00195 enum AIFOConversionFlagValue {
00198 kAIFOConversionDefault = 0,
00205 kAIFOConversionFull = 1 << 0,
00207 kAIFOConversionStrokePaths = 1 << 1,
00209 kAIFOConversionSimplifyPaths = 1 << 2,
00216 kAIFOConversionSuppressAttributes = 1 << 3,
00218 kAIFOConversionNoColorizedGray = 1 << 4,
00221 kAIFOConversionUseNewellMixing = 1 << 5,
00223 kAIFOConversionNoNChannelIndexedImages = 1 << 6
00224 };
00225
00226
00235 typedef void (*AIConversionInfoProc)(AIFOConversionInfoSelector selector, void *info, void *data);
00236
00243 typedef void (*AIVisitFontProc)(AIFontKey fontkey, void *data);
00244
00252 typedef void (*AIVisitFontExtendedProc)(AIFontKey fontkey, AIBoolean wasEmbedded, void *data);
00253
00262 typedef void (*AIVisitContentProc)(AIFOContentInfoSelector selector, void *info, void *data);
00263
00268 typedef struct AIFOConversionInfoCollector
00269 {
00272 AIConversionInfoProc proc;
00274 void *data;
00275
00276 } AIFOConversionInfoCollector;
00277
00279 typedef struct
00280 {
00283 AIFOConversionFlags flags;
00287 AIFOConversionInfoCollector info;
00288
00292 AIReal rasterResolution;
00293
00297 AIReal meshResolution;
00298
00301 AIAGMColorSpaceHandle conversionCS;
00302
00303 } AIFOConversionOptions;
00304
00305
00306
00307
00308
00309
00310
00311
00312
00324 typedef struct AIFOConversionSuite {
00325
00340 AIAPI AIErr (*ConvertToNative)(AIArtHandle art, AIFOConversionOptions *options, ai::int16 paintOrder, AIArtHandle prep);
00341
00352 AIAPI AIErr (*GetConversionPort)(AIFOConversionOptions *options, ai::int16 paintOrder, AIArtHandle prep, AIDisplayPortHandle *port);
00353
00357 AIAPI AIErr (*ReleaseConversionPort)(AIDisplayPortHandle port);
00358
00365 AIAPI AIErr (*EnumerateFonts)(AIArtHandle art, AIVisitFontProc visitor, void *data);
00366
00377 AIAPI AIErr (*EnumerateContents)(AIArtHandle art, AIVisitContentProc visitor, void *data);
00378
00387 AIAPI AIErr (*EnumerateContentsEx)(AIArtHandle art, AIVisitContentProc visitor, AIFOContentInfoSelectorFlag flags, void *data);
00388
00401 AIAPI AIErr (*OutlineLegacyText)(AIArtHandle art, ai::int16 paintOrder, AIArtHandle prep);
00402
00409 AIAPI AIErr (*EnumerateEmbeddedFonts)(AIArtHandle art, AIVisitFontExtendedProc visitor, void *data);
00410
00411 } AIFOConversionSuite;
00412
00413
00414 #include "AIHeaderEnd.h"