docs: public Texture createTexture (Texture.Config config) {
      if (!isLoaded()) throw new IllegalStateException(
        "Cannot create texture from unready image: " + this);
  
      int texWidth = config.toTexWidth(pixelWidth());
      int texHeight = config.toTexHeight(pixelHeight());
      if (texWidth <= 0 || texHeight <= 0) throw new IllegalArgumentException(
        "Invalid texture size: " + texWidth + "x" + texHeight + " from: " + this);
  
      Texture tex = new Texture(gfx, gfx.createTexture(config), config, texWidth, texHeight,
                                scale(), width(), height());
      tex.update(this); // this will handle non-POT source image conversion
      return tex;
    }