c++ - 将 SDL 表面转换为 GL 纹理时出现问题

标签 c++ opengl sdl

我找不到我的错误,为什么没有创建文本?当使用纹理而不是文本时,我什么也得不到或带有彩色点的黑色背景,请帮忙

GLuint texture;
SDL_Surface *text = NULL;
TTF_Font *font = NULL;
SDL_Color color = {0, 0, 0};


font = TTF_OpenFont("../test.ttf", 20);
text = TTF_RenderText_Solid(font, "Hello, SDL !!!", color);

glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, text->w, text->h, 0, GL_RGB, GL_UNSIGNED_BYTE, text->pixels);

SDL_FreeSurface(text);

最佳答案

您可以添加的一件事是指定纹理过滤器,例如

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

关于c++ - 将 SDL 表面转换为 GL 纹理时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27546086/

相关文章:

c++ - 将 For 循环的 i 转换为 QString

c++ - 为什么互斥锁不需要互斥锁(而那个互斥锁需要互斥锁...)

c++ - 无锁pop()中使用引用参数返回值的缺点

c++ - WM_KEYDOWN如何处理不同的按键?

c++ - SDL_Surface 的无效动态表

c++ - 实时更改纹理sdl

java - 将 OpenCV 代码从 C++ 转换为 Java

C++ 将一个字符传递给 glShaderSource

c++ - OpenGL 属性偏移量未按预期工作

c - 使用sdl2-ttf打开系统字体