Framework

FxPlug

Create new hardware-accelerated and CPU-based effects for Final Cut Pro and Motion.

Overview

The FxPlug SDK is a compact yet powerful image processing plug-in architecture that lets you create new effects for Final Cut Pro and Motion.

Leveraging technologies such as OpenGL, Core Graphics, and Core Image, you can develop unique plug-ins that include on-screen controls and custom user interface elements—all running seamlessly in the host application.

The FxPlug SDK consists primarily of Objective-C protocol definitions. You create a plug-in by writing code in Objective-C or Objective-C++ that conforms to these protocols. That is, you implement the methods declared by the protocols. The host application provides the capabilities in all the protocols that have the API suffix. Your plug-in is responsible for implementing the other protocols.

Topics

Protocols

Fx3DAPI

The Fx3DAPI protocol defines the methods the host application provides to get information about the 3D environment, including camera and object transforms.

Fx3DAPI_v2

The Fx3DAPI_v2 protocol defines the methods the host application provides to get information about the 3D environment, including camera and object transforms.

Fx3DAPI_v3

The Fx3DAPI_v3 protocol defines the methods the host application provides to get information about the 3D environment, including camera and object transforms.

FxAppearanceAPI

The FxAppearanceAPI protocol defines methods the host application provides to retrieve the current colors being used.

FxBaseEffect

The FxBaseEffect protocol defines the methods that all plug-ins need to implement.

FxColorGamutAPI

The FxColorGamutAPI protocol defines the host application methods for retrieving information about a project's color gamut and conversions to other color spaces.

FxCustomParameterActionAPI

The FxCustomParameterActionAPI protocol defines the methods the host application provides to support a custom parameter view.

FxCustomParameterActionAPI_v2

The FxCustomParameterActionAPI_v2 protocol defines the methods supported by the host application in FxPlug SDK 2.0 to support a custom parameter view.

FxCustomParameterActionAPI_v3

The FxCustomParameterActionAPI_v3 protocol defines the methods supported by the host application in FxPlug SDK 3 to support a custom parameter view.

FxCustomParameterInterpolation

The FxCustomParameterInterpolation protocol defines the methods a plug-in must implement to generate interpolated (in-between) values between keyframes of custom parameters

FxCustomParameterViewHost

The FxCustomParameterViewHost protocol defines the interface a plug-in implements to present a custom user interface for one or more of its parameters.

FxDynamicParameterAPI

The FxDynamicParameterAPI protocol is implemented by the host application and specifies how plug-ins create parameters dynamically.

FxFilter

The FxFilter protocol defines the methods a filter plug-in must implement to render output.

FxGenerator

The FxGenerator protocol defines the methods a generator plug-in must implement to render output.

FxHostResourcesAPI

The FxHostResourcesAPI protocol defines methods that the host application implements to allocate and track resources.

FxHostResourcesClient

The FxHostResourcesClient protocol defines methods that plug-ins implement if they want the host application to request that the plug-in free memory in low-memory situations.

FxKeyframeAPI

The FxKeyframeAPI protocol defines the host application’s methods that allow plug-ins to set and retrieve keyframes for the parameters they have.

FxKeyframeAPI_v2

The FxKeyframeAPI_v2 protocol defines the host application’s methods that allow plug-ins to set and retrieve keyframes for the parameters they have.

FxLightingAPI

The FxLightingAPI protocol defines the host interface that allows a plug-in to get information about lights in a scene in a Motion project.

FxLightingAPI_v2

The FxLightingAPI_v2 protocol defines the host interface that allows a plug-in to get information about lights in a scene in a Motion project.

FxOnScreenControl

The FxOnScreenControl protocol defines the methods a plug-in must implement to create on-screen parameter controls.

FxOnScreenControlAPI

The FxOnScreenControlAPI protocol defines the methods the host application uses to draw controls and other user interface elements directly on the canvas where the user has applied the plug-in.

FxOnScreenControlAPI_v2

The FxOnScreenControlAPI_v2 protocol specifies additions to the FxOnScreenControlAPI protocol which defines the methods the host application provides to manage conversions between various on-screen coordinate spaces.

FxOnScreenControlAPI_v3

The FxOnScreenControlAPI_v3 protocol specifies additions to the FxOnScreenControlAPI protocol which defines the methods the host application provides to manage conversions between various on-screen coordinate spaces.

FxOnScreenControlAPI_v4

The FxOnScreenControlAPI_v4 protocol specifies additions to the FxOnScreenControlAPI protocol which defines the methods the host application provides to manage conversions between various on-screen coordinate spaces.

FxOnScreenControl_v2

The FxOnScreenControl_v2 protocol is defined by the host to allow plug-ins to create on-screen controls that keep track of when the mouse enters or leaves an object and when the cursor is moved within an object.

FxOptionalParameterCreationAPI

The FxOptionalParameterCreationAPI protocol defines the methods implemented by the host application for creating parameters of optional types.

FxOptionalParameterRetrievalAPI

The FxOptionalParameterRetrievalAPI protocol defines the methods the host application provides to retrieve parameter values.

FxOptionalParameterRetrievalAPI_v2

