Templates

Шаблоны

Содержание

Изменения

Введение

В AlbaLynx GUI внешний вид любого элемента целиком и полностью зависит от заданного ему шаблона, который должен быть описан в специальном XML файле.

Итак состав XML файла шаблонов:

<?xml version="1.0" encoding="utf-8"?>
<AlbaLynx>

<!-- Fonts -->
<!-- Шрифты -->
<font ... />

<!-- Images -->
<!-- Изображения используемые в шаблонах -->
<image ... />

<!-- Loading additional file -->
<!-- Загрузка дополнительного файла -->
<load ... />

<!-- Template of an element -->
<!-- Шаблон элемента -->
<template ... >
<primitive ... >
<primitive ... >
...
</primitive>
</primitive>
</template>
 
</AlbaLynx>

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

Следует помнить, что все имена (шрифтов, изображений, шаблонов) чувствительны к регистру.

Шрифты

В AlbaLynx поддерживаются два вида шрифтов: векторные и растровые. Общий вид их описания в XML файле выглядит так:

<font Type="..." Name="..." File="..." Default="..." />

Рассмотрим их общие параметры:

Type - Тип шрифта. Может принимать значения Vector или Bitmap, соответственно для векторных и растровых шрифтов.
Name - Имя шрифта. Это имя нужно будет указать в шаблоне, в котором вы хотите его использовать.
File - Имя файла шрифта, включая путь к нему. Путь может указываться как относительно XML файла, так и относительно рабочей папки программы. Подробнее этот параметр расписан для каждого шрифта в отдельности.
Default - Этот параметр может принимать значения Да/Нет (т.е. 1/0 или Yes/No). Он указывает является ли данный шрифт шрифтом по умолчанию. Если да - то всем шаблонам элементов загружаемым после него, которым не указан шрифт будет установлен этот шрифт. По умолчанию значение - 0.

Векторные шрифты

<font Type="Vector" Name="MyriadPro_14" File="Fonts/MyriadPro-Regular.otf" Size="14px" Cache="150" Default="0" />

У векторных шрифтов есть два дополнительных параметра: Size и Cache

Size - Размер шрифта в пикселах.
Cache - Количество кешируемых символов. Например если этим шрифтов планируется выводить только цифры, то вполне хватит 10, если текст на английском, то 52 и т.п. По умолчанию это значение равно 150. Все символы одного шрифта размещаются на одной текстуре (ее размеры подбираются автоматически), поэтому если после размещения указанного количества ячеек останется свободное место, то кеш будет увеличен до полного заполнения текстуры.
File - Имя файла шрифта, включая путь к нему. Если файл не найден в указанных выше местах, то для векторного шрифта осуществляется поиск и в папке "Windows\Fonts".
Параметр не принемает имя шрифта.

Растровые шрифты

<font Type="Bitmap" Name="CandaraGlow" File="Fonts/candara_regular_14.xml" Default="0" />
File - Имя файла шрифта, включая путь к нему. Для растрового шрифта в этом параметре должен быть указан XML файл описания шрифта.

Для генерации растровых шрифтов рекомендуется использовать программу FontBuilder и сохранять получившийся шрифт в формате GHL. На выходе это программа выдаст два файла: само изображение символов шрифта и XML файл описания. Файл изображения при необходимости можно обработать в графическом редакторе.

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

<char offset="-2 14" rect="26 122 14 17" advance="9" id="" undefined="Yes" />

Изображения

<image Name="DefaultSkin" File="Default\Default.png" TextureFlags="1 | 8" ImageFlags="0" />
Рассмотрим их общие параметры:
Name - Имя изображения. Это имя нужно будет указать в шаблоне, в котором вы хотите его использовать.
File - Имя файла изображения, включая путь к нему. Путь может указываться как относительно XML файла, так и относительно рабочей папки программы.
TextureFlags - Текстурные флаги. Зависят от используемого движка: Blitz3D или Xors3D. Значения могут совмещаться, например: "1 | 2 | 8". По умолчанию: "1 | 8".
ImageFlags - Флаг изображения FastImage. По умолчанию: "0".

