code: public Texture createTexture (float width, float height, Texture.Config config) {
      int texWidth = config.toTexWidth(scale.scaledCeil(width));
      int texHeight = config.toTexHeight(scale.scaledCeil(height));
      if (texWidth <= 0 || texHeight <= 0) throw new IllegalArgumentException(
        "Invalid texture size: " + texWidth + "x" + texHeight);
  
      int id = createTexture(config);
      gl.glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, texWidth, texHeight,
                      0, GL_RGBA, GL_UNSIGNED_BYTE, null);
      return new Texture(this, id, config, texWidth, texHeight, scale, width, height);
    }
docs: Creates an empty texture into which one can render. The supplied width and height are in
  display units and will be converted to pixels based on the current scale factor.