code: public ByteBuffer getData() {
          return JNI.wrap(WaylandServerCore.INSTANCE()
                                           .wl_shm_buffer_get_data(this.pointer),
                          getHeight() * getStride());
      }
docs: /** Get a pointer to the memory for the SHM buffer
  <p/>
  Returns a pointer which can be used to read the data contained in
  the given SHM buffer.
  <p
  As this buffer is memory-mapped, reading it from may generate
  SIGBUS signals. This can happen if the client claims that the
  buffer is larger than it is or if something truncates the
  underlying file. To prevent this signal from causing the compositor
  to crash you should call wl_shm_buffer_begin_access and
  wl_shm_buffer_end_access around code that reads from the memory.
  
  @return a direct ByteBuffer.