code: public void setBitmap(Bitmap bmap)
      {
          Bitmap.Config config = bmap.getConfig();
  
          //if a bitmap of format other than supported format is found,
          //try to create a new bitmap from it of config ARGB_8888.
          if (!supportedConfigs.contains(config))
              bmap = getBitmapSupported(bmap);
  
          NativeBitmapImage.updateFromBitmap(getNative(), bmap, bmap.hasAlpha(), bmap.getConfig().name());
      }
docs: Copy a new {@link Bitmap} 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 bmap  An Android Bitmap.
  
  @since 1.6.3