Если вы используете загрузчики стилусов, вы можете переопределить переменную $spacer
перед импортом стилей. По умолчанию установлено 16 пикселей. При переопределении этой переменной будет пересчитан интервал между каждым элементом, что будет поддерживать постоянный интервал в вашем приложении.
Если вы хотите выполнить что-то еще полностью, вы можете переопределить переменные $spacer-x
, $spacer-y
или $spacers
. Их значения по умолчанию следующие:
$spacer := 16px
$spacer-x := $spacer
$spacer-y := $spacer
$spacers := {
zero: {
x: 0,
y: 0
},
one: {
x: ($spacer-x * .25),
y: ($spacer-y * .25)
},
two: {
x: ($spacer-x * .5),
y: ($spacer-y * .5)
},
three: {
x: $spacer-x,
y: $spacer-y
},
four: {
x: ($spacer-x * 1.5),
y: ($spacer-y * 1.5)
},
five: {
x: ($spacer-x * 3),
y: ($spacer-y * 3)
}
}
( источник ) sup>
Если изменение общих полей компонентов vuetify не является тем, чем вы являетесь после этого вы можете просто определить свои собственные служебные классы, которые выходят за пределы m-5 / p-5.
Ваше описание использования freetype для создания атласа структуры наряду со всей информацией о глифе точно, что я делаю в своем текущем проекте iPhone.
я выполняю во всем парсинге шрифта предварительно обрабатывать шаг (Все в C# в Windows, как это происходит). Сам атлас сгенерирован и содержит только необходимые символы - для сокращения пространства, я также иногда заканчиваю тем, что генерировал больше, чем единственный атлас для хранения размеров структур pow2 и разумного разрешения.
можно легко вытащить информацию о глифе из freetype. Передача, что Вашему приложению наряду со структурами во времени выполнения и затем это довольно тривиально, чтобы просто изменить ультрафиолетовые провода структуры как требуется.
Если это имеет значение, это - то, как я определяю символ глифа в своем небольшом механизме:
struct FontGlyph
{
u32 char_code;
u32 m_x; // base x position on tpage
u32 m_y; // base y position on tpage
u32 m_width; // glyph width
u32 m_height; // glyph height
i32 m_horiBearingX; // Distance to X shift
i32 m_horiBearingY; // Distance to Y shift
u32 m_horiAdvance; // Total Horizontal advance this character requires
u32 m__tpage_index; // Which tpage does this glyph use?
};
я затем сделал, чтобы 'SpriteString' возразил, который ведет себя в значительной степени как любая другая строка, кроме я могу потянуть ее с помощью спрайтов....
я соглашаюсь, что это все могло бы походить на большое задание для довольно тривиальной проблемы, но я нашел, что это дало мне много гибкости и действительно не занимало у этого много времени для реализации, когда я перешел к нему.
Не стесняются отвечать или комментировать, нужны ли Вам какие-либо другие детали. (И удача :)
<час>Ответ на Ваш комментарий, когда я выбежал из комнаты в разделе комментария...
Выезд freetype документация, это в основном дает Вам данные глифа без бездельничания, это просто вытягивает его прямо из шрифта. Что касается самих структур, Вы заставляете freetype представлять каждый глиф и затем управлять этим для создания структуры. Это я делаю как предварительно обрабатывание совершенно отдельного от моего главного приложения.
Вот выборка моего кода инструмента, который делает это: http://pastebin.com/md1c6354
отметьте, хотя, это только когда-либо предназначалось для моих глаз и не для всеобщего использования, так извините факт, это грязно как ад :)
Один способ сделать это путем установки UILabel и затем рендеринга его слоя в структуре. Непрямой маршрут к этому состоял бы в том, чтобы сначала настроить UILabel с текстом, шрифтом, и т.д. и затем использовать следующий код
UIGraphicsBeginImageContext(yourLabel.frame.size);
[yourLabel.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *layerImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
для получения UILabel к UIImage. Вы могли затем использовать initWithImage: конструктор класса Texture2D в проекте CrashLanding преобразовать это к структуре.
Это похоже на initWithImage: в том примере повторно представляет UIImage к растровому контексту и использованию что создать структуру. С небольшой работой Вы могли извлечь соответствующие нормы из того метода и изменить вышеупомянутый код для рендеринга слоя непосредственно в структуре.
Таким образом, Вы получаете хороший Unicode и поддержку шрифта UILabel при создании текста для структуры.
Проверьте демонстрацию аварийной посадки. Класс Texture2D, который обеспечивается, допускает создание структур с текстом и шрифтом. (Надо надеяться, будет лучший ответ, который я любил бы более простой способ нарисовать к представлению opengles)
Я нашел простое решение этого. Вот быстрая функция, которую я записал для него. (Вам будет нужен класс Texture2D.)
- (void) drawText:(NSString*)theString AtX:(float)X Y:(float)Y {
// Use black
glColor4f(0, 0, 0, 1.0);
// Set up texture
Texture2D* statusTexture = [[Texture2D alloc] initWithString:theString dimensions:CGSizeMake(150, 150) alignment:UITextAlignmentLeft fontName:@"Helvetica" fontSize:11];
// Bind texture
glBindTexture(GL_TEXTURE_2D, [statusTexture name]);
// Enable modes needed for drawing
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnableClientState(GL_VERTEX_ARRAY);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
// Draw
[statusTexture drawInRect:CGRectMake(X,Y-1,1,1)];
// Disable modes so they don't interfere with other parts of the program
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_TEXTURE_2D);
glDisable(GL_BLEND);
}
Я полагаю, что входные координаты должны быть в Ваших мировых координатах, но я не уверен, если это правда в целом или если это просто прокладывает себе путь для меня. Вы, возможно, должны были бы играть со смещениями для разбираний в нем.
Спасибо за тот метод. Это сэкономило мне некоторое время.
Была пара вещей, которые я должен был изменить все же. Вызов glBlendFunc должен был быть:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_ALPHA)
И во-вторых, текст, казалось, вовлекал единственную точку. Вызов CGRectMake создает 1x1 прямоугольник, если я не читаю это неправильно.
Используйте библиотеку шрифтов «раздувания»:
http://www.themusingsofalostprogrammer.com/2010/01/how-to-dofont-rendering-in-opengl-on.html
Font font("Verdena");
font.print("Hello World!", x, y, z);
)
Он поставляется с поддержкой Unicode, грузы глифов «по требованию», и даже имеет способ выводить переменные
font.print(x, y, z) << "fps: " << fps;