public bool addIndexSubTableArrayCache( int nIndex, indexSubTableArrayCache istac ) { bool bResult = true; if( istac == null ) { bResult = false; throw new ArgumentNullException( "Argument can not be null" ); } else if( nIndex > numberOfIndexSubTables ) { bResult = false; throw new ArgumentOutOfRangeException( "nIndex is out of range." ); } else { m_indexSubTableArray.Insert( nIndex, istac.Clone()); m_numberOfIndexSubTables++; checkAndSetGlyphRange(); } return bResult; }
public bitmapSizeTableCache( Table_EBLC OwnerTable, bitmapSizeTable bst ) { m_numberOfIndexSubTables = bst.numberOfIndexSubTables; m_indexSubTableArray = new ArrayList( (int)m_numberOfIndexSubTables ); indexSubTableArray[] ista = OwnerTable.GetIndexSubTableArray( bst ); for( int i = 0; i < m_numberOfIndexSubTables; i++ ) { indexSubTableCache istc = getEBLCIndexSubTable( OwnerTable, bst, ista[i] ); indexSubTableArrayCache istac = new indexSubTableArrayCache( ista[i].firstGlyphIndex, ista[i].lastGlyphIndex, istc ); m_indexSubTableArray.Add( istac ); indexSubTable ic = bst.GetIndexSubTable(ista[i]); //ista[i].additionalOffsetToIndexSubtable += bst.indexSubTableArrayOffset; } m_colorRef = bst.colorRef; hori = sbitLineMetricsCache.FromSbitLineMetrics(bst.hori); vert = sbitLineMetricsCache.FromSbitLineMetrics(bst.vert); m_startGlyphIndex = bst.startGlyphIndex; m_endGlyphIndex = bst.endGlyphIndex; ppemX = bst.ppemX; ppemY = bst.ppemY; bitDepth = bst.bitDepth; flags = bst.flags; }