Загрузка дополнительных файлов

<load File="Default/Window.xml" />
Вы полняет загрузку дополнительного файла шаблонов:
File - Имя файла шаблонов, включая путь к нему.

Шаблоны элементов

Шаблону элемента указывается только один атрибут - имя шаблона:

<template Name="Window" />
Name - Имя шаблона.
Имя шаблона чувствительно к регистру.

Для каждого элемента задано имя шаблона по умолчанию равное имени этого элемента. Т.е. для элемента "Window" задан шаблон по умолчанию - "Window". Исключение составляет лишь ScrollBar, ему задано два шаблона по умолчанию: ScrollBarH и ScrollBarV - для горизонтального и вертикального вариантов соответственно. Все эти шаблоны должны быть загружены перед использованием GUI, либо можно изменить имена шаблонов по умолчанию, на те, которые присутвуют среди загруженных.

Строение шаблона

Шаблон элемента представляет из себя дерево (т.е. иерархическую структуру) примитивов. Для того чтобы вид элемента менялся, реагируя на различные действия, каждому примитиву указывается состояние, при котором этот примитив выводится на экран. Если состояние, указанное примитиву, не соответствует состоянию элемента, то этот примитив и все его дочерние элементы не выводятся.

Примитивы бывают разных типов, и кроме всего прочего могут являться зонами, т.е. областью, реагирующей на курсор мыши. Так же видимость (т.е. будет примитив выводиться на экран или нет) может зависеть не только от состояния элемента, но и от состояния таких зон (как своей зоны, так и зоны любого другого примитива в этом шаблоне). Для этого надо указать зависимость примитива от зоны и тогда (при соотвествующем состоянии элемента) если курсор мыши находится внутри указанной зоны, то примитив выводится, иначе - нет.

Типы примитивов

Примитивы бывают следующих типов:

  • Dummy - Пустышка, т.е. не выводится на экран. Используется для группировки примитивов или в качестве невидимой зоны.
  • Rect - Прямоугольник.
  • Text - Используется для вывода текста элементом.
  • Icon - Используется для вывода иконки.
  • Texture - Прямоугольник выводящий на экран часть текстуры.
  • Texture_3 - Тоже что "Texture", но в отличие от него этот прямоугольник состоит из трех секций расположеных горизонтально. Крайние секции фиксированной ширины, а центральная занимает все оставшееся место.
  • Texture_3v - Тоже что "Texture_3", но секции расположены вертикально.
  • Texture_9 - Прямоугольник выводящий на экран часть текстуры и состоящий из девяти секций. Секции расположены сеткой 3х3. Четыре угловых секции имеют фиксированный размер, горизонтальный средний ряд растягивается/сжимается по высоте, а вертикальный средний ряд - по ширине. Таким образом центральная секция не имеет фиксированного размера.

Базовые параметры примитивов

