Как вывести русские буквы на экран opengl
Я пишу игру "Балда" с графическим интерфейсом на языке си с opengl. Столкнулся с проблемой выводом кириллических символов. Что я только не пробовал, и glif(ы) использовал, и текстуры выводил, ничего не получилось. Может кто-то подсказать в каком направление хотя-бы двигаться.
Вот рабочий код для латинских символов.
#define _CRT_SECURE_NO_WARNINGS
#include<glut.h>
#include <stdio.h>
#include <stdlib.h>
char gridLetters[5][5] = {
{'0', '0', '0', '0', '0'},
{'0', '0', '0', '0', '0'},
{'A', 'S', 'D', 'A', 'S'},
{'0', '0', '0', '0', '0'},
{'0', '0', '0', '0', '0'}
};
void drawLetters() {
glColor3f(0, 0, 0);
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (gridLetters[i][j] == '0') {
continue;
}
glRasterPos2f(-0.5 + j * 0.2 + 0.08, 0.5 - i * 0.2 - 0.12);
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, gridLetters[i][j]);
}
}
}
void draw() {
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(5);
glLineWidth(1);
glColor3f(0, 0, 0);
glBegin(GL_LINES);
// Vertical lines
for (float x = -0.5; x <= 0.5; x += 0.2) {
glVertex2f(x, 0.5);
glVertex2f(x, -0.5);
}
// Horizontal lines
for (float y = -0.5; y <= 0.5; y += 0.2) {
glVertex2f(-0.5, y);
glVertex2f(0.5, y);
}
glEnd();
drawLetters();
glFlush();
}
int main(int C, char* V[]) {
glutInit(&C, V);
glutInitWindowPosition(250, 100);
glutInitWindowSize(1200, 700);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Балда");
glClearColor(1, 1, 1, 1);
glutDisplayFunc(draw);
glutMainLoop();
return 0;
}