Compare commits

...

1 Commits

Author SHA1 Message Date
222dd346fb Fix memleak 2024-05-27 20:48:22 -04:00

View File

@@ -11,7 +11,6 @@
GLuint program;
GLuint texture;
namespace JGL
{
@@ -152,17 +151,17 @@ namespace JGL
FT_Set_Pixel_Sizes(face, 0, size);
const char* c;
for (c = text.c_str(); *c; c++)
GLuint textures[text.size()];
for (int i = 0; i < text.length(); i++)
{
if (FT_Load_Char(face, *c, FT_LOAD_RENDER))
if (FT_Load_Char(face, text.c_str()[i], FT_LOAD_RENDER))
continue;
FT_GlyphSlot g = face->glyph;
glActiveTexture(GL_TEXTURE0);
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glGenTextures(1, &textures[i]);
glBindTexture(GL_TEXTURE_2D, textures[i]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -200,8 +199,9 @@ namespace JGL
x += (g->advance.x >> 6) * scale;
y += (g->advance.y >> 6) * scale;
}
for (auto& t : textures)
glDeleteTextures(1, &t);
glBindTexture(GL_TEXTURE_2D, 0); // Unbind texture
}
}
@@ -211,7 +211,6 @@ namespace JGL
{
void DrawLine3D(const Color3& color, const Vector3& A, const Vector3& B, float thickness)
{
glBegin(GL_LINES);
glLineWidth(thickness);
glColor3f(color.r/255.f, color.g/255.f, color.b/255.f);
@@ -226,23 +225,24 @@ namespace JGL
float y = pos.y;
float z = pos.z;
GLfloat currentColor[4];
GLuint textures[text.size()];
glGetFloatv(GL_CURRENT_COLOR, currentColor);
glUseProgram(0); // Fixed-function pipeline.
glColor4f(color.r, color.g, color.b, 1.0f);
FT_Set_Pixel_Sizes(face, 0, size);
const char* c;
for (c = text.c_str(); *c; c++)
//for (c = text.c_str(); *c; c++)
for (int i = 0; i < text.length(); i++)
{
if (FT_Load_Char(face, *c, FT_LOAD_RENDER))
if (FT_Load_Char(face, text.c_str()[i], FT_LOAD_RENDER))
continue;
FT_GlyphSlot g = face->glyph;
glActiveTexture(GL_TEXTURE0);
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glGenTextures(1, &textures[i]);
glBindTexture(GL_TEXTURE_2D, textures[i]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -283,6 +283,10 @@ namespace JGL
y += (g->advance.y >> 6) * scale;
}
for (auto& t : textures)
glDeleteTextures(1, &t);
glBindTexture(GL_TEXTURE_2D, 0); // Unbind texture
glColor4f(currentColor[0], currentColor[1], currentColor[2], currentColor[3]); //Set draw color back to whatever it was before.
}