Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Системные Свойства для Java 2D™ Технология

Этот документ описывает несколько неподдерживаемых свойств, которые можно использовать, чтобы настроить, как 2-D система рисования работает. Вы могли бы использовать эти свойства, чтобы улучшить производительность, фиксировать неправильный рендеринг, или избежать системных катастрофических отказов под определенными конфигурациями. Например, на маленьком наборе компьютеров Microsoft Windows с плохим DirectDraw или драйверами Direct3D, использование аппаратно ускоренного рендеринга могло бы вызвать системные катастрофические отказы. Можно использовать свойства, чтобы определить, что на этих компьютерах, Java 2-D система не должна использовать DirectDraw или Direct3D.


Предупреждение: Заботьтесь при использовании этих свойств. Некоторые из них неподдерживаются по очень практическим причинам. Например, некоторые поведения отключаются по умолчанию из-за неустойчивости драйвера; включение таким поведениям могло вызвать неустойчивость системы на некоторых конфигурациях.

Так как у этих свойств есть единственная цель включить или отключить специфичные для реализации поведения, они подвержены изменениям или удаление без уведомления. Некоторые свойства могли бы работать только над точными выпусками продукта, для которых они документируются.

У 2-D свойств есть префикс sun.java2d.. Чтобы определить их, можно использовать или флаги командной строки или _JAVA_OPTIONS переменная окружения. Например, можно определить 2-D trace свойство с флагом, запуская приложение, как это:

java -Dsun.java2d.trace=log SomeApp
Или можно определить это, устанавливая _JAVA_OPTIONS прежде, чем запустить приложение, как это:
export _JAVA_OPTIONS='-Dsun.java2d.trace=log' (UNIX bash shell)
java SomeApp

Некоторые системные свойства являются также устанавливаемыми переменными окружения использования. Например, d3d у свойства есть эквивалентная переменная окружения J2D_D3D. Описание свойства перечисляет эквивалентную переменную окружения, если Вы существуете.


Отметьте: См. Высокопроизводительный Отчет Графики для объяснений терминов, использованных в описаниях свойства.

Это списки документов следующие свойства:


Системные Свойства для Всех Платформ

opengl

Намеченное использование: включать основанному на OpenGL конвейеру, который обеспечивает аппаратное ускорение.
Представленный: 1.5 Беты 1 (Солярис/Linux); 1.5 Беты 2 (Microsoft Windows)
Значение по умолчанию: ложь
Как использовать: Чтобы тихо включить основанному на OpenGL конвейеру, установите это свойство в true:

-Dsun.java2d.opengl=true

Чтобы получить многословный консольный вывод о том, инициализируется ли основанный на OpenGL конвейер успешно для определенного экрана, устанавливает это свойство в True (отметьте верхний регистр T):

-Dsun.java2d.opengl=True 

Основанный на OpenGL конвейер для 2-D Java был представлен в 1.5 Бетах 1 для Соляриса/Linux и 1.5 Бетах 2 для платформ Microsoft Windows. Этот конвейер в настоящий момент отключается по умолчанию. Это обеспечивает аппаратное ускорение для простых операций рендеринга (текст, изображения, строки, и заполненные примитивы) так же как те, которые включают комплекс, преобразовывает, краски, составляет композит, и клипы.

Для получения дополнительной информации: раздел OpenGL Нового Java 2-D Функции в Java 2 SDK, v1.5.


trace

Намеченное использование: помочь определить источник меньше требуемой производительности при обработке графики.
Представленный: 1.4
Как использовать: Если Ваше приложение испытывает меньше требуемую производительность, trace флаг времени выполнения может помочь Вам определить источник проблемы. Флаг определяется со списком опций:

    -Dsun.java2d.trace=[log[,timestamp]],[count],[out:<filename>],[help],[verbose]

Опции:

log
распечатайте имя каждого примитива, поскольку это выполняется
timestamp
предшествуйте каждой записи журнала с currentTimeMillis()
count
в выходе распечатайте количество каждого используемого примитива
out:<filename>
отправьте вывод (журналирование и количества) к обозначенному файлу
help
распечатайте короткий оператор использования
verbose
распечатайте сводку опций, выбранных для этого выполнения

