You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
211 lines
8.2 KiB
211 lines
8.2 KiB
/* @(#)CM_VerSion xcf_txop.h atm08 1.3 16293.eco sum= 17208 atm08.004 */
|
|
/***********************************************************************/
|
|
/* */
|
|
/* Copyright 1990-1995 Adobe Systems Incorporated. */
|
|
/* All rights reserved. */
|
|
/* */
|
|
/* Patents Pending */
|
|
/* */
|
|
/* NOTICE: All information contained herein is the property of Adobe */
|
|
/* Systems Incorporated. Many of the intellectual and technical */
|
|
/* concepts contained herein are proprietary to Adobe, are protected */
|
|
/* as trade secrets, and are made available only to Adobe licensees */
|
|
/* for their internal use. Any reproduction or dissemination of this */
|
|
/* software is strictly forbidden unless prior written permission is */
|
|
/* obtained from Adobe. */
|
|
/* */
|
|
/* PostScript and Display PostScript are trademarks of Adobe Systems */
|
|
/* Incorporated or its subsidiaries and may be registered in certain */
|
|
/* jurisdictions. */
|
|
/* */
|
|
/***********************************************************************/
|
|
|
|
/*
|
|
* Type 1 and 2 charstring operators.
|
|
*
|
|
* The Type 2 operator set was derived from the Type 1 set by the removal of
|
|
* some old operators and the addition of new operators. In some cases the
|
|
* functionality of retained operators has also been extended by utilizing
|
|
* operand count information. Spare (unassigned) operators are shown reserved.
|
|
*
|
|
* Macro prefixes:
|
|
*
|
|
* tx_ Shared by Type 1 and Type 2
|
|
* t1_ Found in Type 1 only
|
|
* t2_ Found in Type 2 only
|
|
*/
|
|
|
|
#ifndef TXOPS_H
|
|
#define TXOPS_H
|
|
|
|
/* --- One byte operators (0-31) --- */
|
|
|
|
/* Type 2 */
|
|
#define tx_reserved0 0 /* Reserved */
|
|
#define tx_hstem 1
|
|
#define t2_reserved2 2 /* Reserved (Cube compose) */
|
|
#define tx_vstem 3
|
|
#define tx_vmoveto 4
|
|
#define tx_rlineto 5
|
|
#define tx_hlineto 6
|
|
#define tx_vlineto 7
|
|
#define tx_rrcurveto 8
|
|
#define t2_reserved9 9 /* Reserved */
|
|
#define tx_callsubr 10
|
|
#define tx_return 11
|
|
#define tx_escape 12
|
|
#define t2_reserved13 13 /* Reserved */
|
|
#define tx_endchar 14
|
|
#define t2_reserved15 15 /* Reserved */
|
|
#define t2_blend 16
|
|
#define t2_reserved17 17 /* Reserved */
|
|
#define t2_hstemhm 18
|
|
#define t2_hintmask 19
|
|
#define t2_cntrmask 20
|
|
#define tx_rmoveto 21
|
|
#define tx_hmoveto 22
|
|
#define t2_vstemhm 23
|
|
#define t2_rcurveline 24
|
|
#define t2_rlinecurve 25
|
|
#define t2_vvcurveto 26
|
|
#define t2_hhcurveto 27
|
|
#define t2_shortint 28
|
|
#define t2_callgsubr 29
|
|
#define tx_vhcurveto 30
|
|
#define tx_hvcurveto 31
|
|
|
|
/* Type 1 (where different from above) */
|
|
#define t1_compose 2
|
|
#define t1_closepath 9
|
|
#define t1_hsbw 13
|
|
#define t1_moveto 15 /* Not in Black Book, used in a few fonts */
|
|
#define t1_reserved16 16
|
|
#define t1_curveto 17 /* Not in Black Book, used in a few fonts */
|
|
#define t1_reserved18 18
|
|
#define t1_reserved19 19
|
|
#define t1_reserved20 20
|
|
#define t1_reserved23 23
|
|
#define t1_reserved24 24
|
|
#define t1_reserved25 25
|
|
#define t1_reserved26 26
|
|
#define t1_reserved27 27
|
|
#define t1_reserved28 28
|
|
#define t1_reserved29 29
|
|
|
|
/* --- Two byte operators --- */
|
|
|
|
/* Make escape operator value; may be redefined to suit implementation */
|
|
#ifndef tx_ESC
|
|
#define tx_ESC(op) (tx_escape<<8|(op))
|
|
#endif
|
|
|
|
/* Type 2 */
|
|
#define tx_dotsection tx_ESC(0)
|
|
#define t2_reservedESC1 tx_ESC(1) /* Reserved */
|
|
#define t2_reservedESC2 tx_ESC(2) /* Reserved */
|
|
#define tx_and tx_ESC(3)
|
|
#define tx_or tx_ESC(4)
|
|
#define tx_not tx_ESC(5)
|
|
#define t2_reservedESC6 tx_ESC(6) /* Reserved */
|
|
#define t2_reservedESC7 tx_ESC(7) /* Reserved */
|
|
#define tx_store tx_ESC(8)
|
|
#define tx_abs tx_ESC(9)
|
|
#define tx_add tx_ESC(10)
|
|
#define tx_sub tx_ESC(11)
|
|
#define tx_div tx_ESC(12)
|
|
#define tx_load tx_ESC(13)
|
|
#define tx_neg tx_ESC(14)
|
|
#define tx_eq tx_ESC(15)
|
|
#define t2_reservedESC16 tx_ESC(16) /* Reserved */
|
|
#define t2_reservedESC17 tx_ESC(17)
|
|
#define tx_drop tx_ESC(18)
|
|
#define t2_reservedESC19 tx_ESC(19) /* Reserved (Cube setwv) */
|
|
#define tx_put tx_ESC(20)
|
|
#define tx_get tx_ESC(21)
|
|
#define tx_ifelse tx_ESC(22)
|
|
#define tx_random tx_ESC(23)
|
|
#define tx_mul tx_ESC(24)
|
|
#define tx_reservedESC25 tx_ESC(25)
|
|
#define tx_sqrt tx_ESC(26)
|
|
#define tx_dup tx_ESC(27)
|
|
#define tx_exch tx_ESC(28)
|
|
#define tx_index tx_ESC(29)
|
|
#define tx_roll tx_ESC(30)
|
|
#define tx_reservedESC31 tx_ESC(31) /* Reserved (Cube rotate) */
|
|
#define tx_reservedESC32 tx_ESC(32) /* Reserved (Cube attach) */
|
|
#define t2_reservedESC33 tx_ESC(33) /* Reserved */
|
|
#define t2_hflex tx_ESC(34)
|
|
#define t2_flex tx_ESC(35)
|
|
#define t2_hflex1 tx_ESC(36)
|
|
#define t2_flex1 tx_ESC(37)
|
|
#define t2_cntron tx_ESC(38)
|
|
/* 39-255 Reserved */
|
|
|
|
/* Type 1 (where different from above) */
|
|
#define t1_vstem3 tx_ESC(1)
|
|
#define t1_hstem3 tx_ESC(2)
|
|
#define t1_seac tx_ESC(6)
|
|
#define t1_sbw tx_ESC(7)
|
|
#define t1_callother tx_ESC(16)
|
|
#define t1_pop tx_ESC(17)
|
|
#define t1_setwv tx_ESC(19)
|
|
#define t1_div2 tx_ESC(25)
|
|
#define t1_setcurrentpt tx_ESC(33)
|
|
|
|
/* --- Othersubrs --- */
|
|
|
|
/* Type 1 */
|
|
#define t1_otherFlex 0
|
|
#define t1_otherPreflex1 1
|
|
#define t1_otherPreflex2 2
|
|
#define t1_otherHintSubs 3
|
|
#define t1_otherUniqueId 4
|
|
#define t1_otherGlobalColor 6
|
|
#define t1_otherReserved7 7
|
|
#define t1_otherReserved8 8
|
|
#define t1_otherReserved9 9
|
|
#define t1_otherReserved10 10
|
|
#define t1_otherReserved11 11
|
|
#define t1_otherCntr1 12
|
|
#define t1_otherCntr2 13
|
|
#define t1_otherBlend1 14
|
|
#define t1_otherBlend2 15
|
|
#define t1_otherBlend3 16
|
|
#define t1_otherBlend4 17
|
|
#define t1_otherBlend6 18
|
|
#define t1_otherStoreWV 19
|
|
#define t1_otherAdd 20
|
|
#define t1_otherSub 21
|
|
#define t1_otherMul 22
|
|
#define t1_otherDiv 23
|
|
#define t1_otherPut 24
|
|
#define t1_otherGet 25
|
|
#define t1_otherPSPut 26
|
|
#define t1_otherIfelse 27
|
|
#define t1_otherRandom 28
|
|
#define t1_otherDup 29
|
|
#define t1_otherExch 30
|
|
|
|
/* Return operator size from definition (doesn't handle mask or number ops) */
|
|
#define TXOPSIZE(op) (((op)&0xff00)?2:1)
|
|
|
|
/* --- Interpreter limits/definitions --- */
|
|
#define T2_MAX_OP_STACK 48 /* Max operand stack depth */
|
|
#define TX_MAX_CALL_STACK 10 /* Max callsubr stack depth */
|
|
#define T2_MAX_STEMS 96 /* Max stems */
|
|
#define TX_MAX_MASTERS 16 /* Max master designs */
|
|
#define TX_MAX_AXES 15 /* Max design axes */
|
|
#define TX_MAX_AXIS_MAPS 12 /* Max axis maps (piecewise division) */
|
|
#define TX_STD_FLEX_HEIGHT 50 /* Standard flex height (100ths/pixel) */
|
|
#define TX_MAX_BLUE_VALUES 14 /* 14 values (7 pairs) */
|
|
|
|
/* load/store registry ids */
|
|
#define TX_REG_WV 0 /* WeightVector */
|
|
#define TX_REG_NDV 1 /* NormalizedDesignVector */
|
|
#define TX_REG_UDV 2 /* UserDesignVector */
|
|
|
|
/* Type 1 (where different from above) */
|
|
#define T1_MAX_OP_STACK 24 /* Max operand stack depth */
|
|
#define T1_MAX_AXES 4 /* Max design axes */
|
|
|
|
#endif /* TXOPS_H */
|