Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class VolatileImage extends Image implements Transparency
Поверхность рисунка изображения (память, где содержание изображения фактически находится) может быть потеряна или лишена законной силы, вызывая содержание той памяти уйти. Поверхность рисунка таким образом должна быть восстановлена или воссоздана и содержание той поверхностной потребности, которая будет повторно представлена. VolatileImage обеспечивает интерфейс для того, чтобы он позволил пользователю обнаруживать эти проблемы и фиксировать их, когда они происходят.
Когда объект VolatileImage создается, ограниченные системные ресурсы, такие как видеопамять (VRAM) могут быть выделены, чтобы поддерживать изображение. Когда объект VolatileImage больше не используется, он может быть собран "мусор", и те системные ресурсы будут возвращены, но этот процесс не происходит в гарантируемые времена. Приложения, которые создают много объектов VolatileImage (например, окно изменения размеров может вызвать воссоздание своего заднего буфера как размер, изменяются), может исчерпать оптимальные системные ресурсы для новых объектов VolatileImage просто, потому что старые объекты еще не были удалены из системы. (Новые объекты VolatileImage могут все еще быть созданы, но они, возможно, не выполняют так же как создаваемые в ускоренной памяти). Метод сброса можно вызвать в любое время, чтобы заранее высвободить средства, используемые VolatileImage так, чтобы он не препятствовал последующим объектам VolatileImage быть ускоренным. Таким образом приложения могут иметь больше контроля над состоянием ресурсов, приведенных в рабочее состояние устаревшими объектами VolatileImage.
Это изображение не должно быть разделено на подклассы непосредственно, но должно быть создано при использовании Component.createVolatileImage
или GraphicsConfiguration.createCompatibleVolatileImage(int, int)
методы.
Пример использования объекта VolatileImage следует:
// image creation VolatileImage vImg = createVolatileImage(w, h); // rendering to the image void renderOffscreen() { do { if (vImg.validate(getGraphicsConfiguration()) == VolatileImage.IMAGE_INCOMPATIBLE) { // old vImg doesn't work with new GraphicsConfig; re-create it vImg = createVolatileImage(w, h); } Graphics2D g = vImg.createGraphics(); // // miscellaneous rendering commands... // g.dispose(); } while (vImg.contentsLost()); } // copying from the image (here, gScreen is the Graphics // object for the onscreen window) do { int returnCode = vImg.validate(getGraphicsConfiguration()); if (returnCode == VolatileImage.IMAGE_RESTORED) { // Contents need to be restored renderOffscreen(); // restore contents } else if (returnCode == VolatileImage.IMAGE_INCOMPATIBLE) { // old vImg doesn't work with new GraphicsConfig; re-create it vImg = createVolatileImage(w, h); renderOffscreen(); } gScreen.drawImage(vImg, 0, 0, this); } while (vImg.contentsLost());
Отметьте, что этот class разделяет на подклассы от Image
class, который включает методы, которые берут ImageObserver
параметр для асинхронных уведомлений как информация получается от потенциала ImageProducer
. Начиная с этого VolatileImage
не загружается из асинхронного источника, различные методы, которые берут ImageObserver
параметр будет вести себя, как будто данные были уже получены из ImageProducer
. Определенно, это означает, что возвращаемые значения от таких методов никогда не будут указывать, что информация еще не доступна и ImageObserver
используемый в таких методах никогда не должен будет записываться для асинхронного уведомления об обратном вызове.
Модификатор и Тип | Поле и Описание |
---|---|
static int |
IMAGE_INCOMPATIBLE
Проверенное изображение является несовместимым с предоставленным
GraphicsConfiguration возразите и должен быть воссоздан как соответствующий. |
static int |
IMAGE_OK
Проверенное изображение готово использовать как есть.
|
static int |
IMAGE_RESTORED
Проверенное изображение было восстановлено и теперь готово использовать.
|
protected int |
прозрачность
Значение прозрачности, с которым создавалось это изображение.
|
accelerationPriority, SCALE_AREA_AVERAGING, SCALE_DEFAULT, SCALE_FAST, SCALE_REPLICATE, SCALE_SMOOTH, UndefinedProperty
BITMASK, OPAQUE, TRANSLUCENT
Конструктор и Описание |
---|
VolatileImage() |
Модификатор и Тип | Метод и Описание |
---|---|
abstract boolean |
contentsLost()
Возвраты
true если рендеринг данных был потерян с тех пор последний validate вызвать. |
abstract Graphics2D |
createGraphics()
Создает a
Graphics2D , который может использоваться, чтобы вовлечь это VolatileImage . |
abstract ImageCapabilities |
getCapabilities()
Возвращает объект ImageCapabilities, который может быть запрошен относительно определенных возможностей этого VolatileImage.
|
Графика |
getGraphics()
Этот метод возвращает a
Graphics2D , но здесь для назад совместимости. |
abstract int |
getHeight()
Возвращает height
VolatileImage . |
abstract BufferedImage |
getSnapshot()
Возвращает статическое изображение снимка этого объекта.
|
ImageProducer |
getSource()
Это возвращает ImageProducer для этого VolatileImage.
|
int |
getTransparency()
Возвращает прозрачность.
|
abstract int |
getWidth()
Возвращает width
VolatileImage . |
abstract int |
validate(GraphicsConfiguration gc)
Попытки восстановить поверхность рисунка изображения, если поверхность была потеряна начиная с последнего
validate вызвать. |
flush, getAccelerationPriority, getCapabilities, getHeight, getProperty, getScaledInstance, getWidth, setAccelerationPriority
public static final int IMAGE_OK
public static final int IMAGE_RESTORED
public static final int IMAGE_INCOMPATIBLE
GraphicsConfiguration
возразите и должен быть воссоздан как соответствующий. Использование изображения как есть после получения этого кода возврата от validate
неопределено.protected int transparency
public abstract BufferedImage getSnapshot()
BufferedImage
возвращенный является только текущим с VolatileImage
во время запроса и не будет обновлен ни с какими изменениями будущего к VolatileImage
.BufferedImage
представление этого VolatileImage
BufferedImage
public abstract int getWidth()
VolatileImage
.VolatileImage
.public abstract int getHeight()
VolatileImage
.VolatileImage
.public ImageProducer getSource()
getSource
возможно, не выполняет с такой скоростью, как операции, которые не полагаются на чтение пикселей. Отметьте также, что пиксельные значения, считанные из изображения, являются текущими с теми в изображении только в то время, когда они получаются. Этот метод берет снимок изображения в то время, когда с просьбой обращаются и объект ImageProducer возвращенные работы с тем статическим изображением снимка, не исходный VolatileImage. Вызов getSource () эквивалентен вызову getSnapshot ().getSource ().getSource
в class Image
ImageProducer
это может использоваться, чтобы произвести пиксели для a BufferedImage
представление этого Изображения.ImageProducer
, getSnapshot()
public Graphics getGraphics()
Graphics2D
, но здесь для назад совместимости. createGraphics
более удобно, так как это, как объявляют, возвращает a Graphics2D
.getGraphics
в class Image
Graphics2D
, который может использоваться, чтобы вовлечь это изображение.Graphics
, Component.createImage(int, int)
public abstract Graphics2D createGraphics()
Graphics2D
, который может использоваться, чтобы вовлечь это VolatileImage
.Graphics2D
, используемый для того, чтобы вовлечь это изображение.public abstract int validate(GraphicsConfiguration gc)
validate
вызвать. Также проверяет этого изображения против данного параметра GraphicsConfiguration, чтобы видеть, являются ли операции от этого изображения до GraphicsConfiguration совместимыми. Примером несовместимой комбинации могла бы быть ситуация, где объект VolatileImage создавался на одном графическом устройстве и затем использовался, чтобы представить к различному графическому устройству. Так как объекты VolatileImage имеют тенденцию быть очень специфичными для устройства, эта работа не могла бы работать как предназначено, таким образом, код возврата от этого проверяет вызова, отметил бы что несовместимость. Нулевое или неправильное значение для gc может заставить неправильные значения быть возвращенными из validate
и может вызвать более поздние проблемы с рендерингом.gc
- a GraphicsConfiguration
объект для этого изображения, которое будет проверено против. Нулевой gc подразумевает, что проверить метод должен пропустить тест совместимости.IMAGE_OK
если изображение не нуждалось в проверке допустимостиIMAGE_RESTORED
если изображение необходимое восстановление. Восстановление подразумевает, что на содержание изображения, возможно, влияли, и изображение, возможно, должно быть повторно представлено.IMAGE_INCOMPATIBLE
если изображение является несовместимым с GraphicsConfiguration
объект, который передают в validate
метод. Несовместимость подразумевает, что изображение, возможно, должно быть воссоздано с новым Component
или GraphicsConfiguration
чтобы получить изображение, которое может использоваться успешно с этим GraphicsConfiguration
. Несовместимое изображение не проверяется на то, было ли восстановление необходимо, таким образом, состояние изображения неизменно после возвращаемого значения IMAGE_INCOMPATIBLE
и это возвращаемое значение ничего не подразумевает о том, должно ли изображение быть восстановлено.GraphicsConfiguration
, Component
, IMAGE_OK
, IMAGE_RESTORED
, IMAGE_INCOMPATIBLE
public abstract boolean contentsLost()
true
если рендеринг данных был потерян с тех пор последний validate
вызвать. Этот метод должно вызвать приложение в конце любого ряда рендеринга операций к или от изображения, чтобы видеть, должно ли изображение быть проверено и сделанный заново рендеринг.true
если поверхность рисунка должна быть восстановлена; false
иначе.public abstract ImageCapabilities getCapabilities()
ImageCapabilities
объект, который содержит возможности этого VolatileImage
.public int getTransparency()
getTransparency
в интерфейсе Transparency
VolatileImage
.Transparency.OPAQUE
, Transparency.BITMASK
, Transparency.TRANSLUCENT
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92