Если Вы используете log опция, Среда выполнения Java напечатает имена выполняемых примитивов, большинство которых будет в этом формате:

    <classname>.<methodname>(<src>,<composite>,<dst>)

methodname представляет основную графическую работу, которая используется, чтобы сделать фактическую работу рендеринга a Graphics вызов метода. Эти имена методов не обязательно отобразятся непосредственно на методы на Graphics объект, ни будет число вызовов, выполненных на Graphics возразите отображаются непосредственно на число примитивных выполняемых операций.

src и dst представьте тип поверхностей или исходных данных, включенных в работу.

composite имена соответствуют имена в AlphaComposite класс справедливо близко с суффиксом"NoEa"подразумевать, что AlphaComposite у экземпляра была "дополнительная альфа" атрибут 1.0. Тип "SrcNoEa" является обычно используемым составным типом и представляет самый простой способ передать пиксели без смешивания необходимого. "SrcNoEa" часто используется негласно даже при том, что составной объект по умолчанию является "SrcOver", когда непрозрачные цвета и изображения представляются, потому что эти две операции неразличимы для непрозрачных исходных пикселей.

Конвейеры рендеринга платформы иногда используются для того, чтобы сделать непрозрачные операции на поверхностях, доступных средством рендеринга платформы, таких как X11, GDI, или DirectDraw. Их имена в настоящий момент используют упрощенный формат именования, у которого есть префикс для средства рендеринга платформы и имени работы, но без любого имени класса или списка типов операнда. Примерами является "X11DrawLine", "GDIFillOval", и "DXFillRect". В будущем эти имена должны более близко приблизить имена других примитивов.


awt.useSystemAAFontSettings

Предназначенные use:To переопределяют, какие текстовые настройки сглаживания идентифицируются как являющийся "настольными настройками".
Представленный: 1.6
Значение по умолчанию value:true.
Как к use:Set на командной строке или в webstart jnlp файл как одно из указанных значений ниже, чтобы управлять подсказками рендеринга, используемыми текстом Swing.

Строго этот флаг не управляет 2-D Java, но документируется здесь, потому что значения все непосредственно отображают на Java 2-D текстовое сглаживание, представляющее значения подсказок.

То, что действительно делает флаг, переопределить то, что JRE читает из настольных настроек пользователя как рабочий стол пользователя сглаженное текстовое предпочтение. Swing дает команду Java, 2-D представлять текст Swing, чтобы соответствовать то предпочтение, таким образом, переопределяя это можно управлять текстом Swing. Это применяется к стандартным компонентам Swing (как JTextArea, JButton) в Металле L&F (иначе Java L&F) и собственный (Windows, GTK) Swing L&Fs. Это должно также примениться к любому пользовательскому компоненту или L&F, который поднимает то же самое свойство.

Для получения информации о рабочем столе, устанавливающем, это переопределяет, см. Настольные Свойства AWT

Нет многих причин для Вас определить, что это свойство, но пара

System Property Value   | java.awt.RenderingHint value
"off"|"false"|"default" : VALUE_TEXT_ANTIALIAS_DEFAULT
"on"                    : VALUE_TEXT_ANTIALIAS_ON
"gasp"                  : VALUE_TEXT_ANTIALIAS_GASP
"lcd"|"lcd_hrgb"        : VALUE_TEXT_ANTIALIAS_LCD_HRGB
"lcd_hbgr"              : VALUE_TEXT_ANTIALIAS_LCD_HBGR
"lcd_vrgb"              : VALUE_TEXT_ANTIALIAS_LCD_VRGB
"lcd_vbgr"              : VALUE_TEXT_ANTIALIAS_LCD_VBGR

Системные Свойства для Microsoft Windows Platforms

accthreshold

Obsoleted в: Java SE 6 Обновлений 10
Намеченное использование: Чтобы определить, сколько копий с управляемых изображений произойдет, перед, версия VRAM изображения автоматически создается.
Представленный: 1.4.1_02
Значение по умолчанию: 1
Как использовать: Чтобы вынудить ускоренные поверхности, которые будут созданы во время инициализации изображения, устанавливает значение в 0, следующим образом:

-Dsun.java2d.accthreshold=0

