Home | History | Annotate | Download | only in leperf
      1 /*
      2  *******************************************************************************
      3  *
      4  *   Copyright (C) 2016 and later: Unicode, Inc. and others.
      5  *   License & terms of use: http://www.unicode.org/copyright.html#License
      6  *
      7  *******************************************************************************
      8  *******************************************************************************
      9  *
     10  *   Copyright (C) 1999-2013, International Business Machines
     11  *   Corporation and others.  All Rights Reserved.
     12  *
     13  *******************************************************************************
     14  *   file name:  SimpleFontInstance.h
     15  *
     16  *   created on: 03/30/2006
     17  *   created by: Eric R. Mader
     18  */
     19 
     20 #ifndef __SIMPLEFONTINSTANCE_H
     21 #define __SIMPLEFONTINSTANCE_H
     22 
     23 #include "layout/LETypes.h"
     24 #include "layout/LEFontInstance.h"
     25 
     26 U_NAMESPACE_USE
     27 
     28 class SimpleFontInstance : public LEFontInstance
     29 {
     30 private:
     31     float     fPointSize;
     32     le_int32  fAscent;
     33     le_int32  fDescent;
     34 
     35 protected:
     36     const void *readFontTable(LETag tableTag) const;
     37 
     38 public:
     39     SimpleFontInstance(float pointSize, LEErrorCode &status);
     40 
     41     virtual ~SimpleFontInstance();
     42 
     43     virtual const void *getFontTable(LETag tableTag) const;
     44 
     45     virtual le_int32 getUnitsPerEM() const;
     46 
     47     virtual le_int32 getAscent() const;
     48 
     49     virtual le_int32 getDescent() const;
     50 
     51     virtual le_int32 getLeading() const;
     52 
     53     // We really want to inherit this method from the superclass, but some compilers
     54     // issue a warning if we don't implement it...
     55     virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const;
     56 
     57     // We really want to inherit this method from the superclass, but some compilers
     58     // issue a warning if we don't implement it...
     59     virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const;
     60 
     61     virtual LEGlyphID mapCharToGlyph(LEUnicode32 ch) const;
     62 
     63     virtual void getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const;
     64 
     65     virtual le_bool getGlyphPoint(LEGlyphID glyph, le_int32 pointNumber, LEPoint &point) const;
     66 
     67     float getXPixelsPerEm() const;
     68 
     69     float getYPixelsPerEm() const;
     70 
     71     float getScaleFactorX() const;
     72 
     73     float getScaleFactorY() const;
     74 
     75 };
     76 
     77 #endif
     78