Java Code Examples for com.badlogic.gdx.graphics.Pixmap

The following examples show how to use com.badlogic.gdx.graphics.Pixmap. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
public synchronized static SmartTexture createSolid( int color ) {
	final String key = "1x1:" + color;
	
	if (all.containsKey( key )) {
		
		return all.get( key );
		
	} else {
		
		Pixmap pixmap =new Pixmap( 1, 1, Pixmap.Format.RGBA8888 );
		// In the rest of the code ARGB is used
		pixmap.setColor( (color << 8) | (color >>> 24) );
		pixmap.fill();
		
		SmartTexture tx = new SmartTexture( pixmap );
		all.put( key, tx );
		
		return tx;
	}
}
 
Example 2
Source Project: Mundus   Source File: ToolHandlePicker.java    License: Apache License 2.0 6 votes vote down vote up
public ToolHandle pick(ToolHandle[] handles, EditorScene scene, int screenX, int screenY) {
    begin(scene.viewport);
    renderPickableScene(handles, scene.sceneGraph.batch, scene.cam);
    end();
    Pixmap pm = getFrameBufferPixmap(scene.viewport);

    int x = screenX - scene.viewport.getScreenX();
    int y = screenY - (Gdx.graphics.getHeight() - (scene.viewport.getScreenY() + scene.viewport.getScreenHeight()));

    int id = PickerColorEncoder.decode(pm.getPixel(x, y));
    Log.trace("ToolHandlePicker", "Picking handle with id {}", id);
    for (ToolHandle handle : handles) {
        if (handle.getId() == id) {
            return handle;
        }
    }

    return null;
}
 
Example 3
Source Project: Bomberman_libGdx   Source File: MapLoader.java    License: MIT License 6 votes vote down vote up
public MapLoader(World b2dWorld, com.artemis.World world, int level) {
    this.b2dWorld = b2dWorld;
    this.world = world;
    this.level = level;
    assetManager = GameManager.getInstance().getAssetManager();

    pixmap = assetManager.get("maps/level_" + level + ".png", Pixmap.class);
    switch (level) {
        case 5:
            tileTextureAtlas = assetManager.get("maps/area_3_tiles.pack", TextureAtlas.class);
            break;
        case 4:
        case 3:
            tileTextureAtlas = assetManager.get("maps/area_2_tiles.pack", TextureAtlas.class);
            break;
        case 2:
        case 1:
        default:
            tileTextureAtlas = assetManager.get("maps/area_1_tiles.pack", TextureAtlas.class);
            break;
    }

    mapWidth = pixmap.getWidth();
    mapHeight = pixmap.getHeight();
}
 
Example 4
Source Project: talos   Source File: NoiseImage.java    License: Apache License 2.0 6 votes vote down vote up
/**
 * @deprecated
 *
 * WARNING THIS IS FOR TESTING PURPOSES ONLY,
 * DO NOT USE AS THIS HAS HORRIBLE PERFORMANCE
 *
 * @param batch
 * @param parentAlpha
 */
public void drawPixmap(Batch batch, float parentAlpha) {
    SimplexNoise simplexNoise = new SimplexNoise();
    pixmap.setColor(0, 0, 0, 1f);
    pixmap.fill();
    for(int x = 0; x < 165; x++) {
        for(int y = 0; y < 100; y++) {
            float v = simplexNoise.query(x/165f, y/100f, frequency) *0.5f + 0.5f;
            pixmap.setColor(v, v, v, 1f);
            pixmap.drawPixel(x, y);
        }
    }

    Texture texture = new Texture(pixmap, Pixmap.Format.RGB888, false);
    batch.draw(texture, getX(), getY());
}
 
