summaryrefslogtreecommitdiff
path: root/Build/source/libs/graphite-engine/src/segment/GrPass.h
diff options
context:
space:
mode:
authorJonathan Kew <jfkthame@googlemail.com>2008-02-08 17:28:24 +0000
committerJonathan Kew <jfkthame@googlemail.com>2008-02-08 17:28:24 +0000
commitd930e60f53da36d97d91f77e00d01c242f4aba37 (patch)
tree10508a97e179a73aaca1fcc9d79a3de24026bfd4 /Build/source/libs/graphite-engine/src/segment/GrPass.h
parentfcfc8e4880e9573c7c7e54476667079a8269f0fb (diff)
graphite update (synch with XeTeX repository rev.562)
git-svn-id: svn://tug.org/texlive/trunk@6568 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/graphite-engine/src/segment/GrPass.h')
-rw-r--r--Build/source/libs/graphite-engine/src/segment/GrPass.h33
1 files changed, 28 insertions, 5 deletions
diff --git a/Build/source/libs/graphite-engine/src/segment/GrPass.h b/Build/source/libs/graphite-engine/src/segment/GrPass.h
index 9afaf8ac518..aad6b3425b8 100644
--- a/Build/source/libs/graphite-engine/src/segment/GrPass.h
+++ b/Build/source/libs/graphite-engine/src/segment/GrPass.h
@@ -35,6 +35,7 @@ class PassState {
friend class GrSubPass;
friend class GrBidiPass;
friend class GrPosPass;
+ friend class FontMemoryUsage;
public:
PassState()
@@ -135,6 +136,7 @@ protected:
Hungarian: pass
----------------------------------------------------------------------------------------------*/
class GrPass {
+ friend class FontMemoryUsage;
protected:
// Action command codes; these MUST match the corresponding definitions in the compiler:
@@ -190,6 +192,8 @@ public:
// Destructor:
virtual ~GrPass();
+ int PassNumber() { return m_ipass; }
+
bool ReadFromFont(GrIStream & grstrm, int fxdSilfVersion, int fxdRuleVersion, int nOffset);
void InitializeWithNoRules();
@@ -392,7 +396,6 @@ protected:
int m_fxdVersion;
- std::vector<int> vnStack;
// number of items required from previous pass; don't access directly, use the getter
// method, because GrBidiPass overrides to always use 1.
int m_nMaxRuleContext;
@@ -425,6 +428,9 @@ protected:
byte * m_prgbConstraintBlock; // rule constraints
byte * m_prgbActionBlock;
+ int m_cbConstraints; // needed for memory instrumentation only
+ int m_cbActions; // needed for memory instrumentation only
+
bool m_fHasDebugStrings;
data16 * m_prgibConstraintDebug; // m_crul+1 of these
data16 * m_prgibRuleDebug; // m_crul+1 of these
@@ -432,6 +438,9 @@ protected:
bool m_fCheckRules;
bool * m_prgfRuleOkay;
+ std::vector<int> m_vnStack; // for stack machine processing (more efficient than creating the
+ // vector each time)
+
// state of process for this pass
PassState * m_pzpst;
@@ -470,7 +479,10 @@ public:
Hungarian: pass
----------------------------------------------------------------------------------------------*/
-class GrGlyphGenPass : public GrPass {
+class GrGlyphGenPass : public GrPass
+{
+ friend class FontMemoryUsage;
+
public:
GrGlyphGenPass(int ipass) : GrPass(ipass)
{
@@ -497,7 +509,10 @@ protected:
Hungarian: pass
----------------------------------------------------------------------------------------------*/
-class GrLineBreakPass : public GrPass {
+class GrLineBreakPass : public GrPass
+{
+ friend class FontMemoryUsage;
+
public:
GrLineBreakPass(int ipass) : GrPass(ipass)
{
@@ -538,7 +553,10 @@ public:
Hungarian: pass
----------------------------------------------------------------------------------------------*/
-class GrSubPass : public GrPass {
+class GrSubPass : public GrPass
+{
+ friend class FontMemoryUsage;
+
public:
GrSubPass(int ipass) : GrPass(ipass)
{
@@ -615,6 +633,8 @@ public:
----------------------------------------------------------------------------------------------*/
class GrBidiPass : public GrSubPass
{
+ friend class FontMemoryUsage;
+
public:
// Constructor:
GrBidiPass(int ipass)
@@ -677,7 +697,10 @@ public:
Hungarian: pass
----------------------------------------------------------------------------------------------*/
-class GrPosPass : public GrPass {
+class GrPosPass : public GrPass
+{
+ friend class FontMemoryUsage;
+
public:
GrPosPass(int ipass) : GrPass(ipass)
{