我正在将我的游戏移植到 emscripten。在 SDL_ttf 之前一切都很好。实际上我正在使用 sdl2 + sdl2 图像 + sdl 混合器。
我将展示一个例子:
SDL_Color color = {255,255,255};
std::cout << "1\n";
font = TTF_OpenFont("saucery/font/font1.otf", 8);
if (!font)
printf("Unable to load font: %s \n", TTF_GetError());
std::cout << "2\n";
SDL_Surface *surf = TTF_RenderText_Solid(font,"Oieee",color);
std::cout << "3\n";
if (surf){
std::cout << (int)surf << "\n";
texture = SDL_CreateTextureFromSurface(Game::instance->GetRenderer(),surf);
std::cout << "4\n";
Uint32 format;
int acess,w,h;
SDL_QueryTexture(texture, &format,&acess,&w,&h);
dimensions2.x = 0;
dimensions2.y = 0;
dimensions2.h = h;
dimensions2.w = w;
SDL_FreeSurface(surf);
}
在这段代码中,我只是打开一个字体(我已经将大小和类型更改为 .ttf)。一切似乎都运行良好,直到:
SDL_CreateTextureFromSurface
我放了一些 std::cout 来查看代码“崩溃”的位置。每次它在控制台上调用 createTextureFrom 时都会向我显示“45”并且运行停止在那里。
即使有任何 std::cout 我仍然会收到此错误。这已经让我发疯了._。