Public Types | Public Member Functions | Static Public Member Functions

gfxTextRun::CompressedGlyph Class Reference

This class records the information associated with a character in the input string. More...

#include <gfxFont.h>

List of all members.

Public Types

enum  {
  FLAG_IS_SIMPLE_GLYPH = 0x80000000U, FLAG_CAN_BREAK_BEFORE = 0x40000000U, ADVANCE_MASK = 0x3FFF0000U, ADVANCE_SHIFT = 16,
  GLYPH_MASK = 0x0000FFFFU, FLAG_NOT_MISSING = 0x01, FLAG_NOT_CLUSTER_START = 0x02, FLAG_NOT_LIGATURE_GROUP_START = 0x04,
  GLYPH_COUNT_MASK = 0x00FFFF00U, GLYPH_COUNT_SHIFT = 8
}

Public Member Functions

 CompressedGlyph ()
PRBool IsSimpleGlyph () const
PRUint32 GetSimpleAdvance () const
PRUint32 GetSimpleGlyph () const
PRBool IsMissing () const
PRBool IsClusterStart () const
PRBool IsLigatureGroupStart () const
PRBool IsLigatureContinuation () const
PRBool CanBreakBefore () const
PRUint32 SetCanBreakBefore (PRBool aCanBreakBefore)
CompressedGlyphSetSimpleGlyph (PRUint32 aAdvanceAppUnits, PRUint32 aGlyph)
CompressedGlyphSetComplex (PRBool aClusterStart, PRBool aLigatureStart, PRUint32 aGlyphCount)
CompressedGlyphSetMissing (PRUint32 aGlyphCount)
 Missing glyphs are treated as cluster and ligature group starts.
PRUint32 GetGlyphCount () const

Static Public Member Functions

static PRBool IsSimpleGlyphID (PRUint32 aGlyph)
static PRBool IsSimpleAdvance (PRUint32 aAdvance)

Detailed Description

This class records the information associated with a character in the input string.

It's optimized for the case where there is one glyph representing that character alone.

A character can have zero or more associated glyphs. Each glyph has an advance width and an x and y offset. A character may be the start of a cluster. A character may be the start of a ligature group. A character can be "missing", indicating that the system is unable to render the character.

All characters in a ligature group conceptually share all the glyphs associated with the characters in a group.


Member Enumeration Documentation

anonymous enum
Enumerator:
FLAG_IS_SIMPLE_GLYPH 
FLAG_CAN_BREAK_BEFORE 
ADVANCE_MASK 
ADVANCE_SHIFT 
GLYPH_MASK 
FLAG_NOT_MISSING 
FLAG_NOT_CLUSTER_START 
FLAG_NOT_LIGATURE_GROUP_START 
GLYPH_COUNT_MASK 
GLYPH_COUNT_SHIFT 

Constructor & Destructor Documentation

gfxTextRun::CompressedGlyph::CompressedGlyph (  )  [inline]

Member Function Documentation

PRBool gfxTextRun::CompressedGlyph::CanBreakBefore (  )  const [inline]
PRUint32 gfxTextRun::CompressedGlyph::GetGlyphCount (  )  const [inline]
PRUint32 gfxTextRun::CompressedGlyph::GetSimpleAdvance (  )  const [inline]
PRUint32 gfxTextRun::CompressedGlyph::GetSimpleGlyph (  )  const [inline]
PRBool gfxTextRun::CompressedGlyph::IsClusterStart (  )  const [inline]
PRBool gfxTextRun::CompressedGlyph::IsLigatureContinuation (  )  const [inline]
PRBool gfxTextRun::CompressedGlyph::IsLigatureGroupStart (  )  const [inline]
PRBool gfxTextRun::CompressedGlyph::IsMissing (  )  const [inline]
static PRBool gfxTextRun::CompressedGlyph::IsSimpleAdvance ( PRUint32  aAdvance  )  [inline, static]
PRBool gfxTextRun::CompressedGlyph::IsSimpleGlyph (  )  const [inline]
static PRBool gfxTextRun::CompressedGlyph::IsSimpleGlyphID ( PRUint32  aGlyph  )  [inline, static]
PRUint32 gfxTextRun::CompressedGlyph::SetCanBreakBefore ( PRBool  aCanBreakBefore  )  [inline]
CompressedGlyph& gfxTextRun::CompressedGlyph::SetComplex ( PRBool  aClusterStart,
PRBool  aLigatureStart,
PRUint32  aGlyphCount 
) [inline]
CompressedGlyph& gfxTextRun::CompressedGlyph::SetMissing ( PRUint32  aGlyphCount  )  [inline]

Missing glyphs are treated as cluster and ligature group starts.

CompressedGlyph& gfxTextRun::CompressedGlyph::SetSimpleGlyph ( PRUint32  aAdvanceAppUnits,
PRUint32  aGlyph 
) [inline]

The documentation for this class was generated from the following file: