package cbccore.display;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class SimulatedFramebuffer extends Framebuffer {
private JPanel window = new JPanel();
private Graphics2D g = null;
public SimulatedFramebuffer(String name) {
window.setMinimumSize(new Dimension(320, 240));
window.setPreferredSize(new Dimension(320, 240));
window.setMaximumSize(new Dimension(320, 240));
window.setVisible(true);
}
@Override
public void sync() {
if(!window.isVisible()) return;
g = (Graphics2D)window.getGraphics();
for(int iy = 0; iy < getHeight(); ++iy) {
for(int ix = 0; ix < getWidth(); ++ix) {
int i = iy * getWidth() + ix;
byte[] working = { bytes[i * 2], bytes[i * 2 + 1] };
Pixel p = Pixel.fromRGB565(working);
g.setColor(new Color(p.getRed(), p.getGreen(), p.getBlue()));
g.drawLine(ix, iy, ix, iy);
}
}
}
public JPanel getPanel() {
return window;
}
}