The FxOptionalParameterRetrievalAPI_v2 protocol defines the methods the host application provides to retrieve parameter values.

FxOptionalParameterSettingAPI

The FxOptionalParameterSettingAPI protocol defines the methods that host application provide to set parameter values.

FxParameterCreationAPI

The FxParameterCreationAPI protocol defines the methods provided by the host application to create parameters.

FxParameterCreationAPI_v2

The FxParameterCreationAPI_v2 protocol defines the methods provided by the host application to create parameters.

FxParameterCreationAPI_v3

The FxParameterCreationAPI_v3 protocol defines the methods provided by the host application to create parameters.

FxParameterCreationAPI_v4

The FxParameterCreationAPI_v4 protocol defines the methods provided by the host application to create parameters.

FxParameterRetrievalAPI

The FxParameterRetrievalAPI protocol defines the methods the host application provides to retrieve parameter values.

FxParameterRetrievalAPI_v2

The FxParameterRetrievalAPI_v2 protocol defines the methods the host application provides to retrieve parameter values.

FxParameterRetrievalAPI_v3

The FxParameterRetrievalAPI_v3 protocol defines the methods the host application provides to retrieve parameter values.

FxParameterRetrievalAPI_v4

The FxParameterRetrievalAPI_v4 protocol defines the methods the host application provides to retrieve parameter values.

FxParameterRetrievalAPI_v5

The FxParameterRetrievalAPI_v5 protocol defines the methods the host application provides to retrieve parameter values.

FxParameterSettingAPI

The FxParameterSettingAPI protocol defines the methods the host application provides to set a plug-in’s parameter values.

FxParameterSettingAPI_v2

The FxParameterSettingAPI protocol defines the methods the host application provides to set a plug-in’s parameter values.

FxParameterSettingAPI_v3

The FxParameterSettingAPI_v3 protocol defines the methods the host application provides to set a plug-in’s parameter values.

FxParameterSettingAPI_v4

The FxParameterSettingAPI_v4 protocol defines the methods the host application provides to set a plug-in’s parameter values.

FxPathAPI

The FxPathAPI protocol provides an interface that the host application implements to allow for retrieving information about paths, shapes, and masks the user has drawn on an object.

FxPathAPI_v2

The FxPathAPI_v2 protocol provides an interface that the host application implements to allow for retrieving information about paths, shapes, and masks the user has drawn on an object. It is a new API that uses FxTime and handles NSError's consistently with other familiar APIs.

FxPrincipalAPI

The FxPrincipalAPI protocol provides an interface that the host application implements to retrieve an XPC proxy object for communicating with its XPC.

FxProgressAPI

The FxProgressAPI protocol defines the methods implemented by a host application that allow a plug-in to report progress and support user cancellation.

FxRenderNotificationAPI

The FxRenderNotificationAPI protocol defines a host method that allows the plug-in to force host application to re-render.

FxTemporalImageAPI

The FxTemporalImageAPI protocol defines the methods the host application provides to access an input image at a specific time.

FxTemporalImageAPI_v2

The FxTemporalImageAPI_v2 protocol defines the methods the host application provides to access an input image at a specific time.

FxTemporalTransitionImageAPI

The FxTemporalTransitionImageAPI protocol defines the methods the host application provides to access an input image at a specific time from a transition.

FxTimingAPI

The FxTimingAPI protocol defines the methods provided by the host application to allow a plug-in to query the timing properties of its input image or images, image parameters, effect, timeline, and in/out points.

FxTimingAPI_v2

The FxTimingAPI_v2 protocol defines the method implemented by the host application that allows a plug-in to query the timing properties of its input image or images, image parameters, effect, timeline, and in/out points.

FxTimingAPI_v3

The FxTimingAPI_v3 protocol defines the methods implemented by the host application that allows a plug-in to query the timing properties of its input image or images, image parameters, effect, timeline, and in/out points.

FxTransition

The FxTransition protocol defines the the methods a transition plug-in needs to implement.

FxUndoAPI

The FxUndoAPI protocol defines the methods implemented by the host application to allow a plug-in to manage the host application's undo queue.

FxVersioningAPI

The FxVersioningAPI protocol defines the methods a host application implements for identifying the version of the plug-in that was used by a project when the project was first created.

FxWindowAPI

The FxWindowAPI protocol defines a set of methods a host application implements that allows plug-in to create and destroy a window.

FxWindowHost

the FxWindowHost protocol must be implemented by a plug-in if it wishes to host windows in the applications user interface.

Classes

FxBitmap

The FxBitmap class provides the RAM-based image for software rendering.

FxHostCapabilities

The FxHostCapabilities class is implemented by the plug-in and provides information about the host application’s environment.

FxImage

The FxImage class is the parent class of the FxBitmap and FxTexture classes.

FxMatrix44

The FxMatrix class encapsulates a 4x4 matrix object and provides matrix inversion and transforming of 2D and 3D points.

FxTexture

The FxTexture class defines the methods that allow VRAM-based images to be used for hardware-accelerated rendering.

Reference

FxPlug Constants

This document describes the constants defined in the FxPlug SDK that are not class specific.

FxPlug Data Types

This document describes the data types defined in the FxPlug SDK that are not class specific.