Это свойство может использоваться, чтобы устранить начальную задержку рендеринга, когда изображения копируются в VRAM после первых немногих копий. Вместо этого задержка эффективно смещается ко времени создания изображения.

Это могло быть полезным поведением, когда Вы знаете, что Ваше приложение будет в состоянии использовать в своих интересах управление изображением; только закончите издержки копии в запуске вместо того, чтобы подвергнуться некоторому числу более медленных копий для начала и затем иметь издержки копии в некоторое более позднее время.


d3d

Намеченное использование: выключить Java использование 2-D системы Direct3D.
Представленный: 1.4.1_02
Эквивалентная переменная окружения: J2D_D3D
Как использовать: На маленьком подмножестве систем Windows 2000 с ошибочными драйверами Direct3D использование Direct3D может вызвать системный катастрофический отказ. Чтобы выключить использование Direct3D, установите это свойство в ложь:
-Dsun.java2d.d3d=false
Если проблемы сохраняются, попытайтесь установить ddoffscreen свойство ко лжи. Если это не решает проблемы, попытайтесь установить noddraw к истине.

d3dtexbpp

Obsoleted в: Java SE 6 Обновлений 10
Намеченное использование: определить, который ускорял поверхности для управляемых или полупрозрачных изображений, должно быть в 16-разрядном (4444) формат, который сохраняет VRAM и системную память, но за счет уменьшенного качества.
Представленный: 1.4.1_02
Значение по умолчанию: 32
Как использовать: Чтобы включить 4444 формата, установите это свойство в 16:

-Dsun.java2d.d3dtexbpp=16

Отметьте: d3dtexbpp свойство не имеет никакого эффекта, если конвейер OpenGL используется.

Когда это свойство устанавливается в 16, оно вызывает ускоренные поверхности для управляемых изображений (создаваемый с GraphicsConfiguration.createCompatibleImage(w,h, TRANSLUCENT)) или полупрозрачные изображения, загруженные Toolkit.getImage быть в 4444 форматах. Поверхность системной памяти для этих изображений будет в 4444 форматах также.

Эта опция полезна, когда у Вас есть много изображений, которые будут сохранены в VRAM. Нижняя сторона является более плохим качеством.

Эта опция также полезна для компьютеров с видео платами (такой как 3dfx Voodoo3), который не поддерживает 32-разрядные текстуры. Когда Java, 2-D система использует 32-разрядные текстуры, как это делает по умолчанию, затем когда это встречается с картой без 32-разрядной текстуры, поддерживает это поддержка отключений ускоренных полупрозрачных изображений. Если Вы хотите ускорение полупрозрачных изображений на видео плате, которая не поддерживает 32-разрядные текстуры, установите d3dtexbpp свойство к 16.


ddforcevram

Obsoleted в: Java SE 6 Обновлений 10
Намеченное использование: определить ли VolatileImages должен быть сохранен в VRAM.
Представленный: 1.4.1_02
Значение по умолчанию: ложь в 1.4; с 1.5 Бет 1, истина, если translaccel истина, и иначе ложь
Как использовать: Обычно, если 2-D система использует конвейер DirectDraw/Direct3D и обнаруживает, что изображение в видео памяти читается из слишком часто (дорогая работа), это плывет на плоскодонке это на поверхность системной памяти, которая быстрее, чтобы читать из. Позже, если система обнаруживает, что пользователь копирует от этой поверхности до ускоренной поверхности снова, это продвигает это видео память. Установка этого свойства к истине отключает плывущий на плоскодонке механизм и всегда сохраняет изображение в видео памяти.


Отметьте: ddforcevram свойство не имеет никакого эффекта, если конвейер OpenGL используется.

Хотя это свойство часто используется с translaccel свойство, это может использоваться отдельно. Установить это свойство в истину, любой набор translaccel к истине в 1.5 выпусках, или набору это отдельно:

-Dsun.java2d.ddforcevram=true

ddoffscreen

