Почему не рендерится текст в OpenGL/SFML C++
Пытаюсь создать кастомный текст на основе SFML (причем нужно, чтобы все выводилось именно через OpenGL, а не SFML RenderWindow), и столкнулся с проблемой: Все запускается, но текста нет.
Код:
#pragma once
#include <SFML/Graphics.hpp>
class wtext {
private:
sf::Image image;
sf::Font font;
float texture_coords[8] = { 0, 0, 1, 0, 1, 1, 0, 1 };
float vertexes_text[12] = { -1, -1, 0, 1, -1, 0, 1, 1, 0, -1, 1, 0 };
public:
wtext(std::string _fontPath, int _characterSize) {
font.loadFromFile(_fontPath);
sf::Texture texture = font.getTexture(_characterSize);
image = texture.copyToImage();
}
void Render(uint32_t _character) {
sf::Glyph Glyph = font.getGlyph(48, 32, false);
sf::Texture GlyphTexture;
GlyphTexture.loadFromImage(image, Glyph.textureRect);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindTexture(GL_TEXTURE_2D, GlyphTexture.getNativeHandle());
glColor3f(1, 1, 1);
glPushMatrix();
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, vertexes_text);
glTexCoordPointer(2, GL_FLOAT, 0, texture_coords);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
glPopMatrix();
glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);
}
};
Если что проблема именно в этом коде, все остальное (обычные текстуры) в этом же проекте рендерются.