【发布时间】:2023-12-09 21:39:01
【问题描述】:
我想在具有给定 Alpha 通道的 SDL_Surface 上呈现抗锯齿字符串。
我发现可以渲染:
- 具有字符串渲染方法的
Blended变体的抗锯齿字符串(即:TTR_RenderText_Blended)。但是我不能让它透明。 - 使用
Shaded方法的抗锯齿字符串。但是有一个坚实的背景。背景和绘制的字符串可以设为透明,但纯色背景仍然存在。也不可能给它传递一个透明的背景颜色。 - 一个非抗锯齿字符串,我可以使用
Solid变体使其透明。但它没有抗锯齿。
谢谢
【问题讨论】:
-
你有没有让这个工作?
-
@BruceConnor:不。这确实很可悲。我所做的是更改为 OpenGL 并使用位图字体。这需要做很多工作,但当我终于让它工作时,我真的很满意。希望您准备好花几个小时的编程来做同样的事情。
-
您好,我遇到了和你一样的问题,还没有解决。也许你现在已经有了一个想法,我在那里问了一个问题:*.com/questions/12700085。就我而言,我现在不能使用位图字体。
-
@ForceMagic:不,我从来没有解决过。我转向了真正的东西,它与 GPU 一起工作,而不是 CPU。学习OpenGL,它更强大。一旦你知道如何使用它,你会很高兴你学会了。
-
@MartijnCourteaux 感谢您的建议,我目前正在使用这两种方法,我使用一些 SDL 通过鼠标输入和类似的东西让我的生活更轻松,但我确实使用 OpenGL 来绘制我的大部分内容屏幕上的纹理和瓷砖系统。但是,我认为 SDL_ttf 可以在文本绘图部分为我节省一些时间。我基本上是在尝试使用 OpenGL 从 SDL_ttf 绘制生成的纹理。不过,两者之间的混合似乎并不是很有效。