code: static Context setup(GVRContext gvrContext, ImageSizePolicy sizePolicy) {
          Context androidContext = gvrContext.getContext();
          Memory.setup(androidContext);
  
          if (sizePolicy == null) {
              sizePolicy = new DefaultImageSizePolicy();
          }
  
          Context applicationContext = androidContext.getApplicationContext();
          // Should only be null in a unit test
          applicationContext = applicationContext == null ? androidContext
                  : applicationContext;
  
          getScreenSize(applicationContext);
  
          int heapSize = Memory.getMemoryClass();
          maxImageSize = (int) (heapSize * sizePolicy.getMaximumImageFactor());
          Log.d(TAG, "Set maxImageSize == %, d", maxImageSize);
  
          gvrContext.runOnGlThread(new Runnable() {
  
              @Override
              public void run() {
                  onGlInitialization();
              }
          });
  
          return applicationContext;
      }
docs: Either {@link #setup(Context)} or
  {@link #setup(Context, ImageSizePolicy)} <em>should</em> be called before
  first use; the default settings are very conservative, and will usually
  give much smaller textures than necessary.