<primitive Name="Body" Type="Rect" Zone="None" Width="60%" Height="40px" Align="Left Top" Margin="3 6 4 5" Collision="0" />
Name - Имя примитива. Может использоваться для упрощения ориентации в шаблоне, как человека, так и GUI. Элементы GUI могут использовать примитивы для своих нужд, для этого требуются примитивы с определенными именами. Например, все элементы GUI используют примтив с именем "Caption" для вывода текста, если его нет, то текст отображаться не будет. Подробнее о том какие элементы используют специальные примитивы смотри ниже. По умолчанию отсутствует.
Type - Тип примитива. Допустимые значения описаны выше. По умолчанию Rect.
Zone - Тип зоны: Rect (прямоугольник), Oval (Овал), None (выключена). Зона, вне зависимости от формы, вписывается в размеры примитива. По умолчанию None.
Width - Ширина примитива. Может быть задана в пикселах или процентах от ширины родительского примитива. Если указан 0 - примитив занимает все доступное место за вычетом отступов. Если указано -1 - размер примитива определяется по содержимому, т.е. по размерам дочерних примитивов. Например сли размер дочернего примитива фиксирован и равен 40px, а отступы слева и справа по 5px, то размер этого примитива будет равен 50px. Если ни у одного из дочерних примитивов нет фиксированых размеров или отступов, то размер этого примитива будет равен нулю. Исключением являются примитивы Icon и Text. Их размер определяется по размеру иконки и текста соответственно. В итоге будет принят наибольший размер расчитаный обоими способами. По умолчанию 0.
Height - Высота примитива. Может быть задана в пикселах или процентах от высоты родительского примитива. Если указан 0 - примитив занимает все доступное место за вычетом отступов. Если указано -1 - размер примитива определяется по содержимому (подробности в описании параметра Width).По умолчанию 0.
Align - Выравнивание примитива по горизонтали и вертикали. Допустимые значения: LeftTopRightBottomCenter. Можно указывать выравнивание в обоих направления сразу или только в одном. Если указано только одно значение Center, то оно будет применено к обои направлением, поэтому если центрировать необходимо только в одном направлении, то обязательно указывайте выравнивание по второму, чтобы было ясно к чему оносится центрирование. По умолчанию Left Top.
Margin - Отступы примитива от краев родительского примитива. Допускается отрицательное значение. Отступы задаются как в CSS в следующем порядке: Top Right Bottom Left. Указывать все четыре пораметра не обязателньо. В случае если параметров меньше, значения распределяться так:
  • 3 параметра: [Top] [Right & Left] [Bottom]
  • 2 параметра: [Top & Bottom] [Right & Left]
  • 1 параметра: [All]
По умолчанию 0.
Collision - Колизии с соседними примитивами в пределах одного родительского примитива. Допустимые значения: 0 (отключены), 1 (по горизонтали), 2 (по вертикали). По умолчанию 0.

Базовые вложенные параметры

<primitive>

<state .../>

<color .../>

<default .../>

<dependzone .../>

 
</primitive>

Состояния

<primitive>

<state Type="Exact" Positive="Active" />

<state Type="Partial" Positive="Active | Pressed" Negative="Locked | Checked" />

<state Type="PartialALO" Positive="Active | Pressed" Negative="Locked | Checked" />

 
</primitive>
Type - Способ которым задано состояние. Их может быть 3: ExactPartialPartialALO.
Positive - Включенные флаги состояний.
Negative - Выключенные флаги состояний.

Состояния могут быть заданы тремя способами.

  • Exact, предполагает, что все флаги указанные в параметре Positive должны быть включены у элемента, а все остальные - выключены.
  • Partial: все флаги указанные в параметре Positive должны быть включены, а указанные в Negative - выключены. Не указанные флаги не учитываются.
  • PartialALO: по крайней мере один из флагов указанных в параметре Positive должен быть включен, а все флаги указанные в Negative - выключены. Не указанные флаги не учитываются.

Если комбинация флагов и условий совпадает - примитив будет выводиться, иначе он и все его дочерние примитивы выводиться не будут.

Цвет

<primitive>

<color AllCorners="200 100 32 255" />

<color TopLeft="#AARRGGBB" TopRight="#AARRGGBB" BottomLeft="#AARRGGBB" BottomRight="#AARRGGBB" />

 
</primitive>
AllCorners - Монотонный цвет для всего примитива. По умолчанию #FFFFFFFF.
TopLeft - Цвет левого верхнего угла. По умолчанию #FFFFFFFF.
TopRight - Цвет правого верхнего угла. По умолчанию #FFFFFFFF.
BottomLeft - Цвет левого нижнего угла. По умолчанию #FFFFFFFF.
BottomRight - Цвет правого нижнего угла. По умолчанию #FFFFFFFF.