Example 5
Source Project: gdx-gltf   Source File: FacedMultiCubemapData.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public void consumeCubemapData () {
	for(int level = 0 ; level<levels ; level++){
		for (int i = 0; i < 6; i++) {
			int index = level * 6 + i;
			if (data[index].getType() == TextureData.TextureDataType.Custom) {
				data[index].consumeCustomData(GL20.GL_TEXTURE_CUBE_MAP_POSITIVE_X + i);
			} else {
				Pixmap pixmap = data[index].consumePixmap();
				boolean disposePixmap = data[index].disposePixmap();
				if (data[index].getFormat() != pixmap.getFormat()) {
					Pixmap tmp = new Pixmap(pixmap.getWidth(), pixmap.getHeight(), data[index].getFormat());
					tmp.setBlending(Blending.None);
					tmp.drawPixmap(pixmap, 0, 0, 0, 0, pixmap.getWidth(), pixmap.getHeight());
					if (data[index].disposePixmap()) pixmap.dispose();
					pixmap = tmp;
					disposePixmap = true;
				}
				Gdx.gl.glPixelStorei(GL20.GL_UNPACK_ALIGNMENT, 1);
				Gdx.gl.glTexImage2D(GL20.GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, level, pixmap.getGLInternalFormat(), pixmap.getWidth(),
					pixmap.getHeight(), 0, pixmap.getGLFormat(), pixmap.getGLType(), pixmap.getPixels());
				if (disposePixmap) pixmap.dispose();
			}
		}
	}
}
 
Example 6
Source Project: gdx-gltf   Source File: SeparatedDataFileResolver.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public Pixmap load(GLTFImage glImage) {
	if(glImage.uri == null){
		throw new GLTFIllegalException("GLTF image URI cannot be null");
	}else if(glImage.uri.startsWith("data:")){
		// data:application/octet-stream;base64,
		String [] headerBody = glImage.uri.split(",", 2);
		String header = headerBody[0];
		System.out.println(header);
		String body = headerBody[1];
		byte [] data = Base64Coder.decode(body);
		return PixmapBinaryLoaderHack.load(data, 0, data.length);
	}else{
		return new Pixmap(path.child(glImage.uri));
	}
}
 
Example 7
Source Project: riiablo   Source File: PL2.java    License: Apache License 2.0 6 votes vote down vote up
public Texture render() {
  Pixmap pl2Pixmap = new Pixmap(Palette.COLORS, size, Pixmap.Format.RGBA8888);
  ByteBuffer buffer = pl2Pixmap.getPixels();
  for (int i = 0, j = 0; i < size; i++) {
    //buffer.put(colormaps[i]);
    for (int k = 0; k < Palette.COLORS; k++, j += 4) {
      buffer.put(j, colormaps[i][k]);
    }
  }

  buffer.rewind();
  Texture texture = new Texture(pl2Pixmap);
  //texture.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
  texture.setWrap(Texture.TextureWrap.ClampToEdge, Texture.TextureWrap.ClampToEdge);
  pl2Pixmap.dispose();
  return texture;
}
 
Example 8
Source Project: seventh   Source File: TextureUtil.java    License: GNU General Public License v2.0 6 votes vote down vote up
/**
 * Splits the image 
 * @param image
 * @param width
 * @param height
 * @param row
 * @param col
 * @return
 */
public static Pixmap[] splitPixmap(Pixmap image, int width, int height, int row, int col) {                
    int total = col * row; // total returned images
    int frame = 0; // frame counter

    int w = width / col;
    int h = height / row;

    Pixmap[] images = new Pixmap[total];

    for (int j = 0; j < row; j++) {
        for (int i = 0; i < col; i++) {                
            Pixmap region = new Pixmap(w, h, image.getFormat());
            region.drawPixmap(image, 0, 0, i * w, j * h, w, h);
            
            images[frame++] = region;
        }
    }

    return images;
}
 
Example 9
Source Project: riiablo   Source File: DC6.java    License: Apache License 2.0 6 votes vote down vote up
@Override
public void loadDirection(int d, boolean combineFrames) {
  if (textures == null) textures = new Texture[header.directions][];
  else if (textures[d] != null) return;
  preloadDirection(d, combineFrames);

  Pixmap[] pixmaps = this.pixmaps[d];
  textures[d] = new Texture[pixmaps.length];
  for (int p = 0; p < pixmaps.length; p++) {
    Pixmap pixmap = pixmaps[p];
    Texture texture = new Texture(new PixmapTextureData(pixmap, null, false, false, false));
    //texture.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
    texture.setWrap(Texture.TextureWrap.ClampToEdge, Texture.TextureWrap.ClampToEdge);
    textures[d][p] = texture;
  }

  regions[d] = new TextureRegion[pixmaps.length];
  for (int p = 0; p < pixmaps.length; p++) {
    regions[d][p] = new TextureRegion(textures[d][p]);
  }
}
 
