当前位置: 首页>>代码示例>>Java>>正文


Java FrameBuffer.dispose方法代码示例

本文整理汇总了Java中com.badlogic.gdx.graphics.glutils.FrameBuffer.dispose方法的典型用法代码示例。如果您正苦于以下问题:Java FrameBuffer.dispose方法的具体用法?Java FrameBuffer.dispose怎么用?Java FrameBuffer.dispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.badlogic.gdx.graphics.glutils.FrameBuffer的用法示例。


在下文中一共展示了FrameBuffer.dispose方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: resize

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
/** Resizes internal RavCamera for framebuffer use, call this in you ApplicationListener's resize.
 * 
 * @param width - new screen width
 * @param height - new screen height
 * @param resizeFramebuffers - whether all of the framebuffers should be recreated to match new screen size */
public void resize (int width, int height, boolean resizeFramebuffers) {
	// ?????
	if (resizeFramebuffers) {
		Keys<String> keys = frameBuffers.keys();
		while (keys.hasNext) {
			String key = keys.next();
			FrameBuffer fb = frameBuffers.get(key);
			int oldWidth = fb.getWidth();
			int oldHeight = fb.getHeight();
			Format format = fb.getColorBufferTexture().getTextureData().getFormat();
			fb.dispose();
			frameBuffers.put(key, null);
			float factorX = 1f * width / screenCamera.viewportWidth;
			float factorY = 1f * height / screenCamera.viewportHeight;
			createFB(key, format, (int)(factorX * oldWidth), (int)(factorY * oldHeight));
			// System.out.println("Recreated FB '" + key + "' from " +
			// oldWidth + "x" + oldHeight + " to " +
			// frameBuffers.get(key).getWidth() + "x" +
			// frameBuffers.get(key).getHeight());
		}
	}
	screenCamera = new OrthographicCamera(width, height);
	createScreenQuad();
}
 
开发者ID:Quexten,项目名称:RavTech,代码行数:30,代码来源:ShaderManager.java

示例2: dispose

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
@Override
public void dispose() {
    for (FrameBuffer buffer : abilityBuffers) {
        buffer.dispose();
    }
    healthBuffer.dispose();
    xpBuffer.dispose();
    resourceBuffer.dispose();
    shaderBatch.dispose();
    shader.dispose();
    for (Sprite s : abilityOverlaySprites)
        s.getTexture().dispose();
}
 
开发者ID:EtherWorks,项目名称:arcadelegends-gg,代码行数:14,代码来源:PlayerHelper.java

示例3: dispose

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
/** Dispose this ShaderManager with all shaders and framebuffers */
public void dispose () {
	for (ShaderProgram sp : shaders.values())
		sp.dispose();
	for (FrameBuffer fb : frameBuffers.values())
		fb.dispose();
	shaders.clear();
	frameBuffers.clear();
}
 
开发者ID:Quexten,项目名称:RavTech,代码行数:10,代码来源:ShaderManager.java

示例4: disposeFB

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
public void disposeFB (String fbIdn) {
	FrameBuffer fb = frameBuffers.get(fbIdn);
	if (fb != null) {
		fb.dispose();
		frameBuffers.remove(fbIdn);
	}
}
 
开发者ID:Quexten,项目名称:RavTech,代码行数:8,代码来源:ShaderManager.java

示例5: buildShadowMapData

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
/**
 * Builds the shadow map data; frame buffers, arrays, etc.
 */
private void buildShadowMapData() {
    if (shadowMapFb != null) {
        for (FrameBuffer fb : shadowMapFb)
            fb.dispose();
        shadowMapFb = null;
    }
    shadowMapCombined = null;

    // Shadow map frame buffer
    shadowMapFb = new FrameBuffer[GlobalConf.scene.SHADOW_MAPPING_N_SHADOWS];
    // Shadow map combined matrices
    shadowMapCombined = new Matrix4[GlobalConf.scene.SHADOW_MAPPING_N_SHADOWS];
    // Init
    for (int i = 0; i < GlobalConf.scene.SHADOW_MAPPING_N_SHADOWS; i++) {
        shadowMapFb[i] = new FrameBuffer(Format.RGBA8888, GlobalConf.scene.SHADOW_MAPPING_RESOLUTION, GlobalConf.scene.SHADOW_MAPPING_RESOLUTION, true);
        shadowMapCombined[i] = new Matrix4();
    }
    if (smTexMap == null)
        smTexMap = new HashMap<ModelBody, Texture>();
    smTexMap.clear();

    if (smCombinedMap == null)
        smCombinedMap = new HashMap<ModelBody, Matrix4>();
    smCombinedMap.clear();

    if (candidates == null)
        candidates = new Array<ModelBody>(GlobalConf.scene.SHADOW_MAPPING_N_SHADOWS);
    candidates.clear();
}
 
