LINUX.ORG.RU

История изменений

Исправление 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 байт.

При отрисовке пикселя просто нужный бит выискивается из массива.