Uso seguro de glMapBufferRange () no Android / Java

Eu tenho código de trabalho usandoglMapBufferRange() do OpenGL-ES 3.0 no Android, com a seguinte aparência:

  glBindBuffer(GL_ARRAY_BUFFER, myVertexBufferName);
  glBufferData(GL_ARRAY_BUFFER, myVertexBufferSize, null, GL_STATIC_DRAW);
  ByteBuffer mappedBuffer = (ByteBuffer)glMapBufferRange(
    GL_ARRAY_BUFFER,
    0, myVertexBufferSize,
    GL_MAP_WRITE_BIT | GL_MAP_INVALIDATE_BUFFER_BIT);

  // [fill buffer...]

  glUnmapBuffer(GL_ARRAY_BUFFER);

Minha pergunta é sobre como diminuir o resultado deglMapBufferRange() paraByteBuffer na terceira linha.glMapBufferRange() édeclarou retornar umBuffer:

public static Buffer glMapBufferRange (int target, int offset, int length, int access)

Na minha plataforma de teste, a função retorna uma subclasse deByteBuffer portanto, o elenco funciona, mas fazer essa suposição para todas as plataformas ou versões do Android com suporte ao OpenGL-ES 3+ não parece muito seguro. Embora pareça razoável, não encontrei nenhuma documentação que a garanta e, se garantida, parece que a função deve ser declarada como retornandoByteBuffer.

Qual é a maneira correta (de preferência suportada pela documentação) de usar oBuffer retornado porglMapBufferRange()?

questionAnswers(1)

yourAnswerToTheQuestion