public Buffer read(VertexInfo vertexInfo,int address,int firstVertex,int numberOfVertex,boolean canAllNativeVertexInfo){
  videoEngine=VideoEngine.getInstance();
  this.vertexInfo=vertexInfo;
  this.canAllNativeVertexInfo=canAllNativeVertexInfo;
  update();
  if (isAllNative()) {
    if (log.isDebugEnabled()) {
      log.debug(String.format("Not reading Vertex, all native at 0x%08X",address));
    }
    return null;
  }
  if (log.isDebugEnabled()) {
    log.debug(String.format("Reading %d Vertex at 0x%08X",numberOfVertex,address + firstVertex * vertexInfo.vertexSize));
    if (!textureNative) {
      log.debug("Texture non-native " + vertexInfo.toString());
    }
    if (!colorNative) {
      log.debug("Color non-native " + vertexInfo.toString());
    }
    if (!normalNative) {
      log.debug("Normal non-native " + vertexInfo.toString());
    }
    if (!positionNative) {
      log.debug("Position non-native " + vertexInfo.toString());
    }
  }
  setAddress(address + firstVertex * vertexInfo.vertexSize);
  createVertexDataBuffer(numberOfVertex);
  IVertexInfoReader weightReader=getWeightReader(weightNative);
  IVertexInfoReader textureReader=getTextureReader(textureNative);
  IVertexInfoReader colorReader=getColorReader(colorNative);
  IVertexInfoReader normalReader=getNormalReader(normalNative);
  IVertexInfoReader positionReader=getPositionReader(positionNative);
  IVertexInfoReader padReader=getPaddingReader(vertexInfo.alignmentSize);
  for (int i=0; i < numberOfVertex; i++) {
    weightReader.read();
    textureReader.read();
    colorReader.read();
    normalReader.read();
    positionReader.read();
    padReader.read();
  }
  return vertexDataBuffer.getBuffer();
}

public Buffer read ( VertexInfo vertexInfo , int address , int firstVertex , int numberOfVertex , boolean canAllNativeVertexInfo ) { videoEngine = VideoEngine . getInstance ( ) ; this . vertexInfo = vertexInfo ; this . canAllNativeVertexInfo = canAllNativeVertexInfo ; update ( ) ; if ( isAllNative ( ) ) { if ( log . isDebugEnabled ( ) ) { log . debug ( String . format ( "Not reading Vertex, all native at 0x%08X" , address ) ) ; } return null ; } if ( log . isDebugEnabled ( ) ) { log . debug ( String . format ( "Reading %d Vertex at 0x%08X" , numberOfVertex , address + firstVertex * vertexInfo . vertexSize ) ) ; if ( ! textureNative ) { log . debug ( "Texture non-native " + vertexInfo . toString ( ) ) ; } if ( ! colorNative ) { log . debug ( "Color non-native " + vertexInfo . toString ( ) ) ; } if ( ! normalNative ) { log . debug ( "Normal non-native " + vertexInfo . toString ( ) ) ; } if ( ! positionNative ) { log . debug ( "Position non-native " + vertexInfo . toString ( ) ) ; } } setAddress ( address + firstVertex * vertexInfo . vertexSize ) ; createVertexDataBuffer ( numberOfVertex ) ; IVertexInfoReader weightReader = getWeightReader ( weightNative ) ; IVertexInfoReader textureReader = getTextureReader ( textureNative ) ; IVertexInfoReader colorReader = getColorReader ( colorNative ) ; IVertexInfoReader normalReader = getNormalReader ( normalNative ) ; IVertexInfoReader positionReader = getPositionReader ( positionNative ) ; IVertexInfoReader padReader = getPaddingReader ( vertexInfo . alignmentSize ) ; for ( int i = 0 ; i < numberOfVertex ; i ++ ) { weightReader . read ( ) ; textureReader . read ( ) ; colorReader . read ( ) ; normalReader . read ( ) ; positionReader . read ( ) ; padReader . read ( ) ; } return vertexDataBuffer . getBuffer ( ) ; }
reads a sequence of vertexinfo structures .
