private StandardGlyphVector(GlyphVector gv,FontRenderContext frc){
  this.font=gv.getFont();
  this.frc=frc;
  initFontData();
  int nGlyphs=gv.getNumGlyphs();
  this.userGlyphs=gv.getGlyphCodes(0,nGlyphs,null);
  if (gv instanceof StandardGlyphVector) {
    this.glyphs=userGlyphs;
  }
 else {
    this.glyphs=getValidatedGlyphs(this.userGlyphs);
  }
  this.flags=gv.getLayoutFlags() & FLAG_MASK;
  if ((flags & FLAG_HAS_POSITION_ADJUSTMENTS) != 0) {
    this.positions=gv.getGlyphPositions(0,nGlyphs + 1,null);
  }
  if ((flags & FLAG_COMPLEX_GLYPHS) != 0) {
    this.charIndices=gv.getGlyphCharIndices(0,nGlyphs,null);
  }
  if ((flags & FLAG_HAS_TRANSFORMS) != 0) {
    AffineTransform[] txs=new AffineTransform[nGlyphs];
    for (int i=0; i < nGlyphs; ++i) {
      txs[i]=gv.getGlyphTransform(i);
    }
    setGlyphTransforms(txs);
  }
}

private StandardGlyphVector ( GlyphVector gv , FontRenderContext frc ) { this . font = gv . getFont ( ) ; this . frc = frc ; initFontData ( ) ; int nGlyphs = gv . getNumGlyphs ( ) ; this . userGlyphs = gv . getGlyphCodes ( 0 , nGlyphs , null ) ; if ( gv instanceof StandardGlyphVector ) { this . glyphs = userGlyphs ; } else { this . glyphs = getValidatedGlyphs ( this . userGlyphs ) ; } this . flags = gv . getLayoutFlags ( ) & FLAG_MASK ; if ( ( flags & FLAG_HAS_POSITION_ADJUSTMENTS ) != 0 ) { this . positions = gv . getGlyphPositions ( 0 , nGlyphs + 1 , null ) ; } if ( ( flags & FLAG_COMPLEX_GLYPHS ) != 0 ) { this . charIndices = gv . getGlyphCharIndices ( 0 , nGlyphs , null ) ; } if ( ( flags & FLAG_HAS_TRANSFORMS ) != 0 ) { AffineTransform [ ] txs = new AffineTransform [ nGlyphs ] ; for ( int i = 0 ; i < nGlyphs ; ++ i ) { txs [ i ] = gv . getGlyphTransform ( i ) ; } setGlyphTransforms ( txs ) ; } }
utility used by getstandardgv . constructs a standardglyphvector from a generic glyph vector . do not call this from new contexts without considering the comment about " userglyphs " .
