
C
HAPTER
1: Overview
Illustrator API
18
Illustrator's artwork as seen by a plug-in
Most plug-ins manipulate Illustrator artwork (including paths, text, and raster art) in some manner.
Illustrator artwork objects are presented to plug-ins as a hierarchical tree, which plug-ins can freely modify.
Plug-ins can create, remove, and change the characteristics of artwork objects. For example, plug-ins can
group objects, move or distort paths, adjust colors, and search and change text.
Cross-platform support
The implementation of the Illustrator API is highly portable across platforms. Plug-ins can be written for
Mac OS and Windows platforms. Working with Illustrator data types is the same on both platforms.
Differences are related to the architectures of the hardware or operating system on which Illustrator runs,
and these are abstracted, so the API call works on both environments with a minimum of platform support
code. There are platform-specific API functions, but these exist largely for backward compatibility with
earlier implementations; there are cross-platform versions that we suggest you use instead.
Because of this high level of compatibility, writing an Illustrator plug-in for Mac OS and Windows is fairly
easy. The Illustrator-specific code can be run with little modification, often only a few lines of code within
an
#ifdef
. For example, the Tutorial sample in the SDK uses identical source code; only the resources are
platform specific.
The main differences are in presenting the user interface and resource data; depending on user-interface
complexity, this can be a significant undertaking. User-interface items like menus are implemented using
the Illustrator API and are highly compatible across platforms.
Memory
Memory-management functionality is provided by
SPBasicSuite
and
SPBlocksSuite
. The Basic suite
(
SPBasicSuite
) memory allocation functions are convenient since this suite is readily available when a
plug-in is called (see
SPMessageData
).
Resources
Illustrator plug-ins define their resources in the format native to the platform on which they are running.
The resources can be accessed from a plug-in using
SPAccessSuite::GetAccessInfo
.
Byte information and structures
Illustrator-specific data structures for the Mac OS and Windows implementations are the same, with the
exception of platform dependencies like byte order. On Windows and Mac OS, byte alignment is to
four-byte boundaries.
System requirements
The platforms supported for Illustrator plug-in development are documented in
Getting Started with Adobe
Illustrator CS5 Development
. Platform requirements for Illustrator are defined in the product release notes.