Adobe.com
Contents Suites Classes Class Index Member Index

AIFOConversion.h

Go to the documentation of this file.
00001 /*************************************************************************
00002 *
00003 * ADOBE CONFIDENTIAL
00004 *
00005 * Copyright 2002 Adobe
00006 *
00007 * All Rights Reserved.
00008 *
00009 * NOTICE: Adobe permits you to use, modify, and distribute this file in
00010 * accordance with the terms of the Adobe license agreement accompanying
00011 * it. If you have received this file from a source other than Adobe,
00012 * then your use, modification, or distribution of it requires the prior
00013 * written permission of Adobe.
00014 *
00015 **************************************************************************/
00016 
00017 #pragma once
00018 
00019 /*******************************************************************************
00020  **
00021  **     Imports
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  **     Constants
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  **     Types
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  **     Suites
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"


Contents Suites Classes Class Index Member Index
Adobe Solutions Network
 
Copyright © 2014 Adobe Systems Incorporated. All rights reserved.
Terms of Use Online Privacy Policy Adobe and accessibility Avoid software piracy Permissions and Trademarks