Цвет может быть задан двумя способами: монотонный для всего примитива (первый случай) или градиентный, отдельно для каждого угла. В всех случаях значения могут быть указаны в двух форматах:

  • В десятичном: значения от 0 до 255 указываются через пробел в порядке: Красный Зеленый Синий Прозрачность
  • В шестнадцатиричном: Прозрачность Красный Зеленый Синий.

Параметры по умолчанию

<primitive>

<default Icon="IconName" ChildTemplate="TplName" ChildIcon="IconName" />
 
</primitive>
Icon - Имя иконки по умолчанию. (Для примитива типа "Icon")
ChildTemplate - Имя шаблона дочернего элемента. (Для примитивов определяющих положение дочернего элемента)
ChildIcon - Имя иконки по умолчанию для дочернего элемента. Иконка присваивается примитиву с именем "Icon". (Для примитивов определяющих положение дочернего элемента)

Определяющая область

<primitive>

<dependzone Name="zoneName" State="active" />
 
</primitive>
Name - Имя области, от которой будет зависеть видимость этого примитива.
State - Состояние области, при котором примитив будет виден. По умолчанию active

Примитив "Rect"

<primitive Type="Rect">

<rect Fill="Yes" />
 
</primitive>
Fill - Заливка. Yes - заполнить прямоугольник, No - оставить только рамку. По умолчанию Yes.

Примитив "Text"

Text - Этот примитив выводит назначенный ему текст. В шаблоне может несколько примитивов с этим типом и с разными именами. Установить им текст можно с помощью функции SetText( %Text% , %PrimitiveName% ). Таким образом всем примититивам с именем %PrimitiveName% будет присвоен текст %Text%. Так же для этого примитива доступно автоопределение размера по содержимому (т.е. тексту). Подробнее см. параметр WIdth.

<primitive Type="Text">

<text Align="Left Top" Font="CyrilicOld_18" Angle="0" LetterSpacing="0" RowSpacing="0" />
 
