私は自分のゲームをemscriptenに移植していました。SDL_ttf まではすべて問題ありませんでした。実際、sdl2 + sdl2 image + sdl mixi を使用しています。
例を示します。
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 を使用しても、このエラーが発生します。これはもう私を夢中にさせています._.