Example 10
Source Project: beatoraja   Source File: BGImageProcessor.java    License: GNU General Public License v3.0 6 votes vote down vote up
public BGImageProcessor(int size, int maxgen) {
	bgacache = new Texture[size];
	bgacacheid = new int[size];
	cache = new PixmapResourcePool(maxgen) {

		protected Pixmap convert(Pixmap pixmap) {
			int bgasize = Math.max(pixmap.getHeight(), pixmap.getWidth());
			if ( bgasize <=256 ){
				final int fixx = (256 - pixmap.getWidth()) / 2;
				Pixmap fixpixmap = new Pixmap(256, 256, pixmap.getFormat());
				fixpixmap.drawPixmap(pixmap, 0, 0, pixmap.getWidth(), pixmap.getHeight(),
						fixx, 0, pixmap.getWidth(), pixmap.getHeight());
				pixmap.dispose();
				return fixpixmap;
			}
			return pixmap;
		}
	};
}
 
Example 11
Source Project: libgdx-snippets   Source File: PixmapTransform.java    License: MIT License 6 votes vote down vote up
public static int getPixelMirrored(Pixmap pixmap, int x, int y, Mirror mirror) {
	int widthMinusOne = pixmap.getWidth() - 1;
	int heightMinusOne = pixmap.getHeight() - 1;

	int px = x, py = y;

	if (mirror == Mirror.X || mirror == Mirror.XY) {
		px = widthMinusOne - x;
	}

	if (mirror == Mirror.Y || mirror == Mirror.XY) {
		py = heightMinusOne - y;
	}

	return pixmap.getPixel(px, py);
}
 
Example 12
Source Project: riiablo   Source File: Cursor.java    License: Apache License 2.0 6 votes vote down vote up
public void setCursor(DC dc, Index colormap, int id) {
  if (cursor == null) {
    Pixmap pixmap = new Pixmap(1, 1, Pixmap.Format.RGBA8888);
    cursor = Gdx.graphics.newCursor(pixmap, 0, 0);
    Gdx.graphics.setCursor(cursor);
  }

  this.dc = dc;
  if (colormap != null) {
    transform = colormap;
    transformColor = id;
  } else {
    transform = null;
    transformColor = 0;
  }
}
 
Example 13
Source Project: gdx-proto   Source File: Crosshair.java    License: Apache License 2.0 5 votes vote down vote up
public static Sprite create() {
	int w = View.width() / 100;
	int h = w;
	Pixmap pix = new Pixmap(w, h, Pixmap.Format.RGBA8888);
	pix.setColor(1f, 1f, 1f, 0.8f);
	pix.drawLine(w/2, 0, w/2, h);
	pix.drawLine(0, h/2, w, h/2);
	pix.setColor(0f, 0f, 0f, 0f);
	pix.drawPixel(w/2, h/2);
	Texture tex = new Texture(pix);
	Sprite sprite = new Sprite(tex);
	return sprite;
	// TODO we don't dispose anything, this is just a temporary crosshair
}
 
Example 14
Source Project: gdx-vfx   Source File: MotionBlurEffect.java    License: Apache License 2.0 5 votes vote down vote up
public MotionBlurEffect(Pixmap.Format pixelFormat, MixEffect.Method mixMethod, float blurFactor) {
	mixFilter = register(new MixEffect(mixMethod));
	mixFilter.setMixFactor(blurFactor);

	copyFilter = register(new CopyEffect());

	localBuffer = new VfxFrameBufferQueue(pixelFormat,
			// On WebGL (GWT) we cannot render from/into the same texture simultaneously.
			// Will use ping-pong approach to avoid "writing into itself".
			Gdx.app.getType() == Application.ApplicationType.WebGL ? 2 : 1
	);
}
 
