after-effects 0.1.6

High(er) level bindings for the Adobe After Effects® SDK.
# `after-effects`

Current version: 0.1.6

High(er) level bindings for the Adobe AfterEffects (Ae) SDK.

This wraps many of the API suites in the Ae SDK and exposes them in safe
Rust.

This is WIP – only tested on `macOS`. Will likely require additional work to
build on `Windows`.

### Prequisites

Download the [*Adobe After Effects SDK*](https://console.adobe.io/downloads/ae).
> Note that the SDK published by Adobe is outdated if you are using the 3D
> Artisan API to write your own 3D renderer plug-in.
> Also see [Features]#features below for more information.
>
> Ignore this if you just want to develop 2D plugins (which still have
> access to 3D data).

Define the `AESDK_ROOT` environment variable that contains the path to your
Ae SDK. Typically the directory structure will look like this:

```
AfterEffectsSDK
├── After_Effects_SDK_Guide.pdf
├── Examples
    ├── AEGP
    ├── Effect
    ├── ...
```
### Features

* `artisan-2-api` – Use the 2nd generation Artisan 3D API. This is not
  included in the official Ae SDK. Specifically it requires:
  * `AE_Scene3D_Private.h`
  * `PR_Feature.h`

  Contact the Adobe Ae SDK team and ask nicely and they may send you
  theses headers.

### Using

Add `after-effects` to your dependencies.

```rust
cargo add after-effects
```

### Getting Started

There are currently no examples. Use the C/C++ examples in the Ae SDK as
guides for now. They translate mor or less 1:1 to Rust when using this
crate.

### Help Wanted/To Do

* Examples! I have a few plug-ins but they need polishing.

* A build system extension that creates the bundle for Ae using
  `cargo-post`/`cargo-make`/cargo-bundle`. I.e. enter one command to get a
  plug-in ready to load in Ae. Currently there are manual steps and they
  need documenting too.

* Better error handling. Possibly using [`color-`]https://crates.io/crates/color-eyre[`eyre`]https://crates.io/crates/eyre?

## License

Apache-2.0 OR BSD-3-Clause OR MIT OR Zlib at your option.