public abstract class LinuxFramebuffer extends java.lang.Object implements JavaFramebuffer
Linux Java2D framebuffer.
Modifier and Type | Field and Description |
---|---|
private byte[] |
backup
Framebuffer backup for VT switches.
|
private java.awt.image.BufferedImage |
blank
Cache blank image.
|
private boolean |
closeDevice
Whether to close the nativeframebuffer device when closing this framebuffer.
|
private NativeFramebuffer |
device
Underlying native Linux device.
|
private DisplayInterface |
display
Display manager
|
private NativeFramebuffer.fb_fix_screeninfo |
fixinfo
Underlying fixed framebuffer info.
|
private boolean |
flushEnabled
Whether to enable display output.
|
private NativeFramebuffer.fb_var_screeninfo |
varinfo
Underlying variable framebuffer info.
|
private Pointer |
videomem
Memory-mapped memory from Linux framebuffer device.
|
Constructor and Description |
---|
LinuxFramebuffer(NativeFramebuffer fb,
DisplayInterface disp)
Create and initialize new Linux-based Java2D framebuffer.
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
Clear the hardware framebuffer.
|
void |
close() |
java.awt.image.BufferedImage |
createCompatibleBuffer()
Create full-screen buffer.
|
abstract java.awt.image.BufferedImage |
createCompatibleBuffer(int width,
int height)
Create pixel-compatible buffer with a specified size.
|
java.awt.image.BufferedImage |
createCompatibleBuffer(int width,
int height,
int stride)
Create pixel-compatible buffer with a specified size and stride.
|
abstract java.awt.image.BufferedImage |
createCompatibleBuffer(int width,
int height,
int stride,
byte[] backed)
Create pixel-compatible buffer with a specified size and stride.
|
void |
flushScreen(java.awt.image.BufferedImage compatible)
Write full-screen buffer into the framebuffer.
|
long |
getBufferSize()
Get video memory size.
|
NativeFramebuffer |
getDevice()
Get the underlying native device.
|
DisplayInterface |
getDisplay()
Get the associated display manager.
|
NativeFramebuffer.fb_fix_screeninfo |
getFixedInfo()
Get Linux framebuffer fixed info.
|
int |
getHeight()
Query framebuffer height.
|
Pointer |
getMemory()
Get direct access to the video memory.
|
int |
getStride()
Query framebuffer scanline stride, e.g.
|
NativeFramebuffer.fb_var_screeninfo |
getVariableInfo()
Get Linux framebuffer variable info.
|
int |
getWidth()
Query framebuffer width.
|
protected void |
initializeMemory() |
void |
restoreData()
Restore original hardware framebuffer state.
|
protected void |
setDeviceClose(boolean rly)
Set whether to close the underlying device on exit.
|
void |
setFlushEnabled(boolean rly)
Controls whether
JavaFramebuffer.flushScreen(BufferedImage) has effect or not. |
void |
storeData()
Store current hardware framebuffer state.
|
private NativeFramebuffer.fb_fix_screeninfo fixinfo
private NativeFramebuffer.fb_var_screeninfo varinfo
private NativeFramebuffer device
private Pointer videomem
private boolean flushEnabled
private byte[] backup
private java.awt.image.BufferedImage blank
private boolean closeDevice
private DisplayInterface display
public LinuxFramebuffer(NativeFramebuffer fb, DisplayInterface disp) throws LastErrorException
fb
- Framebuffer device (e.g. /dev/fb0)disp
- Display manager (e.g. /dev/tty)LastErrorException
protected void initializeMemory() throws LastErrorException
LastErrorException
public void close() throws LastErrorException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
LastErrorException
public int getWidth()
JavaFramebuffer
getWidth
in interface JavaFramebuffer
public int getHeight()
JavaFramebuffer
getHeight
in interface JavaFramebuffer
public int getStride()
JavaFramebuffer
getStride
in interface JavaFramebuffer
public java.awt.image.BufferedImage createCompatibleBuffer()
JavaFramebuffer
createCompatibleBuffer
in interface JavaFramebuffer
public abstract java.awt.image.BufferedImage createCompatibleBuffer(int width, int height)
JavaFramebuffer
createCompatibleBuffer
in interface JavaFramebuffer
width
- Requested image width.height
- Requested image height.public java.awt.image.BufferedImage createCompatibleBuffer(int width, int height, int stride)
JavaFramebuffer
createCompatibleBuffer
in interface JavaFramebuffer
width
- Requested image width.height
- Requested image height.stride
- Requested scanline stride.public abstract java.awt.image.BufferedImage createCompatibleBuffer(int width, int height, int stride, byte[] backed)
JavaFramebuffer
createCompatibleBuffer
in interface JavaFramebuffer
width
- Requested image width.height
- Requested image height.stride
- Requested scanline stride.public void flushScreen(java.awt.image.BufferedImage compatible)
JavaFramebuffer
flushScreen
in interface JavaFramebuffer
compatible
- What to draw onto the screen.public void setFlushEnabled(boolean rly)
JavaFramebuffer
JavaFramebuffer.flushScreen(BufferedImage)
has effect or not.setFlushEnabled
in interface JavaFramebuffer
rly
- Whether flushing should be enabled or not.public void storeData()
JavaFramebuffer
storeData
in interface JavaFramebuffer
public void restoreData()
JavaFramebuffer
restoreData
in interface JavaFramebuffer
public void clear()
JavaFramebuffer
clear
in interface JavaFramebuffer
public DisplayInterface getDisplay()
JavaFramebuffer
getDisplay
in interface JavaFramebuffer
public NativeFramebuffer.fb_fix_screeninfo getFixedInfo()
public NativeFramebuffer.fb_var_screeninfo getVariableInfo()
public NativeFramebuffer getDevice()
public Pointer getMemory()
for memory size.
public long getBufferSize()
for memory pointer.
protected void setDeviceClose(boolean rly)