Example 15
Source Project: Cubes   Source File: AOTextureGenerator.java    License: MIT License 5 votes vote down vote up
private static void gaussianPixmap(Pixmap in, double[][] doubleOut) {
  double[][] doubleIn = new double[in.getWidth()][in.getHeight()];

  pixmapToDouble(in, doubleIn);

  for (int i = 0; i < doubleOut.length; i++) {
    for (int j = 0; j < doubleOut[i].length; j++) {
      doubleOut[i][j] = 0;
    }
  }

  Pixmap out = gaussianLocal.get();

  int offsetX = (in.getWidth() - out.getWidth()) / 2;
  int offsetY = (in.getHeight() - out.getHeight()) / 2;

  for (int x = 0; x < out.getWidth(); x++) {
    for (int y = 0; y < out.getHeight(); y++) {
      double d = 0;

      for (int ox = -gaussianRadius; ox <= gaussianRadius; ox++) {
        for (int oy = -gaussianRadius; oy <= gaussianRadius; oy++) {
          d += doubleIn[x + ox + offsetX][y + oy + offsetY] * gwm[ox + gaussianRadius][oy + gaussianRadius];
        }
      }

      doubleOut[x][y] = d;
    }
  }
}
 
Example 16
Source Project: gdx-vfx   Source File: VfxRenderContext.java    License: Apache License 2.0 5 votes vote down vote up
public VfxRenderContext(Pixmap.Format pixelFormat, int bufferWidth, int bufferHeight) {
    this.bufferPool = new VfxFrameBufferPool(pixelFormat, bufferWidth, bufferHeight, 8);
    this.bufferRenderer = new VfxFrameBufferRenderer();
    this.pixelFormat = pixelFormat;
    this.bufferWidth = bufferWidth;
    this.bufferHeight = bufferHeight;
}
 
Example 17
Source Project: gdx-texture-packer-gui   Source File: JpegFileTypeModel.java    License: Apache License 2.0 5 votes vote down vote up
public void setEncoding(Pixmap.Format encoding) {
    if (this.encoding == encoding) return;

    this.encoding = encoding;

    if (eventDispatcher != null) {
        eventDispatcher.postEvent(new FileTypePropertyChangedEvent(this, FileTypePropertyChangedEvent.Property.JPEG_ENCODING));
    }
}
 
Example 18
Source Project: gdx-gltf   Source File: GLTFDemo.java    License: Apache License 2.0 5 votes vote down vote up
protected void setImage(ModelEntry entry) {
	if(entry.screenshot != null){
		if(entry.url != null){
			HttpRequest httpRequest = new HttpRequest(HttpMethods.GET);
			httpRequest.setUrl(entry.url + entry.screenshot);

			Gdx.net.sendHttpRequest(httpRequest, new SafeHttpResponseListener(){
				@Override
				protected void handleData(byte[] bytes) {
					Pixmap pixmap = PixmapBinaryLoaderHack.load(bytes, 0, bytes.length);
					ui.setImage(new Texture(pixmap));
					pixmap.dispose();
				}
				@Override
				protected void handleError(Throwable t) {
					Gdx.app.error(TAG, "request error", t);
				}
				@Override
				protected void handleEnd() {
				}
			});
		}else{
			FileHandle file = rootFolder.child(entry.name).child(entry.screenshot);
			if(file.exists()){
				ui.setImage(new Texture(file));
			}else{
				Gdx.app.error("DEMO UI", "file not found " + file.path());
			}
		}
	}
}
 
Example 19
Source Project: gdx-gltf   Source File: FacedMultiCubemapData.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Construct Cubemap data for MipMap cubemap.
 * @param files texture files in following order : 
 * level 0 (positive X, negative X, positive Y, negative Y, positive Z, negative Z)
 * level 1 (positive X, negative X, positive Y, negative Y, positive Z, negative Z)
 * and so on. Where level 0 is the biggest texture. Expected levels x 6 files.
 * @param levels mipmap levels
 */
public FacedMultiCubemapData(FileHandle[] files, int levels)
{
	this.levels = levels;
	data = new TextureData[6 * levels];
	for(int level = 0 ; level<levels ; level++){
		for(int face = 0 ; face < 6 ; face++){
			int index = level*6+face;
			FileHandle file = files[index];
			data[index] = new PixmapTextureData(new Pixmap(file), null, false, true);
		}
	}
}
 
