История изменений
Исправление svyatozar, (текущая версия) :
С текстом всё просто. Шрифт хранится битмапом (fixed6x13koi.h).
255 символов, каждый символ 16 байт (можно и 13, но если сделать 16, то как раз один символ помещается в uvec4).
При отрисовке пикселя просто нужный бит выискивается из массива.
Это всё в шейдере shaders/shader.frag, шрифт подаётся униформ параметром
uvec4 fontdata[256];
Символ отрисовывается функцией print_koi():
void print_koi(uint letter, uint col, uint row, vec4 color) {
uint word = ubo.fontdata[letter][row / 4];
uint bytebit = 1 << (7 - col);
uint wordbit = bytebit << (8 * (row % 4));
uint val = word & wordbit;
if(val != 0) {
outColor = color;
}
}
Исправление svyatozar, :
С текстом всё просто. Шрифт хранится битмапом (fixed6x13koi.h).
255 символов, каждый символ 16 байт (можно и 13, но если сделать 16, то как раз один символ помещается в uvec4).
При отрисовке пикселя просто нужный бит выискивается из массива.
Это всё в шейдере shaders/shader.frag, шрифт подаётся униформ параметром
uvec4 fontdata[256];
Символ отрисовывается функцией print_koi():
void print_koi(uint letter, uint col, uint row, vec4 color) {
uint word = ubo.fontdata[letter][row / 4];
uint bytebit = 1 << (7 - col);
uint wordbit = bytebit << (8 * (row % 4));
uint val = word & wordbit;
if(val != 0) {
outColor = color;
}
}
Исправление svyatozar, :
С текстом всё просто. Шрифт хранится битмапом (fixed6x13koi.h).
255 символов, каждый символ 16 байт (можно и 13, но если сделать 16, то как раз один символ помещается в uvec4).
При отрисовке пикселя просто нужный бит выискивается из массива.
Это всё в шейдере shaders/shader.frag, шрифт подаётся униформ параметром uvec4 fontdata[256];
Символ отрисовывается функцией print_koi():
void print_koi(uint letter, uint col, uint row, vec4 color) { uint word = ubo.fontdata[letter][row / 4]; uint bytebit = 1 << (7 - col); uint wordbit = bytebit << (8 * (row % 4)); uint val = word & wordbit;
if(val != 0) {
outColor = color;
}
}
Исходная версия svyatozar, :
С текстом всё просто. Шрифт хранится битмапом (fixed6x13koi.h).
255 символов, каждый символ 16 байт.
При отрисовке пикселя просто нужный бит выискивается из массива.