在 SDL 中,如果重新渲染文本,是否需要释放表面?
如果我使用以下代码...
message = TTF_RenderText_Solid( font, "Lorem Ipsum", textColor );
在执行此操作之前我是否需要释放消息
message = TTF_RenderText_Solid( font, "Lorem Ipsum part 2", textColor );
,即它是否为我提供了一个新的表面(因此我必须清理旧的表面)还是它刚刚把旧的搞砸了?
if I use the following code...
message = TTF_RenderText_Solid( font, "Lorem Ipsum", textColor );
Do I need to free message before I can do this
message = TTF_RenderText_Solid( font, "Lorem Ipsum part 2", textColor );
i.e. does it give me a new surface (and so I have to clean up the old one) or does it just blit over the old one?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,使用完毕后,您应该使用
SDL_FreeSurface
释放消息
。返回的 SDL_Surface 是用SDL_AllocSurface()
分配的,并且不会重用,因此如果在这种情况下不释放它,就会发生泄漏。Yes, you should free
message
withSDL_FreeSurface
when you're done with it. The returned SDL_Surface is allocated withSDL_AllocSurface()
, and is not reused, so you'll leak if you don't free it in this case.