| 341 |
|
|
| 342 |
|
typedef struct xf_spec { |
| 343 |
|
long xid; /* unique transform id */ |
| 344 |
< |
short xav0; /* zeroeth argument in xf_argv array */ |
| 345 |
< |
short xac; /* transform argument count */ |
| 344 |
> |
short xac; /* context argument count */ |
| 345 |
|
short rev; /* boolean true if vertices reversed */ |
| 346 |
|
XF xf; /* cumulative transformation */ |
| 347 |
|
struct xf_array *xarr; /* transformation array pointer */ |
| 348 |
|
struct xf_spec *prev; /* previous transformation context */ |
| 349 |
|
} XF_SPEC; /* followed by argument buffer */ |
| 350 |
|
|
| 351 |
< |
extern int xf_argc; /* total # transform args. */ |
| 352 |
< |
extern char **xf_argv; /* transform arguments */ |
| 353 |
< |
extern XF_SPEC *xf_context; /* current context */ |
| 351 |
> |
extern XF_SPEC *xf_context; /* current transform context */ |
| 352 |
> |
extern char **xf_argend; /* last transform argument */ |
| 353 |
> |
|
| 354 |
> |
#define xf_ac(xf) ((xf)->xac) |
| 355 |
> |
#define xf_av(xf) (xf_argend - (xf)->xac) |
| 356 |
> |
|
| 357 |
> |
#define xf_argc (xf_context==NULL ? 0 : xf_ac(xf_context)) |
| 358 |
> |
#define xf_argv xf_av(xf_context) |
| 359 |
|
|
| 360 |
|
/* |
| 361 |
|
* The transformation handler should do most of the work that needs |