public class BufferCapabilities extends Object implements Cloneable
BufferStrategy.getCapabilities()
,
GraphicsConfiguration.getBufferCapabilities()
Modifier and Type | Class and Description |
---|---|
static class |
BufferCapabilities.FlipContents
页面翻转后可能的反向缓冲区内容的类型安全枚举
|
Constructor and Description |
---|
BufferCapabilities(ImageCapabilities frontCaps, ImageCapabilities backCaps, BufferCapabilities.FlipContents flipContents)
创建一个用于指定缓冲功能的新对象
|
Modifier and Type | Method and Description |
---|---|
Object |
clone()
创建并返回此对象的副本。
|
ImageCapabilities |
getBackBufferCapabilities() |
BufferCapabilities.FlipContents |
getFlipContents() |
ImageCapabilities |
getFrontBufferCapabilities() |
boolean |
isFullScreenRequired() |
boolean |
isMultiBufferAvailable() |
boolean |
isPageFlipping() |
public BufferCapabilities(ImageCapabilities frontCaps, ImageCapabilities backCaps, BufferCapabilities.FlipContents flipContents)
frontCaps
- 前端缓冲区的功能;
不能null
backCaps
- 后缓冲区和中间缓冲区的功能;
不能null
flipContents
- 页面翻转之后的后台缓冲区的内容,
null
如果不使用页面翻转(意味着blitting)
IllegalArgumentException
- 如果frontCaps或backCaps是
null
public ImageCapabilities getFrontBufferCapabilities()
public ImageCapabilities getBackBufferCapabilities()
public boolean isPageFlipping()
getFlipContents
返回null
public BufferCapabilities.FlipContents getFlipContents()
null
当isPageFlipping
返回false
,这意味着blitting。
可以是FlipContents.UNDEFINED
(假设默认值) FlipContents.BACKGROUND
, FlipContents.PRIOR
或FlipContents.COPIED
。
isPageFlipping()
,
BufferCapabilities.FlipContents.UNDEFINED
,
BufferCapabilities.FlipContents.BACKGROUND
,
BufferCapabilities.FlipContents.PRIOR
,
BufferCapabilities.FlipContents.COPIED
public boolean isFullScreenRequired()
true
,页面翻转需要全屏独占模式。
isPageFlipping()
,
GraphicsDevice.setFullScreenWindow(java.awt.Window)
public boolean isMultiBufferAvailable()
isPageFlipping()
public Object clone()
Object
复制
x
,表达式:
将是真实的,而且表达:x.clone() != x
将是x.clone().getClass() == x.getClass()
true
,但这些都不是绝对的要求。
通常情况是:
将是x.clone().equals(x)
true
,这不是绝对的要求。
按照惯例,返回的对象应该通过调用super.clone
获得。 如果一个类和它的所有超类(除了Object
)遵守这个约定,那将是x.clone().getClass() == x.getClass()
的情况。
按照惯例,此方法返回的对象应该与此对象(正被克隆)无关。 为了实现这种独立性,可能需要修改super.clone
返回的对象的一个或多个字段。 通常,这意味着复制构成被克隆的对象的内部“深层结构”的任何可变对象,并通过引用该副本替换对这些对象的引用。 如果一个类仅包含原始字段或对不可变对象的引用,则通常情况下不需要修改super.clone
返回的对象中的字段。
该方法clone
类Object
执行特定克隆操作。 首先,如果此对象的类不实现接口Cloneable
,则抛出CloneNotSupportedException
。 请注意,所有阵列被认为是实现该接口Cloneable
和所述的返回类型clone
数组类型的方法T[]
是T[]
其中T是任何引用或原始类型。 否则,该方法将创建该对象的类的新实例,并将其所有字段初始化为完全符合该对象的相应字段的内容,就像通过赋值一样。 这些字段的内容本身不被克隆。 因此,该方法执行该对象的“浅拷贝”,而不是“深度拷贝”操作。
Object
类本身并不实现接口Cloneable
,因此在类别为Object
的对象上调用clone
方法会导致在运行时抛出异常。