-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDisplay.java
More file actions
50 lines (43 loc) · 1.85 KB
/
Display.java
File metadata and controls
50 lines (43 loc) · 1.85 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import java.awt.*;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import javax.swing.JFrame;
public class Display extends Canvas
{
private static final long serialVersionUID = 1L;
private final JFrame m_frame;
private final RenderContext m_frameBuffer;
private final BufferedImage m_displayImage;
private final byte[] m_displayComponents;
private final BufferStrategy m_strategy;
private final Graphics m_Graphics;
public Display(int width, int height, String title)
{
Dimension size = new Dimension(width,height);
setPreferredSize(size);
setMaximumSize(size);
setMaximumSize(size);
m_frameBuffer = new RenderContext(width, height);//creates a bitmap for the width and height and a scan_buffer
m_displayImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR); //buffered image is iamge data with type of color component used
m_displayComponents = ((DataBufferByte)m_displayImage.getRaster().getDataBuffer()).getData();
m_frameBuffer.clear((byte)0x60);
m_frame = new JFrame();
m_frame.add(this);
m_frame.pack();
m_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
m_frame.setTitle(title);
m_frame.setVisible(true);
createBufferStrategy(1);
m_strategy = getBufferStrategy();
m_Graphics = m_strategy.getDrawGraphics();
}
public RenderContext GetFrameBuffer() { return m_frameBuffer; }
public void swapBuffers()
{
m_frameBuffer.copyToByteArray(m_displayComponents);
m_Graphics.drawImage(m_displayImage, 0, 0, m_frameBuffer.Get_width(), m_frameBuffer.Get_height(),null);
m_strategy.show();
//System.out.println("1");
}
}