- От 0 до 9 в упрощенном файле шрифтов TrueType (times_font_partial.txt) ),
Прочитайте общую информацию о A-Z и a-z. - Добавьте графический интерфейс
Когда я получаю текстовый ввод от ImGui, шрифт соответствующих символов отображается на экране - Измените цвет шрифта, добавив цветовую палитру
[*]Если символ, введенный в поле 2, представляет собой число от 0 до 9, постройте контур символа в левом окне
[*]Если символы, введенные в поле 2, представляют собой алфавиты между a и z и A и Z, нарисуйте соответствующий алфавит
#include "imgui/imgui.h"
#include "imgui/imgui_impl_glfw.h"
#include "imgui/imgui_impl_opengl3.h"
#include "InitShader.h"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
struct Outline {
std::vector points;
};
class FontLoader {
public:
std::map outlines;
float fontScale = 1.0f;
void LoadFont(const std::string& filename) {
std::ifstream file(filename);
if (!file.is_open()) {
std::cerr index;
std::getline(file, line);
std::stringstream charIndexStream(line.substr(9));
charIndexStream >> charIndex;
char ch = static_cast(charIndex);
std::getline(file, line);
std::stringstream bboxStream(line.substr(5));
bboxStream >> bbox[0] >> bbox[1] >> bbox[2] >> bbox[3];
std::getline(file, line);
std::stringstream numContoursStream(line.substr(12));
numContoursStream >> numContours;
Outline outline;
for (int i = 0; i < numContours; i++) {
std::getline(file, line);
if (line.find("Contour") == 0) {
std::stringstream ss(line.substr(8));
int contourIndex, numPoints;
ss >> contourIndex >> numPoints;
for (int j = 0; j < numPoints; j++) {
std::getline(file, line);
char type;
float x, y;
std::stringstream pointStream(line);
pointStream >> type;
if (type == 'L') {
pointStream >> x >> y;
outline.points.push_back(glm::vec2(x, y));
}
}
}
}
outlines[ch] = outline;
}
}
file.close();
}
void SetFontScale(float scale) {
fontScale = scale;
}
Outline GetOutline(char ch) {
return outlines.count(ch) ? outlines[ch] : Outline();
}
};
// Functions for debugging user-populated values
void DebugImGuiInput(const char* inputText, glm::vec3 fontColor, float fontSize) {
std::cout
Подробнее здесь: https://stackoverflow.com/questions/791 ... pengl-code
Мобильная версия