开发者ID:langurmonkey,项目名称:gaiasky,代码行数:33,代码来源:SceneGraphRenderer.java

示例6: clearFrameBufferMap

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
private void clearFrameBufferMap() {
    Set<Integer> keySet = fb3D.keySet();
    for (Integer key : keySet) {
        FrameBuffer fb = fb3D.get(key);
        fb.dispose();
    }
    fb3D.clear();
}
 
开发者ID:langurmonkey,项目名称:gaiasky,代码行数:9,代码来源:SGRStereoscopic.java

示例7: dispose

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
@Override
public void dispose() {
    Set<Integer> keySet = fbcm.keySet();
    for (Integer key : keySet) {
        FrameBuffer fb = fbcm.get(key);
        fb.dispose();
    }
}
 
开发者ID:langurmonkey,项目名称:gaiasky,代码行数:9,代码来源:SGRCubemap.java

示例8: clearFrameBufferMap

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
public void clearFrameBufferMap() {
    Set<String> keySet = fbmap.keySet();
    for (String key : keySet) {
        FrameBuffer fb = fbmap.get(key);
        fb.dispose();
    }
    fbmap.clear();
}
 
开发者ID:langurmonkey,项目名称:gaiasky,代码行数:9,代码来源:GaiaSky.java

示例9: takeScreenshot

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
public void takeScreenshot(String filename, int w) {

		int h = (int) (w * getSceneCamera().viewportHeight / getSceneCamera().viewportWidth);

		FrameBuffer fbo = new FrameBuffer(Format.RGB565, w, h, false);

		fbo.begin();
		Gdx.gl.glClearColor(0, 0, 0, 1);
		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
		draw();
		Pixmap pixmap = ScreenUtils.getFrameBufferPixmap(0, 0, w, h);
		fbo.end();

		// Flip the pixmap upside down
		ByteBuffer pixels = pixmap.getPixels();
		int numBytes = w * h * 4;
		byte[] lines = new byte[numBytes];
		int numBytesPerLine = w * 4;
		for (int i = 0; i < h; i++) {
			pixels.position((h - i - 1) * numBytesPerLine);
			pixels.get(lines, i * numBytesPerLine, numBytesPerLine);
		}
		pixels.clear();
		pixels.put(lines);

		PixmapIO.writePNG(EngineAssetManager.getInstance().getUserFile(filename), pixmap);

		fbo.dispose();
	}
 
开发者ID:bladecoder,项目名称:bladecoder-adventure-engine,代码行数:30,代码来源:World.java

示例10: createBgIcon

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
private TextureRegion createBgIcon(String atlas, String region) {
	TextureAtlas a = new TextureAtlas(
			Gdx.files.absolute(Ctx.project.getAssetPath() + Project.ATLASES_PATH + "/1/" + atlas + ".atlas"));
	AtlasRegion r = a.findRegion(region);

	if (r == null) {
		a.dispose();
		return null;
	}

	GLFrameBuffer.FrameBufferBuilder frameBufferBuilder = new GLFrameBuffer.FrameBufferBuilder(200,
			(int) (r.getRegionHeight() * 200f / r.getRegionWidth()));

	frameBufferBuilder.addColorTextureAttachment(GL30.GL_RGBA8, GL30.GL_RGBA, GL30.GL_UNSIGNED_BYTE);
	FrameBuffer fbo = frameBufferBuilder.build();

	SpriteBatch fboBatch = new SpriteBatch();
	fboBatch.setColor(Color.WHITE);
	OrthographicCamera camera = new OrthographicCamera();
	camera.setToOrtho(false, fbo.getWidth(), fbo.getHeight());
	fboBatch.setProjectionMatrix(camera.combined);

	Gdx.gl.glDisable(GL20.GL_SCISSOR_TEST);
	fbo.begin();
	fboBatch.begin();
	fboBatch.draw(r, 0, 0, fbo.getWidth(), fbo.getHeight());
	fboBatch.end();

	TextureRegion tex = ScreenUtils.getFrameBufferTexture(0, 0, fbo.getWidth(), fbo.getHeight());
	// tex.flip(false, true);

	fbo.end();
	Gdx.gl.glEnable(GL20.GL_SCISSOR_TEST);

	fbo.dispose();
	a.dispose();
	fboBatch.dispose();

	return tex;
}
 
