Spec-Zone .ru
спецификации, руководства, описания, API
|
Этот документ описывает несколько неподдерживаемых свойств, которые можно использовать, чтобы настроить, как 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
accthreshold
Obsoleted в: Java SE 6 Обновлений 10
Намеченное использование: Чтобы определить, сколько копий с управляемых изображений произойдет, перед, версия VRAM изображения автоматически создается.
Представленный: 1.4.1_02
Значение по умолчанию: 1
Как использовать: Чтобы вынудить ускоренные поверхности, которые будут созданы во время инициализации изображения, устанавливает значение в 0, следующим образом:
-Dsun.java2d.accthreshold=0
Это свойство может использоваться, чтобы устранить начальную задержку рендеринга, когда изображения копируются в VRAM после первых немногих копий. Вместо этого задержка эффективно смещается ко времени создания изображения.
Это могло быть полезным поведением, когда Вы знаете, что Ваше приложение будет в состоянии использовать в своих интересах управление изображением; только закончите издержки копии в запуске вместо того, чтобы подвергнуться некоторому числу более медленных копий для начала и затем иметь издержки копии в некоторое более позднее время.
d3d
J2D_D3D
-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, чтобы быть ускоренным полупрозрачное изображение должно было быть создано одним из следующих способов:
GraphicsConfiguration.createCompatibleImage(w,h, Transparency.TRANSLUCENT)
Toolkit.getImage()
у этого есть полупрозрачная цветовая модельBufferedImage
конструктор может также быть ускорен. Чтобы узнать, может ли изображение быть ускорено на определенном устройстве, можно использовать Image
getCapabilities
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);
NO_J2D_DGA
setenv NO_J2D_DGA
Установка этой переменной автоматически включает использованию пиксельных карт, в действительности устанавливая pmoffscreen
к истине. Реверс, однако, не является истиной: установка pmoffscreen
к истине не отключает DGA.
J2D_PIXMAPS
J2D_PIXMAPS
флаг среды: setenv J2D_PIXMAPS=shared
setenv J2D_PIXMAPS=server
Если Вы устанавливаете этот флаг в shared
, все изображения сохранены в Пиксельных картах Совместно используемой памяти, если Вы работаете в локальной среде дисплея. Наоборот, если Вы устанавливаете этот флаг в server
, все изображения сохранены в нормальных пиксельных картах, не Пиксельных картах Совместно используемой памяти; нормальные пиксельные карты могут быть сохранены в VRAM на усмотрение драйвера устройства.
Для получения дополнительной информации:
xrender
-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 доступен.
Для получения дополнительной информации: