code: public void setBuffer(final int width, final int height, final int format, final int type, final Buffer pixels)
      {
          NativeBitmapImage.updateFromBuffer(getNative(), 0, 0, width, height, format, type, pixels);
      }
docs: Copy a new texture from a {@link Buffer} to the GPU texture. This one is also safe even
  in a non-GL thread. An updateGPU request on a non-GL thread will
  be forwarded to the GL thread and be executed before main rendering happens.
  
  Creating a new {@link GVRImage} is pretty cheap, but it's still not a
  totally trivial operation: it does involve some memory management and
  some GL hardware handshaking. Reusing the texture reduces this overhead
  (primarily by delaying garbage collection). Do be aware that updating a
  texture will affect any and all {@linkplain GVRMaterial materials}
  (and/or post effects that use the texture!
  
  @param width
  Texture width, in texels
  @param height
  Texture height, in texels
  @param format
  Texture format
  @param type
  Texture type
  @param pixels
  A NIO Buffer with the texture