Exemplo n.º 1
0
            // constructor
            public vmtx_cache(Table_vmtx OwnerTable)
            {
                // assign variables
                m_vheaTable        = OwnerTable.vheaTable;
                m_nGlyphsInTheFont = OwnerTable.numOfGlyphsInTheFont;
                m_nLongVerMetrics  = OwnerTable.numOfLongVerMetrics;

                // For ease of use we will store all entrys as double entrys and fix up the single
                // entry arrays when we write out the table
                m_vMetric = new ArrayList(m_nGlyphsInTheFont);
                for (ushort i = 0; i < m_nGlyphsInTheFont; i++)
                {
                    m_vMetric.Add(OwnerTable.GetVMetric(i));
                }
            }
Exemplo n.º 2
0
            // generate a new table from the cached data
            public override OTTable GenerateTable()
            {
                // create a Motorola Byte Order buffer for the new table
                MBOBuffer newbuf = new MBOBuffer((uint)(m_nLongVerMetrics * 4) + (uint)((m_nGlyphsInTheFont - m_nLongVerMetrics) * 2));

                for (ushort i = 0; i < m_nGlyphsInTheFont; i++)
                {
                    if (i < m_nLongVerMetrics)
                    {
                        newbuf.SetUshort(((vMetric)m_vMetric[i]).advanceHeight, (uint)(i * 4));
                        newbuf.SetShort(((vMetric)m_vMetric[i]).topSideBearing, (uint)((i * 4) + 2));
                    }
                    else
                    {
                        newbuf.SetShort(((vMetric)m_vMetric[i]).topSideBearing, (uint)(((m_nLongVerMetrics - 1) * 4) + (i * 2)));
                    }
                }

                // put the buffer into a Table_vhmtx object and return it
                Table_vmtx vmtxTable = new Table_vmtx("vmtx", newbuf);

                return(vmtxTable);
            }
Exemplo n.º 3
0
        public virtual OTTable CreateTableObject(OTTag tag, MBOBuffer buf)
        {
            OTTable table = null;

            string sName = GetUnaliasedTableName(tag);

            switch (sName)
            {
            case "BASE": table = new Table_BASE(tag, buf); break;

            case "CFF ": table = new Table_CFF(tag, buf); break;

            case "cmap": table = new Table_cmap(tag, buf); break;

            case "cvt ": table = new Table_cvt(tag, buf); break;

            case "DSIG": table = new Table_DSIG(tag, buf); break;

            case "EBDT": table = new Table_EBDT(tag, buf); break;

            case "EBLC": table = new Table_EBLC(tag, buf); break;

            case "EBSC": table = new Table_EBSC(tag, buf); break;

            case "fpgm": table = new Table_fpgm(tag, buf); break;

            case "gasp": table = new Table_gasp(tag, buf); break;

            case "GDEF": table = new Table_GDEF(tag, buf); break;

            case "glyf": table = new Table_glyf(tag, buf); break;

            case "GPOS": table = new Table_GPOS(tag, buf); break;

            case "GSUB": table = new Table_GSUB(tag, buf); break;

            case "hdmx": table = new Table_hdmx(tag, buf); break;

            case "head": table = new Table_head(tag, buf); break;

            case "hhea": table = new Table_hhea(tag, buf); break;

            case "hmtx": table = new Table_hmtx(tag, buf); break;

            case "JSTF": table = new Table_JSTF(tag, buf); break;

            case "kern": table = new Table_kern(tag, buf); break;

            case "loca": table = new Table_loca(tag, buf); break;

            case "LTSH": table = new Table_LTSH(tag, buf); break;

            case "maxp": table = new Table_maxp(tag, buf); break;

            case "name": table = new Table_name(tag, buf); break;

            case "OS/2": table = new Table_OS2(tag, buf); break;

            case "PCLT": table = new Table_PCLT(tag, buf); break;

            case "post": table = new Table_post(tag, buf); break;

            case "prep": table = new Table_prep(tag, buf); break;

            case "VDMX": table = new Table_VDMX(tag, buf); break;

            case "vhea": table = new Table_vhea(tag, buf); break;

            case "vmtx": table = new Table_vmtx(tag, buf); break;

            case "VORG": table = new Table_VORG(tag, buf); break;

            //case "Zapf": table = new Table_Zapf(tag, buf); break;
            default: table = new Table__Unknown(tag, buf); break;
            }

            return(table);
        }