Obsoleted в: SE Java 6 Обновлений 10, который содержит новую реализацию поддержки D3D. Установка sun.java2d.ddoffscreen=false теперь интерпретируется точно то же самое как отключение это через sun.java2d.d3d=false.
Намеченное использование: Чтобы выключить Java, использование 2-D системы DirectDraw и Direct3D для внеэкранных поверхностей, таких как Swing назад буферизует.
Представленный: 1.4
Значение по умолчанию: истина
Как использовать: Установка этого флага ко лжи выключает DirectDraw, вне экрана появляется ускорение.


ddscale

Obsoleted в: Java SE 6 Обновлений 10
Намеченное использование: включать аппаратно ускоренное масштабирование, когда конвейер DirectDraw/Direct3D используется.
Представленный: 1.2
Значение по умолчанию: ложь
Как использовать: Установка этого флага к истинным включениям, аппаратно ускоренным, масштабируясь, если конвейер DirectDraw/Direct3D используется. Аппаратное масштабирование DirectDraw/Direct3D отключается по умолчанию, чтобы избежать представлять артефакты в существующих приложениях. Эти артефакты рендеринга вызываются возможными несогласованностями между методом масштаба, который операция масштабирования программного обеспечения использует (самый близкий сосед) и различные методы масштаба то использование видеокарт. Определенные события, которые происходят, в то время как приложение работает, могли бы заставить масштабируемое изображение быть представленным частично с аппаратными операциями масштабирования и частично с операциями масштабирования программного обеспечения, приводящими к непоследовательному появлению. Пока, можно включить ускорению, устанавливая ddscale отметьте к истине.


Отметьте: ddscale свойство не имеет никакого эффекта, если конвейер OpenGL используется.

Для получения дополнительной информации: Высокопроизводительный Отчет Графики


noddraw

Obsoleted в: SE Java 6 Обновлений 10, который содержит новую реализацию поддержки D3D. Установка sun.java2d.noddraw=true теперь интерпретируется точно то же самое как отключение это через sun.java2d.d3d=false.
Намеченное использование: выключить Java использование 2-D системы DirectDraw и Direct3D полностью.
Представленный: 1.2
Значение по умолчанию: ложь
Как использовать: Установка этого флага к истине выключает использование DirectDraw, которое иногда помогает избавиться от рендеринга проблем на Win32.


translaccel

Obsoleted в: Java SE 6 Обновлений 10
Намеченное использование: определить, должны ли полупрозрачные изображения быть аппаратно ускорены, когда конвейер DirectDraw/Direct3D используется.
Представленный: 1.4.1_02
Значение по умолчанию: ложь
Как использовать: Когда конвейер DirectDraw/Direct3D используется, оба translaccel и ddforcevram должна быть истина для полупрозрачных изображений, которые будут ускорены.


Отметьте: translaccel свойство не имеет никакого эффекта, если конвейер OpenGL используется.

Включать ускорение полупрозрачных изображений в 1.4 и 1.5:

-Dsun.java2d.translaccel=true
-Dsun.java2d.ddforcevram=true //unnecessary as of 1.5 Beta 1

Когда оба этих свойства являются истиной, Java, 2-D система пытается поместить полупрозрачные изображения в VRAM и использовать Direct3D для того, чтобы представить (составление композита) их на экран или на a VolatileImage. Только преобразования преобразования поддерживаются (никакое вращение, масштабирование, и так далее). Прежде 1.5, чтобы быть ускоренным полупрозрачное изображение должно было быть создано одним из следующих способов:

С 1.5, полупрозрачные изображения создаются с a BufferedImage конструктор может также быть ускорен. Чтобы узнать, может ли изображение быть ускорено на определенном устройстве, можно использовать Image getCapabilities метод (добавленный в 1.5), чтобы добраться ImageCapabilities объект, который можно запросить использование isAccelerated метод. Отметьте, что управляемое изображение ускоряется только после определенного числа копий на экран или на другую ускоренную поверхность.

Следующий фрагмент кода иллюстрирует использование ускоренных изображений. Фрагмент предполагает, что назад буфер является a VolatileImage. BufferStrategy может использоваться также.

Image translucentImage = gc.createCompatibleImage(w, h, Transparency.TRANSLUCENT);
//...
Graphics2D g2 = (Grahics2D)backBuffer.getGraphics();
g2.drawImage(translucentImage, x, y, null);