开发者ID:bladecoder,项目名称:bladecoder-adventure-engine,代码行数:41,代码来源:SceneList.java

示例11: dispose

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
@Override
public void dispose() {
	for (FrameBuffer fb : frameBuffers.values())
		fb.dispose();
	frameBuffers.clear();
}
 
开发者ID:spookygames,项目名称:gdx-gfx,代码行数:7,代码来源:NamedBufferPool.java

示例12: generate

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
/**
 * Returns an UNMANAGED texture that of the supplied size that
 * contains a map of the supplied game map.
 * 
 * @param map
 * @param gameState
 * @param width
 * @param height
 * @return
 */
public static Texture generate(GameMap map, GameState gameState, int width, int height) {

	boolean isIsometric = map.isIsometric();
	GameMapRenderer renderer = isIsometric ? new IsometricMinimapRenderer(gameState, map) : new OrthogonalMinimapRenderer(gameState, map);
	
	FrameBuffer fb = new FrameBuffer(Format.RGB565, width, height, false);
	float cameraWidth = map.getWidth();
	float cameraHeight = map.getHeight();
	if (isIsometric) {
		cameraWidth = cameraHeight = (float)(Math.sqrt(cameraWidth*cameraWidth + cameraHeight*cameraHeight) * Math.sqrt(2));
		cameraHeight /= 2;
	}
	
	float cameraPositionX = cameraWidth / 2;
	float cameraPositionY = isIsometric ? 0 : cameraHeight / 2;
	
	int tileSizeX = (int) map.getTileSizeX();
	int tileSizeY = (int) map.getTileSizeY();
	if (cameraWidth * tileSizeX < width || cameraHeight * tileSizeY < height) {
		cameraWidth = (float) width / tileSizeX;
		cameraHeight = (float) height / tileSizeY;
	}
       OrthographicCamera camera = new OrthographicCamera(cameraWidth, cameraHeight);
       camera.position.x = cameraPositionX;
       camera.position.y = cameraPositionY;
       camera.update();
	
	fb.begin();
	Gdx.gl.glClearColor(0f, 0f, 0f, 1f);
	Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
	renderer.render(0, camera);
	byte[] bytes = ScreenUtils.getFrameBufferPixels(0, 0, width, height, true);
	fb.end();
	
	fb.dispose();
	renderer.dispose();
	
	Pixmap pixmap = new Pixmap(width, height, Format.RGBA8888);
	ByteBuffer pixels = pixmap.getPixels();
	pixels.clear();
	pixels.put(bytes);
	pixels.position(0);
	
	Texture returnValue = new Texture(pixmap);
	pixmap.dispose();
	return returnValue;
	
}
 
开发者ID:mganzarcik,项目名称:fabulae,代码行数:59,代码来源:MinimapGenerator.java

示例13: textureToPixmap

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
/**
 * Converts a texture to a pixmap by drawing it to a frame buffer and
 * getting the data
 * 
 * @param tex
 *            The texture to convert
 * @return The resulting pixmap
 */
public static Pixmap textureToPixmap(TextureRegion tex) {

    //width and height in pixels
    int width = tex.getRegionWidth();
    int height = tex.getRegionWidth();

    //Create a SpriteBatch to handle the drawing.
    SpriteBatch sb = new SpriteBatch();

    //Set the projection matrix for the SpriteBatch.
    Matrix4 projectionMatrix = new Matrix4();

    //because Pixmap has its origin on the topleft and everything else in LibGDX has the origin left bottom
    //we flip the projection matrix on y and move it -height. So it will end up side up in the .png
    projectionMatrix.setToOrtho2D(0, -height, width, height).scale(1, -1, 1);

    //Set the projection matrix on the SpriteBatch
    sb.setProjectionMatrix(projectionMatrix);

    //Create a frame buffer.
    FrameBuffer fb = new FrameBuffer(Pixmap.Format.RGBA8888, width, height, false);

    //Call begin(). So all next drawing will go to the new FrameBuffer.
    fb.begin();

    //Set up the SpriteBatch for drawing.
    sb.begin();

    //Draw all the tiles.
    sb.draw(tex, 0, 0, width, height);

    //End drawing on the SpriteBatch. This will flush() any sprites remaining to be drawn as well.
    sb.end();

    //Then retrieve the Pixmap from the buffer.
    Pixmap pm = ScreenUtils.getFrameBufferPixmap(0, 0, width, height);

    //Close the FrameBuffer. Rendering will resume to the normal buffer.
    fb.end();

    //Dispose of the resources.
    fb.dispose();
    sb.dispose();

    return pm;
}
 