Example 20
Source Project: gdx-gltf   Source File: IBLBuilder.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Creates an radiance map, to be used with {@link net.mgsx.gltf.scene3d.attributes.PBRCubemapAttribute#SpecularEnv}
 * generated cubemap contains mipmaps in order to perform roughness in PBR shading
 * @param levels mipMapLevels how many mipmaps level, eg. 10 levels produce a 1024x1024 cubemap with mipmaps.
 * @return generated cubemap, caller is responsible to dispose it when no longer used.
 */
public Cubemap buildRadianceMap(final int mipMapLevels){
	Pixmap[] maps = new Pixmap[mipMapLevels * 6];
	int index = 0;
	for(int level=0 ; level<mipMapLevels ; level++){
		int size = 1 << (mipMapLevels - level - 1);
		FrameBuffer fbo = new FrameBuffer(Format.RGBA8888, size, size, false);
		fbo.begin();
		for(int s=0 ; s<6 ; s++){
			Gdx.gl.glClearColor(0, 0, 0, 0);
			Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
			
			CubemapSide side = CubemapSide.values()[s];
			
			float blur = (float)level / (float)mipMapLevels;
			
			renderGradient(side, blur);
			renderLights(side, false);
			
			maps[index] = ScreenUtils.getFrameBufferPixmap(0, 0, size, size);
			index++;
		}
		fbo.end();
		fbo.dispose();
	}
	FacedMultiCubemapData data = new FacedMultiCubemapData(maps, mipMapLevels);
	Cubemap map = new Cubemap(data);
	map.setFilter(TextureFilter.MipMap, TextureFilter.Linear);
	return map;
}
 
Example 21
Source Project: gdx-gltf   Source File: PixmapBinaryLoaderHack.java    License: Apache License 2.0 5 votes vote down vote up
public static Pixmap load(byte [] encodedData, int offset, int len){
	if(Gdx.app.getType() == ApplicationType.WebGL){
		throw new GdxRuntimeException("load pixmap from bytes not supported for WebGL");
	}else{
		// call new Pixmap(encodedData, offset, len); via reflection to
		// avoid compilation error with GWT.
		try {
			return (Pixmap)ClassReflection.getConstructor(Pixmap.class, byte[].class, int.class, int.class).newInstance(encodedData, offset, len);
		} catch (ReflectionException e) {
			throw new GdxRuntimeException(e);
		}
	}
}
 
Example 22
Source Project: gdx-gltf   Source File: ImageResolver.java    License: Apache License 2.0 5 votes vote down vote up
public void load(Array<GLTFImage> glImages) {
	if(glImages != null){
		for(int i=0 ; i<glImages.size ; i++){
			GLTFImage glImage = glImages.get(i);
			Pixmap pixmap = dataFileResolver.load(glImage);
			pixmaps.add(pixmap);
		}
	}
}
 
Example 23
Source Project: gdx-gltf   Source File: ImageResolver.java    License: Apache License 2.0 5 votes vote down vote up
@Override
public void dispose() {
	for(Pixmap pixmap : pixmaps){
		pixmap.dispose();
	}
	pixmaps.clear();
}
 
Example 24
Source Project: riiablo   Source File: Textures.java    License: Apache License 2.0 5 votes vote down vote up
public Texture createTexture(Color color) {
  Pixmap pixmap = new Pixmap(1, 1, Pixmap.Format.RGBA8888);
  pixmap.setColor(color);
  pixmap.fill();
  Texture texture = new Texture(pixmap);
  pixmap.dispose();
  return texture;
}
 
Example 25
Source Project: Entitas-Java   Source File: RenderTransition.java    License: MIT License 5 votes vote down vote up
@Override
public void loadResources() {
    int w = Gdx.graphics.getWidth();
    int h = Gdx.graphics.getHeight();
    nextFbo = new FrameBuffer(Pixmap.Format.RGBA8888, w, h, true);
    currFbo = new FrameBuffer(Pixmap.Format.RGBA8888, w, h, true);
}
 
Example 26
public Halo() {
	super();
	
	if (!TextureCache.contains( CACHE_KEY )) {
		Pixmap pixmap = new Pixmap(RADIUS * 2, RADIUS * 2, Pixmap.Format.RGBA8888);
		pixmap.setColor( 0xFFFFFF0A );
		for (int i = 0; i < 50; i++) {
			pixmap.fillCircle(RADIUS, RADIUS, (int)(RADIUS * (i+1)/50f));
		}
		TextureCache.add( CACHE_KEY, new SmartTexture( pixmap ) );
	}
	
	texture( CACHE_KEY );
}
 
Example 27
Source Project: Cubes   Source File: Screenshot.java    License: MIT License 5 votes vote down vote up
@Override
public void frameEnd() {
  if (!state.compareAndSet(1,  2)) return;

  Pixmap pixmap = ScreenUtils.getFrameBufferPixmap(0, 0, screenshotWidth, screenshotHeight);
  frameBuffer.end();

  Adapter.getInterface().resize(oldWidth, oldHeight);

  writeScreenshot(pixmap);
}
 
Example 28
Source Project: Norii   Source File: GifDecoder.java    License: Apache License 2.0 5 votes vote down vote up
DixieMap(final int[] data, final int w, final int h, final Pixmap.Format f) {
	super(w, h, f);

	int x, y;

	for (y = 0; y < h; y++) {
		for (x = 0; x < w; x++) {
			final int pxl_ARGB8888 = data[x + y * w];
			final int pxl_RGBA8888 = ((pxl_ARGB8888 >> 24) & 0x000000ff) | ((pxl_ARGB8888 << 8) & 0xffffff00);
			// convert ARGB8888 > RGBA8888
			drawPixel(x, y, pxl_RGBA8888);
		}
	}
}
 
Example 29
Source Project: gdx-fireapp   Source File: ImageHelper.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Creates texture region from byte[].
 * <p>
 * GWT platform requires additional step (as far as i know) to deal with Pixmap. It is need to load Image element
 * and wait until it is loaded.
 *
 * @param bytes    Image byte[] representation, not null
 * @param consumer Consumer where you should deal with region, not null
 */
public static void createTextureFromBytes(byte[] bytes, final Consumer<TextureRegion> consumer) {
    String base64 = "data:image/png;base64," + new String(Base64Coder.encode(bytes));
    final Image image = new Image();
    image.setVisible(false);
    image.addLoadHandler(new LoadHandler() {
        @Override
        public void onLoad(LoadEvent event) {
            ImageElement imageElement = image.getElement().cast();
            Pixmap pixmap = new Pixmap(imageElement);
            GdxFIRLogger.log("Image loaded");
            final int orgWidth = pixmap.getWidth();
            final int orgHeight = pixmap.getHeight();
            int width = MathUtils.nextPowerOfTwo(orgWidth);
            int height = MathUtils.nextPowerOfTwo(orgHeight);
            final Pixmap potPixmap = new Pixmap(width, height, pixmap.getFormat());
            potPixmap.drawPixmap(pixmap, 0, 0, 0, 0, pixmap.getWidth(), pixmap.getHeight());
            pixmap.dispose();
            TextureRegion region = new TextureRegion(new Texture(potPixmap), 0, 0, orgWidth, orgHeight);
            potPixmap.dispose();
            RootPanel.get().remove(image);
            consumer.accept(region);
        }
    });
    image.setUrl(base64);
    RootPanel.get().add(image);
}
 
Example 30
Source Project: gdx-fireapp   Source File: ImageHelper.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Transforms byte[] to Texture Region.
 * <p>
 * If you are going to call this method inside firebase callback remember to wrap it<p>
 * into {@code Gdx.app.postRunnable(Runnable)}.
 * The texture will be changed so that it has sides with length of power of 2.
 *
 * @param bytes Byte array with image description
 * @return Texture region representation of given byte array
 */
public TextureRegion createTextureFromBytes(byte[] bytes) {
    Pixmap pixmap = new Pixmap(bytes, 0, bytes.length);
    final int orgWidth = pixmap.getWidth();
    final int orgHeight = pixmap.getHeight();
    int width = MathUtils.nextPowerOfTwo(orgWidth);
    int height = MathUtils.nextPowerOfTwo(orgHeight);
    final Pixmap potPixmap = new Pixmap(width, height, pixmap.getFormat());
    potPixmap.drawPixmap(pixmap, 0, 0, 0, 0, pixmap.getWidth(), pixmap.getHeight());
    pixmap.dispose();
    TextureRegion region = new TextureRegion(new Texture(potPixmap), 0, 0, orgWidth, orgHeight);
    potPixmap.dispose();
    return region;
}