</primitive>
Align - Выравнивание примитива по горизонтали и вертикали. Допустимые значения: LeftTopRightBottomCenterJustify. Можно указывать выравнивание в обоих направления сразу или только в одном. Если указано только одно значение Center, то оно будет применено к обоим направлением, поэтому если центрировать необходимо только в одном направлении, то обязательно указывайте выравнивание по второму, чтобы было ясно к чему оносится центрирование. По умолчанию Left Top.
Font - Имя шрифта для текста. Если имя не указано - используется шрифт поумолчанию.
Angle - Угол поворота кратный 90 градусам, т.е. 0, 90, 180, 270. По умолчанию 0.
LetterSpacing - Расстояние между символами. Указанное расстояние прибавляется к существующему. По умолчанию 0.
RowSpacing - Расстояние между строками (базовыми линиями строк). Может быть указано в пикселах или долях (указать символ # на конце). Во втором случае значение умножается на стандартное расстояние для используемого шрифта. Если равно 0 - используется стандартное значение. По умолчанию 0.
Текст выводится перед дочерними примитивами.

Примитив "Icon"

Icon - Этот примитив выводит назначенную ему иконку. В шаблоне может несколько примитивов с этим типом и с разными именами. Установить им иконку (или сменить ту что указана по умолчанию) можно с помощью функции SetIcon( %IconName% , %PrimitiveName% ). Таким образом всем примититивам с именем %PrimitiveName% будет присвоена иконка с именекм %IconName%.

<primitive Type="Icon">

<default Icon="IconName" />
 
</primitive>
Icon - Иконка по умолчанию для этого примитива.
Иконка выводится после дочерних примитивов.

Примитив "Texture"

Texture - Прямоугольник выводящий на экран часть текстуры. Выводимая часть текстуры будет растянута по размеру примитива.

<primitive Type="Texture">

<texture Image="ImageName" XYWH="0 0 64 32" UV="0 0 1 1" />
 
</primitive>
Image - Имя изображения.
Текстурные координаты отображаемой области можно задать двумя способами:
1. XYWH - Координаты и размеры в пикселах. Как следует из названия первые два значения - координаты X и Y, вторые два - ширина и высота. По умолчанию 0 0 0 0.
2. UV - Текстурные координаты в долях (от 0 до 1). Первые два значения - координаты X & Y левого верхнего угла отображаемого прямоугольника, вторые два значения - координаты нижнего праваого угла.

Примитив "Texture_3"

Примитив Texture_3 - тоже что Texture, но в отличие от него этот прямоугольник состоит из трех секций расположеных горизонтально. Крайние секции фиксированной ширины, а центральная занимает все оставшееся место.

<primitive Type="Texture_3">

<texture
Image="ImageName" Border="5 5"

ARGB_All="#AARRGGBB"

TexX_All="0 5 15 20"
TexY_All="0 20"

TexU_All="0 0.2 0.8 1"
TexV_All="0 1"

ARGB_1="#AARRGGBB #AARRGGBB #AARRGGBB #AARRGGBB"
ARGB_2="#AARRGGBB #AARRGGBB #AARRGGBB #AARRGGBB"

TexX_1="0 5 15 20"
TexX_2="0 5 15 20"
TexY_1="0 0 0 0"
TexY_2="20 20 20 20"

TexU_1="0 0.2 0.8 1"
TexU_2="0 0.2 0.8 1"
TexV_1="0 0 0 0"
TexV_2="1 1 1 1"
/>
 
</primitive>
Image - Имя изображения.
Border - Ширина боковых секций. Принимает два значения: первое для левой секции, второе для правой. Если указано одно занчение, значит присваивается обоим секциям. По умолчанию 5.

Цвет указывается только в 16-ричном формате, его можно задать двумя способами:
1.
ARGB_All - Указывает цвет для всех вершин. По умолчанию #FFFFFFFF.
2.
ARGB_1 - Указывает цвет для 4х вершин верхнего ряда (с 0-й по 3-ую.).
ARGB_2 - Указывает цвет для 4х вершин нижнего ряда (с 4-й по 7-ую.).

Текстурные координаты вершин можно задать четырьмя способами:
1. В пикселах для нескольких вершин одновременно:
TexX_All - Указывает текстурные координаты в пикселах по оси X для четырех столбцов вершин. 4 значения задают координаты для вершин в таком порядке: [0 & 4] [1 & 5] [2 & 6] [3 & 7].
TexY_All - Указывает текстурные координаты в пикселах по оси Y для двух рядов вершин. 2 значения задают координаты для вершин в таком порядке: [0 & 1 & 2 & 3] [4 & 5 & 6 & 7].
2. В пикселах для каждой вершины отдельно:
TexX_1 - Указывает текстурные координаты в пикселах по оси X для 4х вершин верхнего ряда (с 0-й по 3-ую.).
TexX_2 - Указывает текстурные координаты в пикселах по оси X для 4х вершин нижнего ряда (с 4-й по 7-ую.).
TexY_1 - Указывает текстурные координаты в пикселах по оси Y для 4х вершин верхнего ряда (с 0-й по 3-ую.).
TexY_2 - Указывает текстурные координаты в пикселах по оси Y для 4х вершин нижнего ряда (с 4-й по 7-ую.).
3. В долях для нескольких вершин одновременно:
TexU_All - Указывает текстурные координаты в долях по оси X для четырех столбцов вершин. 4 значения задают координаты для вершин в таком порядке: [0 & 4] [1 & 5] [2 & 6] [3 & 7].
TexV_All - Указывает текстурные координаты в долях по оси Y для двух рядов вершин. 2 значения задают координаты для вершин в таком порядке: [0 & 1 & 2 & 3] [4 & 5 & 6 & 7].
4. В долях для каждой вершины отдельно:
TexU_1 - Указывает текстурные координаты в долях по оси X для 4х вершин верхнего ряда (с 0-й по 3-ую.).
TexU_2 - Указывает текстурные координаты в долях по оси X для 4х вершин нижнего ряда (с 4-й по 7-ую.).
TexV_1 - Указывает текстурные координаты в долях по оси Y для 4х вершин верхнего ряда (с 0-й по 3-ую.).
TexV_2 - Указывает текстурные координаты в долях по оси Y для 4х вершин нижнего ряда (с 4-й по 7-ую.).

Примитив "Texture_3v"

Примитив Texture_3v - Тоже что "Texture_3v", но секции расположены вертикально.

<primitive Type="Texture_3">

<texture
Image="ImageName" Border="5 5"

ARGB_All="#AARRGGBB"

TexX_All="0 20"
TexY_All="0 5 15 20"

TexU_All="0 1"
TexV_All="0 0.2 0.8 1"

ARGB_1="#AARRGGBB #AARRGGBB"
ARGB_2="#AARRGGBB #AARRGGBB"
ARGB_3="#AARRGGBB #AARRGGBB"
ARGB_4="#AARRGGBB #AARRGGBB"

TexX_1="0 20"
TexX_2="0 20"
TexX_3="0 20"
TexX_4="0 20"
TexY_1="0 0"
TexY_2="5 5"
TexY_3="15 15"
TexY_4="20 20"

TexU_1="0 1"
TexU_2="0 1"
TexU_3="0 1"
TexU_4="0 1"
TexV_1="0 0"
TexV_2="0.2 0.2"
TexV_3="0.8 0.8"
TexV_4="1 1"
/>
 
</primitive>
Image - Имя изображения.
Border - Ширина боковых секций. Принимает два значения: первое для левой секции, второе для правой. Если указано одно занчение, значит присваивается обоим секциям. По умолчанию 5.

Цвет указывается только в 16-ричном формате, его можно задать двумя способами:
1.
ARGB_All - Указывает цвет для всех вершин. По умолчанию #FFFFFFFF.
2.
ARGB_1 - Указывает цвет для 2х вершин первого ряда (0 и 1).
ARGB_2 - Указывает цвет для 2х вершин второго ряда (2 и 3).
ARGB_3 - Указывает цвет для 2х вершин третьего ряда (4 и 5).
ARGB_4 - Указывает цвет для 2х вершин четвертого ряда (6 и 7).

Текстурные координаты вершин можно задать четырьмя способами:
1. В пикселах для нескольких вершин одновременно:
TexX_All - Указывает текстурные координаты в пикселах по оси X для двух столбцов вершин. 2 значения задают координаты для вершин в таком порядке: [0 & 2 & 4 & 6] [1 & 3 & 5 & 7].
TexY_All - Указывает текстурные координаты в пикселах по оси Y для четрыех рядов вершин. 4 значения задают координаты для вершин в таком порядке: [0 & 1] [2 & 3] [4 & 5] [6 & 7].
2. В пикселах для каждой вершины отдельно:
TexX_1 - Указывает текстурные координаты в пикселах по оси X для 2х вершин первого ряда (0 и 1).
TexX_2 - Указывает текстурные координаты в пикселах по оси X для 2х вершин второго ряда (2 и 3).
TexX_3 - Указывает текстурные координаты в пикселах по оси X для 2х вершин третьего ряда (4 и 5).
TexX_4 - Указывает текстурные координаты в пикселах по оси X для 2х вершин четвертого ряда (6 и 7).
TexY_1 - Указывает текстурные координаты в пикселах по оси Y для 2х вершин первого ряда (0 и 1).
TexY_2 - Указывает текстурные координаты в пикселах по оси Y для 2х вершин второго ряда (2 и 3).
TexY_3 - Указывает текстурные координаты в пикселах по оси Y для 2х вершин третьего ряда (4 и 5).
TexY_4 - Указывает текстурные координаты в пикселах по оси Y для 2х вершин четвертого ряда (6 и 7).
3. В долях для нескольких вершин одновременно:
TexU_All - Указывает текстурные координаты в долях по оси X для двух столбцов вершин. 2 значения задают координаты для вершин в таком порядке: [0 & 2 & 4 & 6] [1 & 3 & 5 & 7].
TexV_All - Указывает текстурные координаты в долях по оси Y для четрыех рядов вершин. 4 значения задают координаты для вершин в таком порядке: [0 & 1] [2 & 3] [4 & 5] [6 & 7].
4. В долях для каждой вершины отдельно:
TexU_1 - Указывает текстурные координаты в долях по оси X для 2х вершин первого ряда (0 и 1).
TexU_2 - Указывает текстурные координаты в долях по оси X для 2х вершин второго ряда (2 и 3).
TexU_3 - Указывает текстурные координаты в долях по оси X для 2х вершин третьего ряда (4 и 5).
TexU_4 - Указывает текстурные координаты в долях по оси X для 2х вершин четвертого ряда (6 и 7).
TexV_1 - Указывает текстурные координаты в долях по оси Y для 2х вершин первого ряда (0 и 1).
TexV_2 - Указывает текстурные координаты в долях по оси Y для 2х вершин второго ряда (2 и 3).
TexV_3 - Указывает текстурные координаты в долях по оси Y для 2х вершин третьего ряда (4 и 5).
TexV_4 - Указывает текстурные координаты в долях по оси Y для 2х вершин четвертого ряда (6 и 7).

Примитив "Texture_9"

Примитив Texture_9 - Прямоугольник выводящий на экран часть текстуры и состоящий из девяти секций. Секции расположены сеткой 3х3. Четыре угловых секции имеют фиксированный размер, горизонтальный средний ряд растягивается/сжимается по высоте, а вертикальный средний ряд - по ширине. Таким образом центральная секция не имеет фиксированного размера.

<primitive Type="Texture_9">

<texture
Image="ImageName" Border="5 5 5 5"

ARGB_All="#AARRGGBB"

TexX_All="0 5 15 20"
TexY_All="0 5 15 20"

TexU_All="0 0.2 0.8 1"
TexV_All="0 0.2 0.8 1"

ARGB_1="#AARRGGBB #AARRGGBB #AARRGGBB #AARRGGBB"
ARGB_2="#AARRGGBB #AARRGGBB #AARRGGBB #AARRGGBB"
ARGB_3="#AARRGGBB #AARRGGBB #AARRGGBB #AARRGGBB"
ARGB_4="#AARRGGBB #AARRGGBB #AARRGGBB #AARRGGBB"

TexX_1="0 5 15 20"
TexX_2="0 5 15 20"
TexX_3="0 5 15 20"
TexX_4="0 5 15 20"
TexY_1="0 0 0 0"
TexY_2="5 5 5 5"
TexY_3="15 15 15 15"
TexY_4="20 20 20 20"

TexU_1="0 0.2 0.8 1"
TexU_2="0 0.2 0.8 1"
TexU_3="0 0.2 0.8 1"
TexU_4="0 0.2 0.8 1"
TexV_1="0 0 0 0"
TexV_2="0.2 0.2 0.2 0.2"
TexV_3="0.8 0.8 0.8 0.8"
TexV_4="1 1 1 1"
/>
 
</primitive>
Image - Имя изображения.
Border -Ширина боковых секций. Принимает четрые значения аналогично параметру Margin: Top Right Bottom Left.
  • Top - Высота верхнего ряда
  • Bottom - Высота нижнего ряда
  • Right - Ширина правого столбца
  • Left - Ширина левого столбца
Указывать все четыре пораметра не обязателньо. В случае если параметров меньше, значения распределяться так:
  • 3 параметра: [Top] [Right & Left] [Bottom]
  • 2 параметра: [Top & Bottom] [Right & Left]
  • 1 параметра: [All]
По умолчанию 5.

Цвет указывается только в 16-ричном формате, его можно задать двумя способами:
1.
ARGB_All - Указывает цвет для всех вершин. По умолчанию #FFFFFFFF.
2.
ARGB_1 - Указывает цвет для 4х вершин первого ряда (с 0-й по 3-ю).
ARGB_2 - Указывает цвет для 4х вершин второго ряда (с 4-й по 7-ю).
ARGB_3 - Указывает цвет для 4х вершин третьего ряда (с 8-й по 11-ю).
ARGB_4 - Указывает цвет для 4х вершин четвертого ряда (с 12-й по 15-ю).

Текстурные координаты вершин можно задать четырьмя способами:
1. В пикселах для нескольких вершин одновременно:
TexX_All - Указывает текстурные координаты в пикселах по оси X для четрыех столбцов вершин. 4 значения задают координаты для вершин в таком порядке: [0 & 4 & 8 & 12] [1 & 5 & 9 & 13] [2 & 6 & 10 & 14] [3 & 7 & 11 & 15].
TexY_All - Указывает текстурные координаты в пикселах по оси Y для четрыех рядов вершин. 4 значения задают координаты для вершин в таком порядке: [0 & 1 & 2 & 3] [4 & 5 & 6 & 7] [8 & 9 & 10 & 11] [12 & 13 & 14 & 15].
2. В пикселах для каждой вершины отдельно:
TexX_1 - Указывает текстурные координаты в пикселах по оси X для 4х вершин первого ряда (с 0-й по 3-ю).
TexX_2 - Указывает текстурные координаты в пикселах по оси X для 4х вершин второго ряда (с 4-й по 7-ю).
TexX_3 - Указывает текстурные координаты в пикселах по оси X для 4х вершин третьего ряда (с 8-й по 11-ю).
TexX_4 - Указывает текстурные координаты в пикселах по оси X для 4х вершин четвертого ряда (с 12-й по 15-ю).
TexY_1 - Указывает текстурные координаты в пикселах по оси Y для 4х вершин первого ряда (с 0-й по 3-ю).
TexY_2 - Указывает текстурные координаты в пикселах по оси Y для 4х вершин второго ряда (с 4-й по 7-ю).
TexY_3 - Указывает текстурные координаты в пикселах по оси Y для 4х вершин третьего ряда (с 8-й по 11-ю).
TexY_4 - Указывает текстурные координаты в пикселах по оси Y для 4х вершин четвертого ряда (с 12-й по 15-ю).
3. В долях для нескольких вершин одновременно:
TexU_All - Указывает текстурные координаты в долях по оси X для четрыех столбцов вершин. 4 значения задают координаты для вершин в таком порядке: [0 & 4 & 8 & 12] [1 & 5 & 9 & 13] [2 & 6 & 10 & 14] [3 & 7 & 11 & 15].
TexV_All - Указывает текстурные координаты в долях по оси Y для четрыех рядов вершин. 4 значения задают координаты для вершин в таком порядке: [0 & 1 & 2 & 3] [4 & 5 & 6 & 7] [8 & 9 & 10 & 11] [12 & 13 & 14 & 15].
4. В долях для каждой вершины отдельно:
TexU_1 - Указывает текстурные координаты в долях по оси X для 4х вершин первого ряда (с 0-й по 3-ю).
TexU_2 - Указывает текстурные координаты в долях по оси X для 4х вершин второго ряда (с 4-й по 7-ю).
TexU_3 - Указывает текстурные координаты в долях по оси X для 4х вершин третьего ряда (с 8-й по 11-ю).
TexU_4 - Указывает текстурные координаты в долях по оси X для 4х вершин четвертого ряда (с 12-й по 15-ю).
TexV_1 - Указывает текстурные координаты в долях по оси Y для 4х вершин первого ряда (с 0-й по 3-ю).
TexV_2 - Указывает текстурные координаты в долях по оси Y для 4х вершин второго ряда (с 4-й по 7-ю).
TexV_3 - Указывает текстурные координаты в долях по оси Y для 4х вершин третьего ряда (с 8-й по 11-ю).
TexV_4 - Указывает текстурные координаты в долях по оси Y для 4х вершин четвертого ряда (с 12-й по 15-ю).

Комментарии