diff options
Diffstat (limited to 'Build/source/libs/graphite/doc/hungarian.txt')
-rw-r--r-- | Build/source/libs/graphite/doc/hungarian.txt | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/Build/source/libs/graphite/doc/hungarian.txt b/Build/source/libs/graphite/doc/hungarian.txt new file mode 100644 index 00000000000..946c9a4bc97 --- /dev/null +++ b/Build/source/libs/graphite/doc/hungarian.txt @@ -0,0 +1,126 @@ +GRAPHITE HUNGARIAN NOTATION + +General rules for variable names: + +* Syntax is: + scope indicator (if any) + combining prefix (zero or more) + type/class indicator (required) + usage labels (optional) + +* The only places underscores are used are after the scoping prefixes. Uppercase is used to separate the prefixes from the main label, if any; eg: strName, m_psegNew. + +* If you are creating a new class, make up a short indicator for it and use it consistently. Class indicators should be 3-6 characters long. + +* An appropriate way to indicate method arguments where necessary is with an "Arg" usage label, eg: nValueArg. Generally method arguments have no special indication. + +* Usage labels can be made up arbitrarily, but the ones listed below should be used if they apply. + + +*** Scope indicators: + +m_ member variable +s_ static (global) variable + + +*** Combining prefixes: + +i index +c counter +p pointer +pp double pointer +rg range (array, especially stack-allocated) +prg pointer to the start of an array (often used for method arguments) +v vector +d delta or difference +k constant (combines with an enumeration identifier: eg, klb, kest, kgmet, etc) + + +*** Basic type indicators: + +f boolean (flag) +n integer (simple numerical value--not a counter, index, glyph id, char, measurement, etc.) +b byte +l long integer (whatever that means) +ch character (width irrelevant) +chs short character (8-bit) +chw wide character (16-bit) +chl long (32-bit) character +str string (char-width irrelevant) +sta ANSI string (8-bit) +stu Unicode string (16-bit) +fxd fixed-field integer +v void (yes, this duplicates vector) + +Graphite specific integer types: + +gid glyph id +m em-units +xs logical units, x-coordinates (source) +ys logical units, y-coordinates (source) +xys logical units, x- or y-coordinates (source) +xd display units, x-coordinates +yd display units, y-coordinates +xyd display units, x- or y-coordinates + + +*** Common Graphite-specific class prefixes (not a complete list) + +seg Segment +font Font +txsrc TextSource +fface FontFace +pass GrPass +greng GrEngine +tman GrTableManager +sstrm GrSlotStream +slot GrSlotState +slout GrSlotOutput +chstrm GrCharStream +gbb glyph bounding box + + +*** Enumeration prefixes (see the GrConstants.h and GrData.h files for a more complete list) + +lb line break (breakweight) +twsh trailing whitespace handling +est end-segment type (why the segment was terminated) +dm draw mode (for insertion points) +dirc directionality code +slat slot attribute name +clr color +op operator in Graphite's stack machine + + +*** Usage labels (somewhat optional, depending on context) + +Min first in a sequence or array (used with Lim); minimum (used with Max) +Lim 1 + last in a sequence or array +Max maximum +First first in a sequence (used with Last) +Last last in a sequence +Prev previous +Next next +Ret return value +In input +Out output +New newly created object +Arg method argument + +----------------- + +EXAMPLES + +pf pointer to boolean +cch character count +ipassPrev index of previous pass +pppass pointer to a pointer to a pass +iislot index to an index to a GrSlotState +vich vector of character indices +prgchw pointer to the start of a wide-char buffer +dislot delta to apply to an index of a GrSlotState +m_ipass index of pass (member variable) +ppassNew pointer to a newly created pass +clrBack background color +m_igbbFirst index to the first glyph bounding box (member variable) +islotLim 1 + index of the last slot
\ No newline at end of file |