Exemplo n.º 4
0
        public virtual OTTable CreateTableObject(OTTag tag, MBOBuffer buf)
        {
            OTTable table = null;

            string sName = GetUnaliasedTableName(tag);

            switch (sName)
            {
                case "BASE": table = new Table_BASE(tag, buf); break;
                case "CFF ": table = new Table_CFF(tag, buf); break;
                case "cmap": table = new Table_cmap(tag, buf); break;
                case "cvt ": table = new Table_cvt(tag, buf); break;
                case "DSIG": table = new Table_DSIG(tag, buf); break;
                case "EBDT": table = new Table_EBDT(tag, buf); break;
                case "EBLC": table = new Table_EBLC(tag, buf); break;
                case "EBSC": table = new Table_EBSC(tag, buf); break;
                case "fpgm": table = new Table_fpgm(tag, buf); break;
                case "gasp": table = new Table_gasp(tag, buf); break;
                case "GDEF": table = new Table_GDEF(tag, buf); break;
                case "glyf": table = new Table_glyf(tag, buf); break;
                case "GPOS": table = new Table_GPOS(tag, buf); break;
                case "GSUB": table = new Table_GSUB(tag, buf); break;
                case "hdmx": table = new Table_hdmx(tag, buf); break;
                case "head": table = new Table_head(tag, buf); break;
                case "hhea": table = new Table_hhea(tag, buf); break;
                case "hmtx": table = new Table_hmtx(tag, buf); break;
                case "JSTF": table = new Table_JSTF(tag, buf); break;
                case "kern": table = new Table_kern(tag, buf); break;
                case "loca": table = new Table_loca(tag, buf); break;
                case "LTSH": table = new Table_LTSH(tag, buf); break;
                case "maxp": table = new Table_maxp(tag, buf); break;
                case "name": table = new Table_name(tag, buf); break;
                case "OS/2": table = new Table_OS2(tag, buf); break;
                case "PCLT": table = new Table_PCLT(tag, buf); break;
                case "post": table = new Table_post(tag, buf); break;
                case "prep": table = new Table_prep(tag, buf); break;
                case "VDMX": table = new Table_VDMX(tag, buf); break;
                case "vhea": table = new Table_vhea(tag, buf); break;
                case "vmtx": table = new Table_vmtx(tag, buf); break;
                case "VORG": table = new Table_VORG(tag, buf); break;
                //case "Zapf": table = new Table_Zapf(tag, buf); break;
                default: table = new Table__Unknown(tag, buf); break;
            }

            return table;
        }
Exemplo n.º 5
0
            // generate a new table from the cached data
            public override OTTable GenerateTable()
            {
                // create a Motorola Byte Order buffer for the new table
                MBOBuffer newbuf = new MBOBuffer((uint)(m_nLongVerMetrics * 4) + (uint)((m_nGlyphsInTheFont - m_nLongVerMetrics) * 2));

                for( ushort i = 0; i < m_nGlyphsInTheFont; i++ )
                {
                    if( i < m_nLongVerMetrics )
                    {
                        newbuf.SetUshort( ((vMetric)m_vMetric[i]).advanceHeight,    (uint)(i * 4 ));
                        newbuf.SetShort ( ((vMetric)m_vMetric[i]).topSideBearing,    (uint)((i * 4) + 2));
                    }
                    else
                    {
                        newbuf.SetShort ( ((vMetric)m_vMetric[i]).topSideBearing,    (uint)(((m_nLongVerMetrics - 1)* 4) + (i * 2)));    
                    }
                }

                // put the buffer into a Table_vhmtx object and return it
                Table_vmtx vmtxTable = new Table_vmtx("vmtx", newbuf);
            
                return vmtxTable;
            }
Exemplo n.º 6
0
            // constructor
            public vmtx_cache(Table_vmtx OwnerTable)
            {
                // assign variables
                m_vheaTable = OwnerTable.vheaTable;
                m_nGlyphsInTheFont = OwnerTable.numOfGlyphsInTheFont;
                m_nLongVerMetrics = OwnerTable.numOfLongVerMetrics;

                // For ease of use we will store all entrys as double entrys and fix up the single
                // entry arrays when we write out the table
                m_vMetric = new ArrayList( m_nGlyphsInTheFont );
                for( ushort i = 0; i < m_nGlyphsInTheFont; i++ )
                {                
                    m_vMetric.Add( OwnerTable.GetVMetric( i ));                    
                }                
            }