开发者ID:langurmonkey,项目名称:gaiasky,代码行数:55,代码来源:GlobalResources.java

示例14: readCustom

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
private static boolean readCustom(String file, int size, int r, int g, int b)
    {

        assets.load(file, Model.class);
        assets.finishLoading();
        Model model = assets.get(file, Model.class);
        if (model == null) {
            LogHandler.log("Failed loading model.");
            return false;
        }

        ModelInstance instance = new ModelInstance(model);
        ModelBatch modelBatch = new ModelBatch();

        BoundingBox box = new BoundingBox();
        model.calculateBoundingBox(box);

        FrameBuffer fbo = new FrameBuffer(Pixmap.Format.RGBA8888, size, size, false);
        IntBuffer buffer = BufferUtils.newIntBuffer(size * size);
        OrthographicCamera camera = new OrthographicCamera(box.getDimensions().z, box.getDimensions().y);

        // Test screenshot
//        camera.direction.set(1,0,0);
//        camera.up.set(0,1,0);
//
//        float slice = box.getDimensions().x / (float)size;
//        camera.near = slice;
//        camera.far = 100f;
//
//        camera.position.set(box.getCenter());
//        camera.position.x = box.getMin().x - slice;
//
//        camera.update(true);
//
//        fbo.begin();
//        Gdx.graphics.getGL20().glColorMask(true, true, true, true);
//        Gdx.graphics.getGL20().glClearColor(0, 0, 0, 1);
//        Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);
//
//        Gdx.graphics.getGL20().glDisable(GL_DEPTH_TEST);
//        Gdx.graphics.getGL20().glDisable(GL_BLEND);
//
//        Gdx.graphics.getGL20().glDisable(GL_CULL_FACE);
//
//        modelBatch.begin(camera);
//        modelBatch.render(instance);
//        modelBatch.end();
//
//        buffer buffer = ScreenUtils.getFrameBufferbuffer(0, 0, fbo.getWidth(), fbo.getHeight());
//        bufferIO.writePNG(Gdx.files.external("TinyVoxel/test.png"), buffer);
//
//        fbo.end();

        voxels = new int[size][size][size];
        for (int x = 0; x < size; x++)
            for (int y = 0; y < size; y++)
                for (int z = 0; z < size; z++) {
                    voxels[x][y][z] = 0xff000000;
                }

        for (int z = 0; z < size; z++)
            readSliceX(buffer, fbo, modelBatch, instance, camera, box, z, size);

        camera = new OrthographicCamera(box.getDimensions().x, box.getDimensions().z);
        for (int z = 0; z < size; z++)
            readSliceY(buffer, fbo, modelBatch, instance, camera, box, z, size);

        camera = new OrthographicCamera(box.getDimensions().x, box.getDimensions().y);
        for (int z = 0; z < size; z++)
            readSliceZ(buffer, fbo, modelBatch, instance, camera, box, z, size);

        shift(size, 1);

        floodFill(size, r, g, b);

        model.dispose();
        modelBatch.dispose();
        fbo.dispose();

        return true;
    }
 
开发者ID:neuroradiology,项目名称:TinyVoxel,代码行数:82,代码来源:MeshImporter.java

示例15: free

import com.badlogic.gdx.graphics.glutils.FrameBuffer; //导入方法依赖的package包/类
/**
 * Releases the FrameBuffer indexed by given name. It will be removed from
 * this pool then disposed.
 * 
 * @param name
 *            the FrameBuffer's name
 */
public void free(String name) {
	FrameBuffer fb = frameBuffers.remove(name);
	if (fb != null)
		fb.dispose();
}
 
开发者ID:spookygames,项目名称:gdx-gfx,代码行数:13,代码来源:NamedBufferPool.java


注:本文中的com.badlogic.gdx.graphics.glutils.FrameBuffer.dispose方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。