Безопасное использование glMapBufferRange () на Android / Java

У меня есть рабочий код с помощьюglMapBufferRange() из OpenGL-ES 3.0 на Android, который выглядит следующим образом:

  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);

Мой вопрос о том,glMapBufferRange() вByteBuffer на третьей строке.glMapBufferRange() являетсяобъявил о возвращенииBuffer:

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

На моей тестовой платформе функция возвращает подклассByteBuffer так что актеры работают, но сделать это предположение для всех платформ или версий Android, поддерживающих OpenGL-ES 3+, не кажется очень безопасным. Хотя это кажется разумным, я не нашел никакой документации, которая бы гарантировала это, и если бы это было гарантировано, похоже, что функция должна быть объявлена ​​как возвращающаяByteBuffer.

Как правильно (желательно подтверждается документацией) использоватьBuffer вернулсяglMapBufferRange()?

Ответы на вопрос(1)

Ваш ответ на вопрос