Составление композита с дополнительной альфой с правилом SRC_OVER (который является правилом составления композита Graphics2D по умолчанию) ускоряется, таким образом, следующий код позволит использование аппаратных средств для того, чтобы составить композит: Код:

Image translucentImage = gc.createCompatibleImage(w, h, Transparency.TRANSLUCENT);
// ...
float ea = 0.5;
Graphics2D g2 = (Grahics2D)backBuffer.getGraphics();
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, ea));
g2.drawImage(translucentImage, x, y, null);

Системные Свойства для Linux и Платформ Соляриса

NO_J2D_DGA

Намеченное использование: выключить поддержку DGA и аппаратное ускорение на Sparc Соляриса, который иногда помогает уменьшить артефакты рендеринга.
Представленный: 1.2
Значение по умолчанию: (сброс)
Как использовать: Это свойство устанавливаемо только как переменная окружения; у этого нет никакого эквивалентного флага командной строки. Чтобы выключить поддержку DGA и аппаратное ускорение на Sparc Соляриса, определите переменную:
setenv NO_J2D_DGA

Установка этой переменной автоматически включает использованию пиксельных карт, в действительности устанавливая pmoffscreen к истине. Реверс, однако, не является истиной: установка pmoffscreen к истине не отключает DGA.


J2D_PIXMAPS

Намеченное использование: определить, использует ли 2-D система пиксельные карты совместно используемой памяти в локальной среде дисплея для того, чтобы сохранить изображения, которые испытывают частые чтения.
Представленный: 1.4 Беты 3
Значение по умолчанию: (сброс)
Как использовать: Это свойство устанавливаемо только как переменная окружения; у этого нет никакого эквивалентного флага командной строки. С 1.4 Бет 3 2-D Java начинает использующие нормальные пиксельные карты, чтобы сохранить изображения, но изменяет хранение часто изображений чтения, чтобы использовать Пиксельные карты Совместно используемой памяти в локальной среде дисплея. Можно переопределить это поведение по умолчанию ⠀” и вынудить только один тип пиксельной карты использоваться ⠀” с J2D_PIXMAPS флаг среды:
    setenv J2D_PIXMAPS=shared
setenv J2D_PIXMAPS=server

Если Вы устанавливаете этот флаг в shared, все изображения сохранены в Пиксельных картах Совместно используемой памяти, если Вы работаете в локальной среде дисплея. Наоборот, если Вы устанавливаете этот флаг в server, все изображения сохранены в нормальных пиксельных картах, не Пиксельных картах Совместно используемой памяти; нормальные пиксельные карты могут быть сохранены в VRAM на усмотрение драйвера устройства.

Для получения дополнительной информации: Высокопроизводительный Отчет Графики


xrender

Намеченное использование: включать XRender-на-основе Java 2-D конвейер рендеринга для современных X11-на-основе рабочих столов, предлагая улучшенную производительность при обработке графики.
Представленный: Java SE 7
Значение по умолчанию: ложь
Как использовать: конвейер отключается по умолчанию, но может быть включен, устанавливая свойство командной строки -Dsun.java2d.xrender=true. Более старые конфигурации X11, возможно, не в состоянии поддерживать XRender. Многословная форма, -Dsun.java2d.xrender=True, может использоваться, чтобы включить сообщению к stdout указание, был ли конвейер фактически включен.

pmoffscreen

Намеченное использование: определить, отображает ли Java 2-D хранилища в пиксельных картах по умолчанию, когда DGA не доступен.
Представленный: 1.4 Беты 3
Значение по умолчанию: (сброс)
Как использовать: С 1.4 Бет 3 Java 2-D хранилища отображают в пиксельных картах по умолчанию, когда DGA не доступен, работаете ли Вы в локальной или удаленной среде дисплея. Можно переопределить это поведение с pmoffscreen флаг:

    -Dsun.java2d.pmoffscreen=true
-Dsun.java2d.pmoffscreen=false

Установка этого флага к ложным отключениям внеэкранная поддержка пиксельной карты, которая может решить некоторые проблемы рендеринга. Когда флаг истинен, внеэкранная поддержка пиксельной карты включается, даже если DGA доступен.

Для получения дополнительной информации: Высокопроизводительный Отчет Графики


Oracle и/или его филиалы Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами