Hello.
I'm trying to implement a kind of viewport using multiple worlds and framebuffers.
I got a idea from this forum.(
http://www.jpct.net/forum2/index.php/topic,682.msg3606.html#msg3606)
but I had a problem about that. This image doesn't made well.
How did I make viewport is:
1. render viewport to buffer
2. make BufferedImage from buffer
3. make texture from BufferedImage
4. set texture to main world plane
and here is part of my code
public Viewport(int x, int y, int width, int height) {
m_rect.setBounds(x, y, width, height);
m_world = new World();
Camera m_cam = m_world.getCamera();
...
Config.useFramebufferWithAlpha = true;
m_buffer = new FrameBuffer(width, height, FrameBuffer.SAMPLINGMODE_NORMAL);
m_buffer.enableRenderer(IRenderer.RENDERER_SOFTWARE);
}
private Texture toTexture()
{
BufferedImage img = new BufferedImage(m_rect.width, m_rect.height, BufferedImage.TYPE_INT_ARGB);
m_buffer.clear(new Color(0, 0, 0, 0xff));
m_world.renderScene(m_buffer);
m_world.draw(m_buffer);
m_buffer.display(img.getGraphics());
Texture t = new Texture(img, true);
t.setClamping(true);
return t;
}
For test, I drew a diagonal line on it(square viewport).
I expected transparent background viewport with some colored(not transparent) line on it, but interestingly, it blitted transparent line.
it seems that alpha channel affects entire image. when I clear the buffer with alpha 0, the viewport never show as same as line on viewport.
how can i fix this problem?