SDL2在函数外部加载字体会引发错误

时间:2016-02-22 16:44:27

标签: c++ sdl true-type-fonts

我创建了一个将文本呈现到屏幕的功能,我正在使用SDL2_ttf进行操作我正在打开这样的字体:

TTF_Font *font = TTF_OpenFont("font.ttf",50);

不幸的是我有几个函数正在向屏幕呈现一些文本,所以我不想在每个呈现文本的函数中创建本地字体变量,所以我意识到我可以放:

TTF_Font *font = NULL;

到我的类,然后在构造函数或任何将加载它的函数中为它指定一个字体(当然在使用该字体之前将调用该函数)。

所以,让我们说我们有一个构造函数:

Class::Class(){
font = TTF_OpenFont("font.ttf",50); //the font should be loaded now (declared in class)
}

我应该可以在每个成员函数中使用它,但它总是会引发分段错误,我基本上不能使用字体而不加载它并在我使用它的函数中定义它,是不是错了? 我无法帮助自己。

谢谢!

1 个答案:

答案 0 :(得分:0)

解决了,我不得不在这个类中调用ttf init,因为我在baseclass中启动了ttf,但是在调用基类的init之前调用了这个类中的构造函数(这个二级类是baseclass的成员)< / p>