Querying

We define a structure type to hold the details of arbitrary transitions, together with some opaque state:


\begin{lstlisting}
enum {
FZ_TRANSITION_NONE = 0, /* aka 'R' or 'REPLACE' */
F...
...e transition code */
int state0;
int state1;
} fz_transition;
\end{lstlisting}

Armed with such a structure, we can call a function to get it filled out:


\begin{lstlisting}
/*
fz_page_presentation: Get the presentation details for a ...
...tx, fz_page *page, fz_transition *transition, float *duration);
\end{lstlisting}

This structure is defined to be sufficient to encapsulate the currently defined PDF transition types; it may be extended in future if other formats require more expressiveness.

Callers are free to directly implement their transitions using the information herein, or else they can make use of a helper function.